¿Qué es Azure Resource Manager?
Ha pasado algún tiempo con su equipo aprendiendo las ventajas de la infraestructura como código y los diferentes enfoques disponibles. Su empresa está creciendo a un ritmo rápido y su equipo sabe que va a implementar un número significativo de recursos en Azure. Como equipo, ha decidido que la infraestructura como código declarativa es el enfoque adecuado para el aprovisionamiento de recursos. El equipo no quiere mantener los scripts que enumera cada paso de implementación. Antes de comenzar el proceso de creación de la primera plantilla, debe comprender cómo funciona Azure Resource Manager. La investigación de los tipos de plantillas que están disponibles para su uso con Azure le ayudará a determinar los pasos siguientes de la estrategia de infraestructura como código.
En esta unidad, aprenderá sobre Resource Manager y los dos tipos de plantillas de Resource Manager.
Conceptos de Azure Resource Manager
Azure Resource Manager es el servicio que se usa para implementar y administrar recursos en Azure. Puede usar Resource Manager para crear, actualizar y eliminar recursos en la suscripción de Azure. Puede interactuar con Resource Manager mediante muchas herramientas, incluido Azure Portal. Resource Manager también proporciona otra serie de características, como el control de acceso, la auditoría y el etiquetado, para ayudar a administrar los recursos después de la implementación.
Terminología
A medida que comienza el recorrido en la nube con Resource Manager, es importante comprender algunos términos y conceptos:
Recurso: Un elemento administrable que está disponible en la plataforma de Azure. Las redes virtuales, máquinas virtuales, cuentas de almacenamiento, aplicaciones web y bases de datos son ejemplos de recursos.
Grupo de recursos: contenedor que incluye los recursos relacionados para una solución de Azure. El grupo de recursos incluye los recursos que se quieren administrar como grupo. La mayoría de los recursos de Azure están contenidos en un grupo de recursos. Decida qué recursos pertenecen a un grupo de recursos en función de lo que más le convenga para la solución.
Nota:
Un pequeño número de recursos no está incluido en los grupos de recursos. Estos tipos de recursos son para fines específicos, como administrar el control de acceso y exigir la aplicación de directivas. En un módulo posterior aprenderá más sobre estos recursos.
Suscripción: contenedor lógico y límite de facturación para los recursos y grupos de recursos. Cada recurso y grupo de recursos de Azure están asociados a una sola suscripción.
Grupo de administración: contenedor lógico que se usa para administrar más de una suscripción. Puede definir una jerarquía de grupos de administración, suscripciones, grupos de recursos y recursos para administrar de forma eficaz el acceso, las directivas y el cumplimiento a través de la herencia.
Plantilla de Azure Resource Manager (plantilla de ARM): archivo de plantilla que define uno o más recursos para implementar en un grupo de recursos, una suscripción, un grupo de administración o un inquilino. Puede usar la plantilla para implementar los recursos de una manera coherente y repetible. Hay dos tipos de archivos de plantilla de ARM: JSON y Bicep. Este módulo se centra en Bicep.
Ventajas
Resource Manager proporciona muchas ventajas y funcionalidades relacionadas con el aprovisionamiento de recursos de la infraestructura como código:
- Puede implementar, administrar y supervisar los recursos de la solución como un grupo en lugar de individualmente.
- Puede volver a implementar la solución repetidamente a lo largo del ciclo de vida del desarrollo y tener la seguridad de que los recursos se implementan de forma coherente.
- Puede administrar la infraestructura a través de plantillas declarativas en lugar usar scripts.
- Puede especificar dependencias de recursos para asegurarse de que los recursos se implementan en el orden correcto.
Operaciones: plano de control y plano de datos
Puede ejecutar dos tipos de operaciones en Azure: operaciones de plano de control y operaciones de plano de datos. Use el plano de control para administrar los recursos de su suscripción. Use el plano de datos para acceder a las características expuestas por un recurso.
Por ejemplo, una operación de plano de control se usa para crear una máquina virtual, pero se usa una operación de plano de datos para conectarse a la máquina virtual mediante el Protocolo de escritorio remoto (RDP).
Plano de control
Cuando envía una solicitud de cualquiera de las herramientas, las API o los Kits de desarrollo de software (SDK) de Azure, Resource Manager recibe, autentica y autoriza la solicitud. Después, envía la solicitud al proveedor de recursos de Azure, que lleva a cabo la acción solicitada. Dado que todas las solicitudes se controlan mediante la misma API, verá resultados y funcionalidades coherentes en todas las distintas herramientas que están disponibles en Azure.
En la imagen siguiente se muestra el rol que desempeña el Administrador de recursos en el control de solicitudes de Azure:
Todas las solicitudes de operación de plano de control se envían a una dirección URL de Resource Manager. Por ejemplo, la operación de creación o actualización para máquinas virtuales es una operación de plano de control. Esta es la dirección URL de la solicitud para esta operación:
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01
El plano de control entiende qué recursos se deben crear y qué recursos ya existen. Resource Manager entiende la diferencia entre estas solicitudes y no crea recursos idénticos ni elimina los recursos existentes, aunque hay maneras de invalidar este comportamiento.
Plano de datos
Al iniciar una operación de plano de datos, las solicitudes se envían a un punto de conexión específico de la suscripción de Azure. Por ejemplo, la operación Detectar idioma en los servicios Azure AI es una operación del plano de datos porque la URL de la solicitud es:
POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages
Las características de Resource Manager como el control de acceso y los bloqueos no siempre se aplican a las operaciones de plano de datos. Por ejemplo, es posible que un usuario no tenga permisos para administrar una máquina virtual mediante el plano de control, pero dicho usuario puede iniciar sesión en el sistema operativo.
¿Qué son las plantillas de Resource Manager?
Las plantillas de Azure Resource Manager son archivos que definen la infraestructura y la configuración de la implementación. Al escribir una plantilla de ARM, se toma un enfoque declarativo para el aprovisionamiento de recursos. Estas plantillas describen cada recurso de la implementación, pero no cómo implementar los recursos. Cuando se envía una plantilla a Resource Manager para la implementación, el plano de control puede implementar los recursos definidos de una manera organizada y coherente. En la unidad anterior, ha aprendido las diferencias entre el código imperativo y el código declarativo.
¿Por qué usar las plantillas de ARM?
Son muchas las ventajas de usar plantillas de ARM, tanto JSON como Bicep, para el aprovisionamiento de recursos.
Resultados repetibles: las plantillas de ARM son idempotentes, lo que significa que puede implementar repetidamente la misma plantilla y obtener el mismo resultado. La plantilla no duplica recursos.
Orquestación: cuando se envía una implementación de plantilla a Resource Manager, los recursos de la plantilla se implementan en paralelo. Este proceso permite que las implementaciones finalicen más rápido. Resource Manager orquesta estas implementaciones en el orden correcto si un recurso depende de otro.
Vista previa: la herramienta hipotética, disponible en Azure PowerShell y la CLI de Azure, le permite obtener una vista previa de los cambios en el entorno antes de la implementación de la plantilla. Esta herramienta detalla las creaciones, modificaciones y eliminaciones realizadas por la plantilla.
Pruebas y validación: puede usar herramientas como el linter de Bicep para comprobar la calidad de las plantillas antes de la implementación. Las plantillas de ARM enviadas a Resource Manager se validan antes del proceso de implementación. Esta validación le avisa de los errores de la plantilla antes del aprovisionamiento de recursos.
Modularidad: puede dividir las plantillas en componentes más pequeños y vincularlos en la implementación.
Integración de CI/CD: las plantillas de ARM se pueden integrar en varias herramientas de CI/CD, como Azure DevOps y Acciones de GitHub. Puede usar estas herramientas para plantillas de versión a través del control de código fuente y las canalizaciones de versión de compilación.
Extensibilidad: con los scripts de implementación, puede ejecutar scripts de Bash o PowerShell desde las plantillas de ARM. Estos scripts realizan tareas, como las operaciones de plano de datos, durante la implementación. A través de la extensibilidad, puede usar una sola plantilla de ARM para implementar una solución completa.
Plantillas JSON y de Bicep
Actualmente, hay dos tipos de plantillas de ARM disponibles para su uso: plantillas JSON y plantillas de Bicep. La notación de objetos JavaScript (JSON) es un formato de archivo estándar abierto que pueden usar varios lenguajes. Bicep es un nuevo lenguaje específico del dominio que se ha desarrollado recientemente para crear plantillas de ARM mediante una sintaxis más sencilla. Puede usar cualquier formato de plantilla para las plantillas de ARM y las implementaciones de recursos.