Hasta hace poco cuando administrábamos una aplicación en Azure compuesta por varios recursos (máquina virtual, base de datos, red virtual, cuenta de almacenamiento…), lo hacíamos de forma individual. Con la llegada del nuevo portal de Azure, se ha introducido Azure Resouce Manager (ARM), dejando de lado la administración clásica que hacíamos con Azure Service Management (ASM). Utilizando ARM agrupamos todos los elementos que componen una aplicación y mediante plantillas podemos implementar, actualizar o eliminar el conjunto de la solución en una sola operación.
Beneficios de usar ARM en lugar de ASM
- Implementar, administrar y supervisar todos los recursos de la solución en grupo en lugar de hacerlo de forma individual.
- Controlar el acceso basado en la asignación de roles (RBAC), otorgando el nivel de permiso específico que requieran los usuarios para poder realizar sus tareas.
- Etiquetar los grupos para tenerlos organizados y poder revisar la facturación permitiéndonos conocer el coste de la solución.
- Administrar la infraestructura mediante plantillas declarativas en lugar de scripts. Las plantillas son archivos de notación de objetos JavaScript (JSON) donde se definen los recursos.
Uso de plantillas
Para empezar a utilizar plantillas, podemos crearlas desde cero o ver, modificar y descargar la plantilla de alguna implementación que hayamos realizado de forma manual desde el portal.
También existen repositorios de plantillas que nos pueden ser de utilidad, por ejemplo en GitHub
A la hora de definir las plantillas y sus recursos, no es necesario utilizar una única plantilla para toda la solución.
En algunas ocasiones, conviene separar los recursos en diferentes plantillas, de esta forma podemos reutilizarlas en diferentes soluciones, vinculando las necesarias en cada caso.
Una vez tengamos definidas las plantillas, se pueden desplegar directamente desde Visual Studio o cargar la plantilla en Azure para guardarla en la biblioteca de soluciones e implementarla desde allí.
Conclusion
Usando Azure Resouce Manager con plantillas, podemos garantizar que nuestras soluciones se despliegan y actualizan correctamente, ya que nos permite tener el control de código fuente necesario para asegurar que las soluciones no se desvíen de la configuración definida.
En implementaciones automáticas, esto es fundamental, debido a que los cambios realizados de forma manual no se reflejan en el código fuente.