Diseño visual de aplicaciones serverless con AWS Infrastructure Composer (antes AWS Application Composer) - Generación automática de plantillas IaC

Explicamos el diseño visual de arquitecturas serverless con Infrastructure Composer, la generación automática de plantillas SAM y la integración con VS Code.

Descripción general de Infrastructure Composer

Infrastructure Composer es un servicio que permite diseñar visualmente la arquitectura de aplicaciones serverless y crea automáticamente plantillas de AWS CloudFormation y AWS SAM. En lugar de escribir YAML a mano, usted coloca recursos en un lienzo y los conecta, e Infrastructure Composer arma una plantilla que incluye las políticas de IAM y la configuración de orígenes de eventos necesarias, de acuerdo con las prácticas recomendadas de AWS.

Diseño visual y sincronización bidireccional

Si arrastra una función de Lambda al lienzo y la une a API Gateway con una línea de conexión, se generan automáticamente el mapeo de origen de eventos de API Gateway y el rol de ejecución de Lambda. Si conecta una tabla de DynamoDB con Lambda, el ARN de la tabla se configura como variable de entorno y se añaden permisos de acceso a DynamoDB a la política de IAM. Los cambios en el lienzo y en el código de la plantilla se sincronizan automáticamente, y lo que corrija a mano en el YAML también aparece en el diagrama. Con la extensión de VS Code, puede editar visualmente plantillas SAM locales existentes.

Uso en el desarrollo en equipo y limitaciones

Las plantillas diseñadas en Infrastructure Composer se prueban localmente con SAM CLI, se confirman en un repositorio Git y se incorporan al flujo de trabajo de IaC habitual. Lo que se cambia en el lienzo visual también se incorpora automáticamente a la plantilla, por lo que las diferencias se comprueban en la revisión de código. Los recursos que se pueden manejar en Infrastructure Composer no se limitan a recursos serverless como Lambda, API Gateway, DynamoDB, S3, SQS, SNS y Step Functions. Los recursos como VPC, RDS y ElastiCache también se pueden colocar en el lienzo si CloudFormation los admite. En plantillas que usan mucho Conditions y Mappings complejos, el límite entre la edición visual y la edición manual se vuelve difuso, por lo que es importante que el equipo establezca reglas sobre hasta dónde gestionar con Composer y a partir de dónde escribir a mano.

Cuándo usar CloudFormation / SAM

Infrastructure Composer es una herramienta para trabajar con plantillas de CloudFormation y AWS SAM en forma de diagrama, y no sustituye a CloudFormation ni a SAM CLI. Es adecuada para crear rápidamente prototipos de nuevas aplicaciones serverless. Si se importa una plantilla grande existente (cientos de recursos), el lienzo se vuelve confuso y disminuye la facilidad de uso, por lo que la aplicación a proyectos existentes se decide con cuidado. En proyectos que usan CDK, es posible visualizar en Composer las plantillas de CloudFormation que generan los constructos de CDK, pero no existe una función para convertir de vuelta a código CDK lo editado en Composer, por lo que lo realista es usarlo como herramienta de visualización de solo lectura. Si se combina con SAM Accelerator (sam sync), se puede repetir a intervalos cortos el ciclo de diseñar en Composer, hacer un despliegue en caliente con sam sync y comprobar el funcionamiento.

Precios de Infrastructure Composer

El uso de Infrastructure Composer en sí no tiene coste. No se aplican cargos adicionales por el editor visual de la consola de AWS, la extensión de VS Code ni la generación automática de plantillas SAM. El único coste son los cargos de uso de los recursos de AWS desplegados con las plantillas generadas. Las pruebas locales combinadas con SAM CLI tampoco están sujetas a costes adicionales.

El flujo de la idea al despliegue

Infrastructure Composer conecta con fluidez la serie de pasos que va desde el diseño hasta el despliegue. Si arma la arquitectura colocando / conectando recursos en la pantalla, se genera la plantilla de IaC correspondiente. Al unir recursos con líneas, los permisos y la configuración necesarios se completan automáticamente, lo que reduce el esfuerzo de escribir a mano el cableado detallado. Las plantillas generadas se pueden combinar con herramientas de desarrollo para serverless y llevar a las pruebas locales y al despliegue en producción. Poder dar forma rápidamente a la arquitectura que se tiene en mente y convertirla directamente en algo que funciona ayuda a poner en marcha el desarrollo.

Cableado automático de orígenes de eventos y permisos

En las aplicaciones serverless es necesario conectar correctamente varios recursos, como funciones, almacenes de datos y colas de mensajes. Al escribirlo a mano, suelen producirse omisiones en la concesión de los permisos necesarios y errores en la configuración de conexión. Si conecta los recursos entre sí en el diseño visual, los permisos y la configuración de referencias que requiere esa relación se reflejan automáticamente en la plantilla. Así se reducen los errores de conexión y también se acorta el tiempo necesario para aislar la causa de que algo no funcione. Al armar visualmente las relaciones entre recursos, la compleja configuración subyacente queda ordenada, lo que facilita el trabajo de desarrollo serverless.

Como ayuda para el aprendizaje y la comprensión

Infrastructure Composer también es útil como punto de entrada para aprender configuraciones serverless. Al colocar y conectar recursos, puede entender a qué parte de la plantilla corresponde cada uno comparando el diagrama con el código. Para los principiantes que están aprendiendo a escribir IaC, esto ayuda a ver las plantillas abstractas como configuraciones concretas. Además, si carga una plantilla existente y la convierte en diagrama, puede captar rápidamente la imagen general de una aplicación compleja, lo que resulta útil en traspasos e investigaciones. Poder entender de forma conjunta lo visual y lo escrito respalda el aprendizaje y el mantenimiento en el desarrollo serverless.

Resumen

Infrastructure Composer es una herramienta que visualiza el diseño de aplicaciones serverless y acelera la construcción inicial de IaC mediante la generación automática de plantillas SAM. La sincronización bidireccional entre el lienzo visual y el YAML facilita mantener alineados el diseño y la implementación. Es adecuada para prototipos y proyectos serverless de tamaño pequeño a mediano.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir