Simplificación de implementaciones declarativas en Azure

Publicado el 22 junio, 2020

Chief Technology Officer, Microsoft Azure

Azure proporciona a los clientes una manera sencilla e intuitiva de aprovisionar y administrar la infraestructura de forma declarativa mediante las plantillas de Azure Resource Manager (ARM). Puede describir todo el entorno de Azure con el lenguaje de plantilla y, después, usar su herramienta de scripting o CI/CD favorita para poner en marcha este entorno en cuestión de minutos. El lenguaje de plantilla de ARM adopta el formato de JSON y es una representación directa del esquema de recursos. Esto significa que puede crear cualquier recurso de Azure mediante una plantilla de ARM desde el primer día y configurar cualquier valor en los recursos. Con las plantillas de ARM, puede describir los recursos necesarios para formar el entorno de manera declarativa y parametrizada. Dado que las plantillas de ARM son declarativas, solo necesita especificar lo que desea, y Azure Resource Manager se encargará del resto.

En los últimos dos meses, hemos renovado nuestro en enfoque en las implementaciones de las plantillas de ARM para centrarnos en resolver algunos de los desafíos clave comunes entre nuestros clientes. Hoy, explicamos el trabajo que hemos hecho para abordar algunos de estos desafíos.

Experiencia de creación simplificada con Visual Studio Code

Los usuarios más nuevos han comentado que crear y editar una plantilla de ARM desde cero por primera vez puede ser desafiante. Hemos simplificado la experiencia de introducción para que pueda crear los recursos que necesita en Azure Portal y exportar una plantilla de ARM que puede reutilizar. También disponemos de un galería de plantillas de inicio rápido con más de 800 plantillas de ejemplo para aprovisionar recursos. Pero, ahora, hemos ido mucho más allá.

Con las nuevas Herramientas de Azure Resource Manager (ARM) en Visual Studio Code, hemos agregado compatibilidad con fragmentos de código (definiciones de recursos creadas previamente), IntelliSense, coloración, esquema de plantillas de ARM y comentarios. Gracias a la compatibilidad con los comentarios en las plantillas de ARM, puede implementar cualquier plantilla con comentarios mediante la CLI, PowerShell y Azure Portal, y listo. Aquí tiene un breve vídeo sobre la nueva experiencia de creación de plantillas de ARM en VS Code.

What-if: análisis de impacto previo a la implementación

Imagen2Nuestros clientes suelen necesitar evaluar el impacto de la implementación en un entorno antes de enviar cualquier cambio a los recursos implementados. Con las nuevas características de what-if de Azure, los clientes pueden realizar evaluaciones previas a la implementación para determinar qué recursos se crearán, actualizarán o eliminarán, incluidos los cambios en las propiedades de los recursos. El comando what-if realiza una comprobación en tiempo real del estado actual del entorno y elimina la necesidad de administrar cualquier estado. Empiece a trabajar con what-if aquí. Aunque what-if está en versión preliminar, infórmenos de los problemas y las solicitudes de características en nuestro repositorio de GitHub.

Scripts de implementación: completar tareas de última hora

A menudo hay tareas en las que los clientes necesitan ejecutar código de script personalizado en una implementación de plantilla de ARM para completar la configuración del entorno. Estos scripts que anteriormente requerían un paso fuera de la implementación de una plantilla ahora se pueden ejecutar dentro de una implementación de plantilla mediante el recurso deploymentScript. El nuevo recurso deploymentScript ejecutará cualquier script de Bash o PowerShell como parte de la implementación de la plantilla. Este script se puede incluir como parte de la plantilla de ARM o hacer referencia a él desde un origen externo. Los scripts de implementación ahora le ofrecen la posibilidad de completar la configuración del entorno de un extremo a otro en una sola plantilla de ARM. Obtenga más información sobre los scripts de implementación con esta documentación. Si hay determinadas acciones con los recursos de Azure que no se exponen en nuestras API y que le gustaría que aparecieran de forma nativa en nuestro plano de control, presente su solicitud aquí.

Aprovisionamiento a escala de suscripciones y grupos de administración

A medida que una organización amplía el uso de Azure, suelen mantenerse conversaciones sobre la necesidad de crear una jerarquía de grupos de administración (MG) (construcción de agrupación) y suscripciones de Azure para garantizar la separación de los entornos, las aplicaciones, la facturación o la seguridad. Los clientes necesitan una manera coherente y declarativa de aprovisionar suscripciones y grupos de administración para ahorrar tiempo y recursos. Con las nuevas API de implementación de inquilinos y grupos de administración, ahora se admite el aprovisionamiento de suscripciones y grupos de administración mediante las plantillas de ARM. Esto permite automatizar la configuración de toda la infraestructura y de los recursos asociados con ella en una única plantilla de ARM. Lea más sobre esto y obtenga plantillas de ejemplo aquí. Además, ahora permitimos etiquetar las suscripciones, hemos eliminado el límite de 800  implementaciones por grupo de recursos, hemos aumentado el límite del número de grupos de recursos por implementación a 800 y hemos incrementado el número de suscripciones por cuenta del Contrato Enterprise (EA) a 2000, para que pueda aprovisionar y administrar a escala.

ARM1

Enfoque constante en la calidad y confiabilidad

La calidad y la confiabilidad son la máxima prioridad en todo lo que hacemos en Microsoft. Se trata de un ámbito que siempre centra nuestra atención, empezando por mejorar la calidad de nuestros esquemas y tener una cobertura de esquemas para todos los recursos. Las ventajas derivadas se perciben en la experiencia de creación mejorada y en las funcionalidades de exportación de plantillas. Estamos trabajando con diligencia para mejorar los mensajes de error y la calidad de nuestra validación preparatoria para detectar los problemas antes de la implementación. También hemos invertido mucho en mejorar nuestra documentación mediante la publicación de todas las versiones de API en las referencias de las plantillas y hemos agregado fragmentos de código de plantilla a la documentación de los recursos.

Para ayudar a probar el código de las plantillas de ARM, ofrecemos el kit de herramientas de las plantillas de ARM en código abierto, que usamos internamente en Microsoft para garantizar que nuestras plantillas de ARM sigan los procedimientos recomendados. Por último, reconocemos que la velocidad es importante y, por ello, hemos realizado mejoras importantes para reducir el tiempo de las implementaciones a gran escala en un 75 % aproximadamente.

El futuro de la infraestructura como código con las plantillas de Azure Resource Manager

Acabamos de comenzar nuestra andadura para mejorar las implementaciones de plantillas de ARM, y los equipos trabajan muy duro para abordar las brechas actuales e innovan para el futuro. Puede escuchar algo sobre nuestras futuras inversiones que compartimos en la última conferencia Microsoft Build 2020.

Nos encantaría seguir recibiendo sus comentarios sobre las implementaciones de ARM. Si está interesado en mantener conversaciones más profundas con el equipo de ingeniería, únase a nuestro grupo de Yammer dedicado a implementaciones y gobernanza.