AWS App2Container
Herramienta de línea de comandos que analiza aplicaciones Java/.NET on-premises y genera automáticamente imágenes de contenedor y artefactos de despliegue para ECS/EKS
Descripción general
AWS App2Container (A2C) es una herramienta de línea de comandos que analiza aplicaciones Java y .NET que se ejecutan on-premises o en EC2, automatizando la generación de imágenes Docker, la creación de definiciones de tareas ECS o manifiestos EKS, y la construcción de pipelines CI/CD. Detecta automáticamente las dependencias de la aplicación, conexiones de red y uso del sistema de archivos, completando la containerización con un mínimo de trabajo manual.
Análisis de aplicaciones y proceso de containerización
El flujo de trabajo de App2Container consta de 4 pasos: inventory (descubrimiento), analyze (análisis), containerize (containerización) y generate (generación de artefactos de despliegue). El comando inventory detecta automáticamente las aplicaciones Java (Tomcat, JBoss, Spring Boot) y .NET (IIS) que se ejecutan en el servidor y muestra una lista. El comando analyze analiza en detalle las dependencias de la aplicación seleccionada (bibliotecas, archivos de configuración, variables de entorno, puertos de red) y genera un informe JSON con la información necesaria para la containerización. El comando containerize genera automáticamente un Dockerfile basado en los resultados del análisis y construye la imagen Docker. El Dockerfile generado utiliza una configuración de build multi-stage siguiendo las mejores prácticas, generando una imagen mínima sin archivos innecesarios.
Generación automática de artefactos de despliegue para ECS/EKS
El comando generate genera automáticamente todos los artefactos necesarios para desplegar la aplicación containerizada en ECS o EKS. Para ECS, se generan definiciones de tareas, definiciones de servicios, configuración de ALB, security groups y plantillas de CloudFormation. Para EKS, se generan manifiestos de Kubernetes para Deployment, Service e Ingress, así como Helm charts. La creación del repositorio ECR y el push de la imagen también se realizan automáticamente. Además, puede construir automáticamente un entorno CI/CD que incluye repositorio CodeCommit, proyecto CodeBuild y pipeline CodePipeline, permitiendo iniciar inmediatamente la entrega continua tras la containerización. Todos los artefactos generados son personalizables, permitiendo ajustar el tamaño de recursos, número de réplicas y configuración de health checks según los requisitos.
Estrategia de migración y enfoque gradual de refactorización
App2Container es una herramienta que automatiza la containerización "lift & shift", pero una estrategia efectiva es usarla como punto de partida para una refactorización gradual. En la primera etapa, se containeriza la aplicación monolítica tal cual con A2C y se ejecuta en ECS/EKS. En este punto ya se obtienen los beneficios de la orquestación de contenedores, autoescalado y rolling deployments. En la segunda etapa, se separan los módulos con alta independencia dentro del monolito en servicios de contenedores individuales, avanzando hacia microservicios. La información de conexiones de red incluida en el informe de análisis de App2Container es un dato de entrada importante para comprender las dependencias entre módulos y determinar los límites de separación de servicios. También soporta contenedores Windows, por lo que es realista un roadmap de migrar aplicaciones .NET Framework a ECS como contenedores Windows y posteriormente avanzar hacia la portabilidad a .NET Core.