Skip to content

Azure Resource Manager (ARM)

Analogía

Azure Resource Manager es como el sistema de administración central de un edificio de oficinas. Imagina que tienes un edificio enorme con cientos de oficinas, departamentos y recursos. En lugar de que cada persona vaya directamente a cada oficina para hacer cambios, hay un sistema central que recibe todas las solicitudes: "quiero crear una nueva oficina", "quiero cambiar la configuración de esta oficina", "quiero eliminar este departamento". Este sistema central (ARM) autentica quién está haciendo la solicitud, verifica que tenga permisos, y luego coordina todos los cambios de manera organizada. Además, te permite agrupar oficinas relacionadas (grupos de recursos), etiquetarlas para organización, y hasta crear "plantillas" que te permiten recrear toda una sección del edificio de forma idéntica. Es la capa de gestión que hace que todo en Azure funcione de manera coherente y organizada.

Definición

Azure Resource Manager (ARM) es el servicio de implementación y administración para Azure que proporciona una capa de administración coherente para crear, actualizar y eliminar recursos mediante APIs, herramientas y SDKs.

Permite:

  • Gestionar recursos de Azure de forma centralizada mediante una API REST unificada
  • Organizar recursos en grupos de recursos para administración como unidad lógica
  • Implementar infraestructura como código mediante plantillas ARM declarativas
  • Aplicar etiquetado a recursos, grupos de recursos y suscripciones para organización
  • Controlar acceso mediante Azure RBAC integrado con ARM
  • Proteger recursos con bloqueos de eliminación o modificación
  • Autenticar y autorizar todas las solicitudes antes de procesarlas

Componentes

Grupos de Recursos – Contenedores lógicos que agrupan recursos relacionados de una solución para administrarlos como una unidad

Plantillas ARM (ARM Templates) – Archivos JSON declarativos que definen la infraestructura deseada sin scripts de programación

Suscripciones – Contenedores de facturación y límites que agrupan grupos de recursos y recursos

Etiquetas (Tags) – Pares clave-valor que se aplican a recursos, grupos de recursos y suscripciones para organización y facturación

Bloqueos de Recursos – Protecciones que previenen eliminación o modificación accidental de recursos críticos

API REST de ARM – Interfaz unificada que recibe todas las solicitudes de gestión de recursos de Azure

Control de Acceso (RBAC) – Integración con Azure RBAC para autorizar operaciones en recursos mediante roles

Especificaciones de Plantilla – Plantillas ARM empaquetadas como recursos reutilizables para distribución organizacional

Funcionalidad

  1. ARM recibe todas las solicitudes de gestión de recursos (crear, actualizar, eliminar) a través de APIs, herramientas o SDKs
  2. ARM autentica la identidad del solicitante y verifica permisos mediante Azure RBAC
  3. Si la solicitud está autorizada, ARM la reenvía al servicio de Azure correspondiente
  4. Los recursos se organizan en grupos de recursos que agrupan recursos relacionados lógicamente
  5. Las plantillas ARM definen la infraestructura deseada en sintaxis declarativa JSON
  6. ARM procesa las plantillas y crea o actualiza recursos según la definición declarativa
  7. Se aplican etiquetas a recursos, grupos de recursos y suscripciones para organización y facturación
  8. Los bloqueos de recursos protegen recursos críticos contra eliminación o modificación accidental
  9. ARM garantiza resultados coherentes independientemente de la herramienta utilizada (Portal, PowerShell, CLI, API)

Casos de Uso

  • Organizar recursos relacionados (VM, red, almacenamiento) en grupos de recursos para gestión como unidad
  • Implementar infraestructura completa mediante plantillas ARM declarativas desde repositorios Git
  • Etiquetar recursos por departamento, proyecto o entorno (dev, staging, prod) para organización y facturación
  • Proteger recursos de producción con bloqueos para prevenir eliminación accidental
  • Automatizar despliegues mediante plantillas ARM en pipelines CI/CD
  • Gestionar recursos mediante PowerShell, CLI de Azure o APIs REST con la misma funcionalidad que el Portal
  • Replicar entornos completos (dev, staging, prod) usando la misma plantilla ARM
  • Distribuir plantillas ARM como especificaciones de plantilla para reutilización organizacional

Errores Comunes

  • Pensar que ARM es un recurso que se crea (es la capa de gestión, no un recurso)
  • Confundir grupos de recursos con suscripciones (los grupos de recursos están dentro de suscripciones)
  • Asumir que los recursos pueden existir fuera de un grupo de recursos (todos los recursos deben estar en un grupo)
  • Creer que las plantillas ARM requieren programación (usan sintaxis declarativa, no scripts)
  • Pensar que los bloqueos de recursos previenen todos los cambios (solo previenen eliminación o modificación según el tipo)
  • Confundir ARM con Azure Portal (ARM es la capa subyacente, Portal es una interfaz que usa ARM)
  • Asumir que los recursos en un grupo de recursos comparten características automáticamente (solo comparten ciclo de vida y organización)

Preguntas

  1. ¿Azure Resource Manager es la capa de administración que recibe todas las solicitudes de gestión de recursos de Azure?

  2. ¿Los grupos de recursos son contenedores lógicos que agrupan recursos relacionados para administrarlos como una unidad?

  3. ¿Las plantillas ARM usan sintaxis declarativa JSON para definir infraestructura sin escribir scripts de programación?

  4. ¿ARM autentica y autoriza todas las solicitudes antes de procesarlas mediante Azure RBAC?

  5. ¿Los recursos de Azure deben estar siempre dentro de un grupo de recursos?

  6. ¿Las etiquetas se pueden aplicar a recursos, grupos de recursos y suscripciones para organización y facturación?

  7. ¿Los bloqueos de recursos protegen recursos críticos contra eliminación o modificación accidental?

  8. ¿ARM garantiza resultados coherentes independientemente de si se usa Portal, PowerShell, CLI o API REST?