Integrando monorepos con AWS Codepipeline

Contexto
En el 2024 nos tocó desarrollar una Proof of Concept para un cliente que mantiene toda su arquitectura de desarrollo sobre servicios de AWS, los relevantes para esta historia son:
- CodeCommit: Repositorio de código.
- CodeBuild: Sistema de integración continua as a service.
- CodePipeline: Orquestador de CI/CD.
- ECS: Los microservicios se despliegan sobre un cluster ECS.
El producto del cliente al cual debe dar servicio la PoC consiste en un sistema de pagos con arquitectura de microservicios, donde cada microservicio cuenta con su propio repositorio en CodeCommit.
Los cambios de código siguen un pipeline de CI/CD sencillo:
- Se hacen cambios al código de un microservicio y se pushean a una rama del repositorio
- El commit sobre la rama activa a un pipeline de CodePipeline
- Este pipeline activa el proyecto de CI del microservicio definido en CodeBuild
- CodeBuild construye y prueba el microservicio, genera los artefactos y la imagen Docker
- CodePipeline termina con un stage que despliega la imagen Docker en un service de ECS
Desarrollo del PoC
Al ser un Proof of Concept, tendríamos que utilizar el mismo esquema de desarrollo y reutilizar algunos de sus microservicios con ciertas modificaciones.