Azure Blueprint

Imagina que estás entrando en una de esas cadenas de comida rápida. Da igual que estés en León, Búrgos, Soria u otra ciudad de otro país. Todos tienen algo en común. Y es que más o menos todas están montadas de la misma forma. Y ya no es la estética exterior, también la metodología de trabajo, cómo va vestido el personal, qué platos hay en el restaurante, etc.

Pues eso es Azure Blueprint. Este tío se ha vuelto loco. Qué me estás contando Javier.

Os imagináis que el dueño de esta cadena de restaurantes tuviera que “gobernar” cientos o miles de tiendas cada uno con su forma de trabajar. Sería imposible.

Tomando esa idea vamos a explicar qué es este servicio de Azure.

¿Qué es Azure BluePrint?

A la hora de crear un plan de gobierno para nuestro cliente. Los problemas a los que nos enfrentamos es el cómo diseñar la estructura de la suscripción que estamos montando. Qué políticas o iniciativas añado en las suscripciones, qué grupos de recursos creo, qué recursos tendrán cada uno de ellos…

Me voy a ver en la necesidad de ir navegando por el portal o aplicar mis scripts de IaC reiterádamente. Además, esta serie de pasos tendré que repetirlos por cada una de las suscripciones que tiene mi cliente. Tiene que haber algo en Azure que me ayude.

Con Azure BluePrint voy a poder tener una serie de configuraciones que puedo repetir N veces. Las que sea necesario en diferentes suscripciones de Azure.

¿Cómo se trabaja con Azure Blueprint?

Estas configuraciones las vamos a realizar de forma declarativa. Y pueden englobar diferentes formas:

  • Roles customizados
  • Asignaciones de directiva (políticas/iniciativas)
  • Plantillas de Azure Resource Manager (plantillas de ARM)
  • Crear grupo de recursos

Además, este servicio permite funcionar con integración y distribución continua, trabajar con versiones de la definición del Blueprint, etc.

Azure Blueprint se va a apoyar en ficheros JSON. Pero a diferencia de la ejecutar ese JSON en un PowerShell o pegarlo en las diferentes apartados del portal. Con blueprint no se corta el despliegue una vez que se ha creado la configuración. Sino que se mantiene una conexión que me va a permitir actualizar si fuera necesario ese despliegue en varias suscripciones. No existe el “desplegar… completado y me olvido”.

¿En qué me ayuda Azure Blueprint?

Para el departamento de IT o el consultor de Azure. Facilita la tarea de gobierno. Nos aseguramos que todas las suscripciones tienen el mismo patrón sin importar en la que estemos trabajando.

Esta configuración la vamos a denominar “planos técnicos“. Los mismos se guardarán a nivel de suscripción o de  grupo administrado.

Estos planos técnicos podrán funcionar con iniciaticas, políticas o plantillas. Dentro de la misma tendremos los JSON necesarios según nuestras intenciones. Podemos querer realizar una tarea/despliegue sencillo o alcanzar una gran complejidad acoplando varios JSON en ese “plano técnico”.

PoC: Azure Blueprint

Como este primer “hola mundo” vamos a hacer un despliegue simple. He comentado que Blueprint puede ser complejo y tener varios pasos, pero hoy vamos con uno sencilito.

Crear Azure Blueprint

Lo primero es irnos al servicio de Azure Blueprint y pulsar en el botón de “Create”.

El propio portal de Azure nos muestra unos ejemplos. Vamos a seleccionar uno de ellos.

En concreto “Basic Networking (VNET)“.

Create blueprint

En este parte nos va a solicitar un nombre (sin espacios, caracteres raros, etc.), una descripción (dejamos la que tiene) y que la asignemos a nuestra “Azure Subscription“.

Por el momento no vamos a añadir nada más. Pulsamos en “Save Draft“.

Blueprint Definitions

Ya tenemos nuestro Blueprint creado. Pulsaremos ahora en “Definitions” en el menú (blade) de la izquierda.

Si nos fijamos nos aparece en “Latest version” como en “Draft”. Vamos a cambiar ese estado. Pulsamos en nuestro “Blueprint-VNET” para entrar en su configurador.

Publish blueprint

Vamos a publicar el blueprint. Que hasta este momento sólo tenemos un borrador. Pulsamos en “Publish blueprint“.

Indicamos una versuón “v1” (por ejemplo) y unas notas.

Assign blueprint

Si nos fijamos en la imagen. La versión ya no es “Draft”, ahora aparece “v1” que es el nombre de la versión que le acabamos de dar.

Vamos a pulsar en el menú superior a “Assign blueprint“.

Nos va a solicitar un nombre para esta asignación.

Si pulsamos en el menú “Assign” no va a decir que le faltan los parámetros. Vamos a dárselos.
Indicaremos el prefigo AZB- (de Azure Brains), una localización y nos vale el “Address space” que nos ofrece, no lo cambiamos.

Ahora nos toca esperar un poco a que termine el proceso. No nos llevará mucho ya que este depliegue IaC es bastante simple.

Comprobar el despliegue de Blueprint

Nos vamos a ir a los grupos de recursos y vemos que, efectivamente, tenemos un nuevo grupo de recursos. Que justo tiene “AZB-” como el prefijo que le habíamos indicado anteriormente.

Si nos vamos al blade del grupo de recursos. Podemos ver que el despliegue se ha hecho con nuestro Blueprint. Menú “Deployment” del grupo de recursos.

En este paso se había creado la Vnet (virtual network).

Unassign blueprint

Antes de terminar. Un útimo apunte. ¿Qué ocurre con los recursos si me cargo el blueprint?.

Seleccionamos nuestro Blueprint y pulsaremos “Unassign blueprint“.

Nos aparece un aviso. Se va a eliminar el blueprint pero en este caso los recursos permaneceran.

En el momento de escribir este artículo Blueprint está en Peeview. Puedes consultar el estado en este link.

Esperemos que salga pronto de este estado. En la certificación Az-303 ya es un tema que se trata y espero que el artículo os ayude con vuestro aprendizaje.

Como siempre digo a cacharrear y romper cosas que es como realmente se aprende.

Nos vemos en el siguiente artículo.