Amazon CodeCatalyst
Plataforma de desarrollo que integra repositorios de código, pipelines CI/CD, gestión de issues y entornos de desarrollo en la nube, cubriendo todo el ciclo de vida del desarrollo en equipo
Descripción general
Amazon CodeCatalyst es un servicio que integra las herramientas necesarias para el desarrollo de software en una única plataforma. Permite gestionar todo el proceso desde la inicialización del proyecto hasta la codificación, compilación, pruebas y despliegue en una sola interfaz. Cuenta con blueprints para plantillas de proyecto, Dev Environments basados en navegador y un motor de workflows definido en YAML. La integración con cuentas AWS permite también el despliegue de infraestructura mediante CloudFormation o CDK. La estructura jerárquica de espacios y proyectos refleja la organización del equipo y proporciona control de acceso basado en roles.
Inicialización de proyectos mediante blueprints
Los blueprints de CodeCatalyst son un mecanismo de plantillas que define la estructura base de un proyecto. Al seleccionar un blueprint, se configuran automáticamente el repositorio de código, workflows CI/CD, configuración de Dev Environment y tablero de issues. Los blueprints oficiales proporcionados por AWS incluyen arquitecturas típicas como API serverless (Lambda + API Gateway), SPA con React y aplicaciones web de 3 capas. Creando blueprints personalizados, se puede estandarizar la configuración específica de la organización (estructura de directorios, configuración de linters, integración de escaneo de seguridad, definición de flujos de aprobación). Los blueprints se construyen sobre Projen, definiendo la configuración del proyecto programáticamente en TypeScript. La gestión de versiones de blueprints también permite aplicar actualizaciones de plantillas gradualmente a proyectos existentes. Cuando un nuevo miembro se une al equipo, simplemente creando un proyecto desde un blueprint, puede comenzar a desarrollar con el entorno de desarrollo, pipeline y convenciones de codificación completamente configurados.
Dev Environments e IDE en la nube
Dev Environments es una función que construye instantáneamente entornos de desarrollo en la nube. Al describir la definición del entorno de desarrollo en un devfile (devfile.yaml) del repositorio, el entorno se inicia con un clic desde el navegador o un IDE local. Soporta conexión desde VS Code, JetBrains IDE y AWS Cloud9, permitiendo a los desarrolladores usar su editor habitual. El tamaño de cómputo del entorno es seleccionable desde 2 vCPU / 4 GB hasta 16 vCPU / 32 GB, asignando instancias más grandes para proyectos con compilaciones pesadas. En el devfile se pueden definir imágenes de contenedor, variables de entorno, reenvío de puertos y comandos de inicio, pudiendo también iniciar servicios dependientes como bases de datos o colas de mensajes como contenedores simultáneamente. El almacenamiento persistente mantiene los archivos en progreso y el estado de las ramas incluso al detener el entorno. La detención automática por inactividad (15 minutos por defecto) controla los costos, y al reanudar se recupera el estado anterior en decenas de segundos. Esto elimina fundamentalmente el problema de "funciona en mi máquina" causado por diferencias en entornos locales, logrando una experiencia de desarrollo consistente para todo el equipo.
Pipelines CI/CD mediante workflows
Los workflows de CodeCatalyst son un motor CI/CD que define pipelines de compilación, pruebas y despliegue en archivos YAML. Las definiciones de workflow se colocan en el directorio .codecatalyst/workflows/ del repositorio y se ejecutan automáticamente al hacer push o pull request. Las acciones disponibles incluyen compilación (comandos shell arbitrarios), pruebas (recopilación automática de reportes), despliegue CDK, despliegue CloudFormation y publicación en S3. La conexión con cuentas AWS se gestiona mediante recursos de "entorno", pudiendo vincular diferentes cuentas AWS para los entornos de desarrollo, staging y producción. Insertando puertas de aprobación, se puede requerir la aprobación de miembros designados antes del despliegue a producción. El tipo de cómputo se selecciona entre Linux y Windows, y los runtimes necesarios para la compilación (Node.js, Python, Java, Go, .NET) se especifican dentro de la acción. El paso de artefactos permite configurar pipelines que transfieren la salida de acciones de compilación a acciones de despliegue. La capa gratuita incluye 2,000 minutos de tiempo de compilación por mes, permitiendo operar CI/CD sin costos adicionales para equipos pequeños.