Implementación de Soluciones de Contenedores

Resumen de administración de imágenes en ACR, ejecución en ACI, escalado en Container Apps y escritura de Dockerfile.

El examen AZ-204 siempre incluye servicios de contenedores. Debes distinguir claramente entre tres servicios: ACR, ACI y Container Apps, y entender los conceptos basicos de Dockerfile.

 

Que es un contenedor?

Imagina una caja de mudanza. Cuando empacas, metes los objetos, el relleno y las instrucciones juntos. Sin importar a donde envies esa caja, el contenido permanece exactamente igual. Los contenedores funcionan igual: empaquetan el codigo de la aplicacion, las librerias necesarias y los archivos de configuracion en un solo paquete para que la aplicacion se ejecute de forma identica en cualquier computadora.

| Concepto | Descripcion breve | |---------|------------------| | Imagen (Image) | Un plano para crear un contenedor. Un archivo inmutable. | | Contenedor (Container) | Una imagen en ejecucion. Un proceso activo. | | Registro (Registry) | Un almacen para guardar y compartir imagenes. |

 

ACR (Azure Container Registry)

ACR es un almacen privado para guardar imagenes Docker. Si Docker Hub es un almacen publico, ACR es un almacen privado accesible solo dentro de tu organizacion. En entornos empresariales donde la seguridad es critica, no puedes exponer imagenes al publico, por lo que un registro privado es esencial.

Funciones principales de ACR

Almacenamiento privado de imagenes: Guarda imagenes internas de forma segura sin exponerlas ACR Tasks: Compila imagenes automaticamente cuando el codigo cambia, habilitando integracion CI/CD. Los desarrolladores no necesitan ejecutar comandos de compilacion manualmente. Replicacion geografica (Geo-Replication): Almacena copias de imagenes en multiples regiones del mundo para descargas rapidas desde cualquier lugar. Solo disponible en el nivel Premium. Integracion RBAC: Gestiona permisos de acceso a imagenes por rol (Contributor, Reader, etc.) Identidad administrada (Managed Identity): Autenticacion segura entre servicios Azure sin contrasenas

| Nivel | Caracteristicas | |-------|----------------| | Basic | Desarrollo/pruebas, baja capacidad de almacenamiento | | Standard | Produccion general, soporte de webhooks | | Premium | Replicacion geografica, enlace privado, confianza de contenido |

 

ACI (Azure Container Instances)

ACI te permite ejecutar contenedores lo mas rapido posible sin configurar un cluster ni servidores. Como abrir un paquete y usarlo de inmediato, ejecutas contenedores instantaneamente sin necesidad de configuracion de infraestructura.

Es ideal para cargas de trabajo simples donde no se necesitan orquestadores complejos como Kubernetes. Se usa comunmente para trabajos por lotes de una sola vez o tareas de corta duracion.

Funciones principales de ACI

Sin cluster necesario: Ejecuta un contenedor con un solo comando, sin configuracion de Kubernetes Grupos de contenedores (Container Groups): Agrupa varios contenedores en una unidad logica. Usado para el patron sidecar (app principal + recolector de logs, etc.). Solo Linux. Inyeccion de variables de entorno: Inyecta valores de configuracion al iniciar el contenedor. Cambia configuraciones sin modificar codigo. Montaje de volumen: Monta Azure Files para que los contenedores guarden datos persistentes Politica de reinicio: Always (siempre), OnFailure (solo al fallar), Never (nunca)

| Elemento | Descripcion | |---------|-------------| | Velocidad de inicio | Ejecuta en segundos — el metodo de ejecucion de contenedores mas rapido en Azure | | Facturacion | Basada en tiempo de ejecucion (por segundo) y uso de memoria | | Casos de uso | Trabajos por lotes de una sola vez, pruebas rapidas, tareas CI/CD |

 

Container Apps

Container Apps es una plataforma administrada y sin servidor para ejecutar contenedores. Te permite usar las potentes capacidades de Kubernetes (escalado automatico, division de trafico, etc.) sin gestionar Kubernetes directamente. Piensa en una cafeteria que llama automaticamente a mas baristas cuando esta llena y no tiene a nadie cuando esta vacia (escalar a cero).

Funciones principales de Container Apps

Sin servidor: No necesitas gestionar un cluster de Kubernetes directamente. Azure gestiona la infraestructura automaticamente. Escalado automatico con KEDA: Escala instancias automaticamente segun eventos como el numero de solicitudes HTTP o la longitud de la cola de mensajes Escalar a cero (Scale to Zero): Cuando no hay solicitudes, las instancias en ejecucion caen a cero. Muy efectivo para reducir costos. Revisiones (Revisions): Instantaneas inmutables de tu aplicacion. Al implementar una nueva version, puedes dividir el trafico entre la version antigua y la nueva (ej. 20% nueva, 80% antigua) para una transicion gradual. Integracion con Dapr: Simplifica la comunicacion entre servicios, la gestion de estado y pub/sub de mensajes entre microservicios

| Comparacion | ACI | Container Apps | |-------------|-----|----------------| | Gestion de cluster | No requerida | No requerida | | Escalado automatico | No disponible | Disponible (KEDA) | | Escalar a cero | No disponible | Disponible | | Caso de uso | Tareas de una sola vez | Servicios de larga duracion |

!ACR vs ACI vs Container Apps

Dockerfile y Compilacion Multietapa

Un Dockerfile es una receta escrita paso a paso que describe como construir una imagen. Como una receta de cocina, dice: "Empieza con este ingrediente (imagen base), realiza estos pasos en orden y produce el resultado final."

Compilacion Multietapa (Multi-Stage Build)

Esta tecnica separa la etapa de compilacion (compilar codigo) de la etapa de ejecucion (ejecutar la app). Es como separar la linea de produccion de la linea de empaquetado en una fabrica. Las herramientas de compilacion no se incluyen en la imagen final, haciendo la imagen mucho mas pequena.

Etapa de compilacion: Compilar codigo fuente, incluir herramientas de compilacion Etapa de ejecucion: Copiar solo el resultado compilado, excluir herramientas de compilacion Resultado: Imagen final significativamente mas pequena, menos vulnerabilidades de seguridad

 

Puntos clave del examen

"Almacenamiento privado de imagenes Docker" -- ACR (Azure Container Registry)

"Compilar imagenes automaticamente cuando cambia el codigo" -- ACR Tasks

"Distribucion global rapida con replicacion geografica" -- Nivel Premium de ACR

"Ejecucion de contenedores mas rapida sin cluster" -- ACI (Azure Container Instances)

"App principal y app auxiliar como una unidad" -- Grupo de contenedores (patron sidecar)

"Plataforma de contenedores sin servidor con escalado KEDA" -- Container Apps

"Cero instancias cuando no hay solicitudes" -- Container Apps Scale to Zero

"Dividir trafico entre versiones nueva y antigua" -- Revisiones de Container Apps

"Comunicacion entre microservicios y gestion de estado" -- Dapr (integracion Container Apps)

"Reducir tamano de imagen separando etapas de compilacion y ejecucion" -- Compilacion multietapa (Dockerfile)

"Autenticarse entre servicios Azure sin contrasena" -- Identidad administrada (Managed Identity)

Volver a la lista del blog