AWS Proton
Servicio de entrega gestionado que permite a los desarrolladores desplegar servicios sin preocuparse por la infraestructura, basándose en plantillas definidas por equipos de plataforma
Descripción general
AWS Proton es un servicio completamente gestionado donde los equipos de ingeniería de plataforma definen y gestionan plantillas de infraestructura (plantillas de entorno y plantillas de servicio), y los desarrolladores despliegan aplicaciones simplemente seleccionando esas plantillas. Usando CloudFormation o Terraform como backends, controla versiones de configuraciones de infraestructura como VPC, ECS y Lambda como plantillas, equilibrando la estandarización de infraestructura y la gobernanza en toda la organización.
Diseño de plantillas de entorno y plantillas de servicio
El sistema de plantillas de Proton es una estructura de dos capas: plantillas de entorno que definen infraestructura compartida y plantillas de servicio que definen recursos específicos de aplicación. Las plantillas de entorno describen recursos fundamentales compartidos por múltiples servicios como VPCs, subredes, ALBs y clústeres ECS, mientras que las plantillas de servicio describen recursos por aplicación como definiciones de tareas ECS, funciones Lambda y endpoints de API Gateway. Las plantillas se gestionan con versionado semántico (major.minor), donde las actualizaciones de versión menor se aplican automáticamente a servicios existentes y las actualizaciones de versión mayor requieren aprobación explícita del desarrollador. Los parámetros de entrada de plantillas separan claramente los elementos expuestos a desarrolladores de los elementos fijados por el equipo de plataforma.
Despliegue de autoservicio e integración con pipelines CI/CD
Los desarrolladores seleccionan una plantilla de servicio desde la consola o CLI de Proton, ingresan unos pocos parámetros, y el despliegue de infraestructura y aplicación se completa. La integración con CodePipeline permite incorporar pipelines de despliegue automatizado activados por pushes a repositorios Git en las plantillas. La integración con herramientas CI/CD externas como GitHub Actions y GitLab CI también es posible, llamando a APIs de Proton para reportar el estado del despliegue. El concepto de instancia de servicio permite desplegar el mismo servicio en entornos de desarrollo, staging y producción con parámetros individuales. Todo el historial de despliegue se registra en Proton, manteniendo automáticamente pistas de auditoría.
Soporte de Terraform e ingeniería de plataforma en la práctica
Proton soporta Terraform además de CloudFormation como motor de aprovisionamiento. El soporte de Terraform usa un mecanismo de aprovisionamiento autogestionado que ejecuta terraform apply en CodeBuild, permitiendo incorporar activos de módulos Terraform existentes directamente en plantillas de Proton. En el contexto de ingeniería de plataforma, Proton funciona como componente central de una Internal Developer Platform (IDP). La integración API con portales de desarrollador como Backstage permite arquitecturas donde Proton aprovisiona infraestructura en segundo plano cuando los desarrolladores crean servicios desde el portal. Incorporar flujos de revisión y aprobación de plantillas asegura que solo las plantillas que han pasado la revisión previa del equipo de seguridad estén disponibles.