Azure Container Apps (ACA) es una plataforma de contenedores totalmente gestionada e inservible en Microsoft Azure que abstrae las complejidades de la orquestación de Kubernetes mientras que ofrece potentes capacidades de escalado, de eventos y patrones de aplicación incorporados. Está diseñado para el desarrollo de aplicaciones modernas donde los equipos necesitan desplegar microservicios, empleos de fondo y puntos finales de API sin proporcionar ni gestionar máquinas virtuales, clusters o la lógica de desarrollo de la flexibilidad.

¿Qué son las aplicaciones Azure Container?

Azure Container Apps opera como un entorno gestionado para ejecutar cargas de trabajo containerizzate, sentado entre Azure App Service (para aplicaciones web) y Azure Kubernetes Service (AKS) (para el control de grupos completos). Proporciona una experiencia simplificada de Kubernetes sin requerir una interacción directa con el servidor de API de cluster. ACA utiliza Kubernetes bajo la capucha pero abstra su complejidad operativa, haciéndolo ideal para equipos que quieren beneficios de aislamiento de carga.

Cada aplicación Container funciona en un entorno basado en revisiones donde puede implementar múltiples revisiones y gestionar la división de tráfico. La plataforma soporta arquitecturas impulsadas por eventos mediante la integración integrada con KDA (Kubernetes Event‐Driven Autoscaling) y Dapr] (construyendo aplicaciones de forma gratuita

Características y capacidades básicas

Arquitectura y escalado automático sin servidores

El modelo sin servidor de ACA elimina la necesidad de proporcionar y gestionar VMs o nodos de racimo. La plataforma escala automáticamente basado en el tráfico HTTP, desencadenantes de eventos (por ejemplo, profundidad de cola, cronogramas), o métricas personalizadas a través de escaladores KEDA. El escalado se puede configurar por revisión, y se puede definir repeticiones min y max. Cuando inactivo, una aplicación de contenedor puede escalar a cero recursos.

Soporte integrado de Dapr

Dapr proporciona un conjunto de bloques de construcción (gestión del estado, pub/sub, invocación de servicios, secretos, acoplamientos) que simplifican las aplicaciones distribuidas en edificios. ACA integra Dapr a nivel de plataforma, por lo que puede permitirlo por Container App sin gestionar un sidecar o una infraestructura separadas. Esto reduce el código de caldera y acelera el desarrollo de microservicios robustos.

Gestión de revisiones y división de tráfico

Container Apps utiliza un modelo de revisión similar al servicio de aplicaciones Azure: cada cambio de código o configuración crea una nueva revisión, mientras que las viejas revisiones siguen disponibles. Puede establecer porcentajes de tráfico entre revisiones para realizar implementaciones verdes azules, pruebas A/B o implementos en estadio. Las revisiones pueden ser activas, desactivadas o usadas para la devolución, dándole un control bien arraigado sobre seguridad de despliegue.

Ingresos y dominios personalizados

Cada aplicación Container recibe un punto final HTTPS único (por ejemplo, ). Puede asignar dominios personalizados con certificados SSL/TLS, configurar el ingreso para permitir el tráfico interno (VNet) o externo, y establecer reglas de tráfico para la routa por vía a través de múltiples aplicaciones.

Environment and Networking

Las aplicaciones de contenedores residen en un Container Apps Environment, que actúa como un límite seguro alrededor de sus aplicaciones. El medio ambiente apoya la integración de VNet (ambiente externo o interno), permitiendo la comunicación privada entre aplicaciones, bases de datos y otros servicios de Azure. También puede utilizar puntos de referencia privados y grupos de seguridad de red para controlar el tráfico.

Administrado de Identidad y Secretos

ACA soporta las identidades administradas por Azure, permitiendo que sus contenedores autentiquen los servicios de Azure (Key Vault, Storage, SQL Database) sin credenciales de codificación. Los secretos pueden ser referenciados directamente desde Azure Key Vault, y las variables o volúmenes del medio ambiente pueden ser inyectadas en tiempo de ejecución.

Implementación de aplicaciones de contenedores Azure

Implementar una aplicación de contenedores implica varios pasos, desde la contención de su aplicación para configurar el entorno y las reglas de escalado. A continuación se muestra un flujo de trabajo ampliado.

Paso 1: Preparar y Empujar su imagen del contenedor

Empieza por crear un Dockerfile para tu aplicación (por ejemplo, .NET, Node.js, Python, Go). Asegúrese de que la imagen está optimizada (construye múltiples etapas, imágenes base mínimas). Empuja la imagen a un registro de contenedores –idealmente Azure Container Registry (ACR)]) para la proximidad y la integración.

Paso 2: Crear un entorno de aplicación de contenedores

Antes de implementar una aplicación, debe crear un entorno de aplicaciones de contenedores. Esto se puede hacer a través del Portal Azure, Azure CLI, Bicep, ARM o Terraform. El entorno define la región, red virtual (opcional), y si es interna o pública. Para la producción, permite la integración de VNet para asegurar el tráfico fuera de límites y utilizar los puntos finales privados.

az containerapp env create --name MyEnvironment --resource-group MyRG --location eastus

Paso 3: Define y deplora la aplicación de contenedores

Utilice el comando para definir la aplicación, referencia a la imagen, variables de entorno, secretos, configuración de entrada y configuración de escalado. Ejemplo:

az containerapp create --name myapp --resource-group MyRG \
 --environment MyEnvironment --image myregistry.azurecr.io/myapp:v1 \
 --target-port 8080 --ingress external --query properties.configuration.ingress.fqdn

Esto crea una revisión y expone la aplicación a través de un FQDN autogenerado. Posteriormente, puede actualizar la aplicación con nuevas imágenes, variables ambientales o reglas de escalado usando .

Paso 4: Configure Secrets and Managed Identity

Almacene valores sensibles (cadetas de conexión, claves de API) en Azure Key Vault y los refiera como secretos en su aplicación Container. Habilita una identidad gestionada a través del sistema o a la que se suscriba el usuario para que su aplicación pueda autenticar a Key Vault y otros recursos de Azure sin credenciales en código.

Paso 5: Establecer reglas de escalado

Configurar autoescalamiento basado en solicitudes HTTP, CPU, memoria o fuentes de eventos personalizados (por ejemplo, colas Azure Service Bus, Kafka, RabbitMQ). Use los escaladores KEDA para activar escalar desde sistemas externos. Por ejemplo, escalar basado en el número de mensajes en una cola:

az containerapp update --name myapp --resource-group MyRG \
 --min-replicas 0 --max-replicas 10 \
 --scale-rule-name queue-scaler --scale-rule-type azure-queue \
 --scale-rule-auth connection=queue-connection-string \
 --scale-rule-metadata "queueName=myqueue" "queueLength=5"

Gestión de aplicaciones Azure Container

Una vez desplegado, la gestión continua implica la vigilancia, actualización y el ajuste de escalado y seguridad.

Estrategias de gestión y despliegue de la revisión

Utilice el modelo de revisión para actualizar su aplicación sin tiempo de inactividad. Cuando usted empuja una nueva imagen o cambiar la configuración, ACA crea una nueva revisión. Por defecto, todo el tráfico va a la última revisión. Para implementar un despliegue verde azul:

  1. Actualizar la aplicación con una nueva revisión (mantener el antiguo activo).
  2. Envíe un pequeño porcentaje de tráfico a la nueva revisión.
  3. Aumentar gradualmente el tráfico mientras se monitorean los errores y latencia.
  4. Si es estable, traduzca el 100% al tráfico a la nueva revisión y desactive el antiguo.

Este enfoque minimiza el riesgo y permite una rápida revuelta al recortar el tráfico de nuevo a una revisión anterior.

Monitorización con Azure Monitor y Análisis de Log

La integración con Azure Monitor es automática. Puede ver métricas (conteo de solicitudes, CPU, memoria, cuenta de réplicas) en el Portal Azure. Para registros detallados, configure su aplicación Container para enviar registros de stdout/stderr y sistema a un espacio de trabajo Log Analytics. Utilice las consultas de Kusto para detectar anomalías, errores de de depuración o analizar patrones de tráfico.

Autoescalización en producción

Aunque el autoescalamiento predeterminado funciona bien para muchos escenarios, las aplicaciones de producción a menudo requieren escaladores personalizados de KEDA. Ejemplos comunes: escalado basado en el conteo de mensajes de Azure Service Bus, atraso de los centros de eventos Azure, o una métrica Prometheus personalizado. Asegúrese de establecer réplicas de min y max apropiadas para manejar el tráfico de línea y la capacidad de ruptura.

Actualización de contenedores y regresiva

Container Apps soporta actualizaciones de tiempo cero a través de la activación de revisión. Cuando usted implementa una nueva imagen, la nueva revisión se inicia en paralelo con la antigua. Una vez que la nueva revisión es saludable, el tráfico se redirige. Si los cheques de salud fallan, ACA puede automáticamente revertir. Para la devolución manual, simplemente vuelva a poner el peso del tráfico al 100% en la revisión anterior.

Prácticas óptimas de seguridad

Identificaciones administradas para los recursos azufres

Permite la identificación gestionada por el sistema para su aplicación Container. Esto permite que la aplicación acceda a Bóveda, Almacenamiento y bases de datos sin almacenar credenciales en las variables de imagen o entorno de contenedores. Utilice la identidad para autenticar a través de Azure AD.

Gestión secreta con clave Vault

Guarda todos los datos confidenciales en Azure Key Vault y haz referencia a ellos en tu configuración de Container App como referencias secretas. ACA automáticamente inyecta estos como variables ambientales o monturas de volumen en tiempo de ejecución. Rota secretos en Key Vault sin redistribuir.

Seguridad de la red

Para servicios internos, implemente su Container Apps Environment con tráfico externo deshabilitado. Utilice la integración de VNet para restringir el tráfico de salida/recepto a través de grupos de seguridad de red. Para el tráfico de límites desde puntos de extremo públicos, active la restricción IP en el ingreso o utilice Azure Front Door o API Management en frente.

Seguridad de imagen de contenedor

Use imágenes de base confiables de Microsoft Artifact Registry u otras fuentes seguras. Escanear imágenes para vulnerabilidades utilizando Microsoft Defender for Containers] o el escaneo integrado de ACR. Firme imágenes para garantizar la integridad. Permitir que la imagen tire a través de ACR con puntos de extremo privados para evitar la exposición pública.

Cumplimiento y Certificaciones

Azure Container Apps hereda certificaciones de cumplimiento Azure (SOC, PCI DSS, HIPAA, ISO). Asegurar que su entorno esté desplegado en una región que cumpla con los requisitos de residencia de datos. Use Azure Policy para hacer cumplir la gobernanza (por ejemplo, requerir la inyección de VNet o registros de imágenes específicos).

Optimización de costos

Consumo vs. Plan dedicado

ACA ofrece dos niveles de precios: Consumo] (pago por vCPU-segundo y memoria-segundo) y Dedicado] (reservado vCPU y memoria).El consumo es mejor para cargas de trabajo variables o de baja circulación, mientras que Dedicado proporciona costos y rendimiento estables.

Autoescalización y escalado a cero

Configurar réplicas mínimas a 0 para trabajos de fondo o API con tráfico impredecible. Esto asegura ningún coste de cálculo cuando esté ocioso. Para caminos críticos que necesitan respuesta instantánea, establece un mínimo de 1 para evitar los inicios de frío. Utilice los escaladores de KEDA para reaccionar a la profundidad de cola o carga de base en lugar de siempre a CPU.

Planes de Instances y Ahorros Reservados

Para los planes dedicados, comprometerse a casos reservados de un año o tres años para ahorrar hasta 40% en comparación con el pago-as-go. Los planes de ahorro de Azure también se aplican al computador de aplicaciones de contenedores. Analice su uso y estima el consumo de base antes de reservar capacidad.

Imágenes de Container eficientes

Las imágenes más pequeñas reducen el tiempo de atracción y los costos de almacenamiento. Use imágenes de base alpinas o desprotegidas, limpie los artefactos de construcción y las caches de capa sabiamente. Almacene sólo el tiempo de ejecución en su imagen: mantenga herramientas de construcción en una etapa de construcción separada.

Integrando con Otros Servicios Azure

Azure Container Registry

Utiliza ACR como su registro privado para aplicaciones de contenedores. Admite la geo-replicación, escaneado de imágenes y firma de artefactos. Permite la cuenta de ACR o utilizar la identidad gestionada para autenticar tiras de forma segura. Para implementaciones de registro cruzado, geo-replica sus imágenes para reducir la latencia.

CI/CD Pipelines with Azure DevOps and GitHub Actions

Automatizar implementaciones utilizando tareas Azure CLI en Azure DevOps o GitHub Actions. Puedes construir una imagen, empujar a ACR y actualizar la revisión de la aplicación Container en un solo oleoducto. Ejemplo GitHub Actions workflow step:

- name: Deploy to Azure Container Apps
 run: az containerapp update --name myapp --resource-group MyRG --image myacr.azurecr.io/myapp:latest

Utilice ranuras de despliegue (revisión de tráfico división) para escenario y validar cambios antes de la salida completa.

Event‐Driven Integration

El bloque de construcción pub/sub de Leverage Dapr con Azure Service Bus o Event Hubs para decorar microservicios. Configure los escaladores KEDA para activar escalada basado en la profundidad de cola. Este patrón es excelente para el procesamiento de pedidos, notificación o flujos de trabajo de lotes.

Las mejores prácticas para el desarrollo de aplicaciones modernas

  • Adopt a microservices architecture que se alinea con el modelo de revisión e ingreso de ACA. Cada servicio debe tener su propia aplicación de contenedores con escalado independiente y ciclo de vida.
  • Implement CI/CD pipelines que construyen, prueban, escanean y se implementan automáticamente. Usan infraestructuras-como código (Bicep/Terraform) para definir entornos, asegurando la repetibilidad.
  • Prioritize security] from the start: use managed identities, Key Vault references, VNet integration, and image scan. Rotate secrets regularly and audit access.
  • Optimice para el costo eligiendo el plan adecuado, estableciendo réplicas de min/max sensibles, y utilizando la capacidad reservada para el volumen de trabajo constante.
  • Permitir la observabilidad] temprano: enviar registros a Log Analytics, habilitar las visiones de la aplicación y establecer alertas sobre las tasas de error, solicitar latencia y contar con réplicas.
  • Use Dapr y KEDA para manejar las preocupaciones transversales: gestión estatal, retries, pub/sub, y escalado impulsado por eventos. Esto reduce la caldera y mejora la resiliencia.
  • Diseño para escalar a cero si su carga de trabajo lo permite. Los inicios de frío son normalmente inferiores a dos segundos para contenedores simples; puede mitigar con sondas de salud y réplicas de min apropiadas.

Al seguir estas prácticas y aprovechar el tiempo de funcionamiento de contenedores sin servidor de Azure Container Apps, los equipos pueden construir y operar aplicaciones modernas que sean escalables, seguras y rentables. La plataforma reduce la sobrecarga operacional al tiempo que da a los desarrolladores la libertad de usar cualquier idioma, marco o herramienta que se ejecuta en un contenedor.

Para la orientación oficial de profundidad, consulte la documentación de aplicaciones de contenedores azules]. Para obtener más información sobre los patrones de aplicación distribuidos con Dapr, visite la documentación Dapr. Para ejemplos de autoscalización impulsados por eventos, compruebe la .