Artefactos de Implementación y Gestión de Configuración

Paquetes de implementación de Lambda, ECR, AppConfig y gestión de configuración específica del entorno.

Una vez que has creado una aplicacion, necesitas subirla a un servidor. Este proceso se llama despliegue (deployment). Como empaquetas tu codigo, gestionas la configuracion y lo despliegas en AWS?

Las preguntas del examen DVA-C02 en esta area se centran en como empaquetar y gestionar codigo y configuraciones.

 

Paquetes de despliegue de Lambda

Hay dos formas de subir una funcion Lambda a AWS.

Primer metodo: archivo .zip Comprime el codigo de la funcion y las librerias necesarias en un archivo ZIP y subelo. Subida directa: hasta 50MB Subida via S3: hasta 250MB Adecuado para funciones simples o cuando hay pocas dependencias.

Segundo metodo: imagen de contenedor Empaqueta como imagen Docker, almacenala en ECR y luego enlazala con Lambda. Soporta hasta 10GB. Ventajoso cuando hay dependencias grandes, como modelos de machine learning. Los equipos familiarizados con tecnologia de contenedores pueden reutilizar sus flujos de trabajo Docker existentes.

 

Amazon ECR (Elastic Container Registry)

ECR es un servicio para almacenar y gestionar imagenes de contenedores Docker. Piensa en el como el Docker Hub de AWS. Igual que almacenas codigo en GitHub, almacenas imagenes Docker en ECR.

Funciones principales: Escaneo de imagenes: Verifica automaticamente las imagenes almacenadas en busca de vulnerabilidades de seguridad conocidas. Politicas de ciclo de vida: Limpia automaticamente las imagenes antiguas para reducir los costos de almacenamiento. Comparticion entre cuentas: Con politicas de recursos configuradas, las imagenes se pueden compartir de forma segura con otras cuentas AWS.

 

AWS AppConfig

Que pasaria si pudieras cambiar la configuracion de tu app sin desplegar nuevo codigo? Por ejemplo, activar o desactivar una nueva funcion, o lanzarla primero a un grupo especifico de usuarios. Eso es exactamente lo que hace AWS AppConfig.

Feature Flag: Permite activar o desactivar funciones especificas sin un despliegue de codigo. Por ejemplo, util cuando se prueba un nuevo sistema de pago con solo un subconjunto de usuarios primero. Despliegue gradual: En lugar de aplicar cambios de configuracion a todos a la vez, aplicalos primero a un grupo pequeno. Si algo sale mal, puedes revertirlo inmediatamente. Validacion: Valida la configuracion usando un esquema JSON o una funcion Lambda antes de ser desplegada. Evita que se desplieguen configuraciones incorrectas. Rollback automatico: Si se detecta un error despues del despliegue, revierte automaticamente a la configuracion anterior.

 

Gestion de configuracion por entorno

Las aplicaciones generalmente se ejecutan en entornos separados de desarrollo (Dev), pruebas/staging (Staging) y produccion (Production). Cada entorno necesita configuraciones diferentes (direcciones de base de datos, claves de API, etc.).

Formas de gestionar la configuracion por entorno en AWS: Jerarquia basada en rutas de Parameter Store: Separar por ruta, como /app/dev/db-url y /app/prod/db-url Variables de entorno de Lambda: Establecer diferentes variables de entorno por funcion para tener comportamiento diferente por entorno Parameters o Mappings de plantilla SAM: Inyectar diferentes valores por entorno al desplegar apps serverless

 

Puntos clave del examen

"Dependencias grandes en Lambda (hasta 10GB)" -- Imagen de contenedor (ECR)

"Paquete de despliegue Lambda supera 50MB" -- Subir ZIP a S3

"Cambiar configuracion sin despliegue de codigo" -- AWS AppConfig

"Activar/desactivar funciones sin codigo" -- Feature Flag (AppConfig)

"Deteccion automatica de vulnerabilidades en imagenes Docker" -- Escaneo de imagenes ECR

"Gestionar configuracion por entorno de forma jerarquica" -- Parameter Store (basado en rutas)

"Inyectar valores por entorno en SAM" -- Parameters/Mappings

AppConfig es el servicio clave para separar el despliegue de codigo del despliegue de configuracion

Volver a la lista del blog