El pasado 15 de junio tuvo lugar en Madrid el AWS Summit, al que pudimos asistir para conocer diferentes empresas, tecnologías y, sobre todo, asistir a las charlas del evento en las que pudimos conocer el servicio AWS CodeCatalyst, que es la apuesta que tiene AWS para desarrollar software de forma rápida, colaborativa, eficiente e integrando diferentes funcionalidades que intervienen en los diferentes casos de uso, consiguiendo con todo ello la adopción de buenas prácticas de integración y despliegue continuo.

Tras la charla sobre AWS, decidimos realizar un workshop para entender realmente cómo funciona este servicio y sus peculiaridades. Antes de sumergirnos en nuestra experiencia, es importante entender algunos conceptos clave relacionados con CodeCatalyst. Estos conceptos nos ayudarán a entender mejor cómo funciona el servicio. Como indica la documentación de AWS, los conceptos más importantes son los siguientes:

  • Espacios: Un espacio representa a tu empresa, departamento o grupo. Es el contenedor principal que alberga proyectos, miembros y recursos en CodeCatalyst. Los usuarios con permisos de administrador podrán gestionar el espacio y sus recursos.
  • Proyectos: Los proyectos le permiten añadir, actualizar o eliminar usuarios y recursos, personalizar el panel de control de su proyecto y supervisar el progreso del trabajo de su equipo.
  • Blueprints: Al crear un proyecto, se puede elegir un blueprint que proporcione la configuración inicial, como un repositorio de código fuente de muestra, scripts de compilación, acciones de implementación y recursos de AWS. Los blueprints aceleran la configuración inicial del proyecto y facilitan la adopción de prácticas recomendadas.
  • Conexiones de cuenta: Una conexión de cuenta asocia un espacio de CodeCatalyst con su cuenta de AWS. Esta asociación le permite acceder a los recursos de AWS dentro de CodeCatalyst y configurar roles de IAM para acciones específicas en el flujo de trabajo.

Para entender cómo funciona CodeCatalyst, estuvimos trabajando en la creación de un sitio web estático utilizando uno de los blueprints que AWS nos ofrece dentro de este servicio. Durante este workshop, exploramos las capacidades y características clave de CodeCatalyst, y trabajamos a través de ejercicios prácticos para experimentar de primera mano cómo este servicio puede mejorar la eficiencia y la productividad en el desarrollo de software.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Experiencia en el workshop

Lo primero que hicimos fue generar un Espacio en CodeCatalyst, donde indicamos la cuenta de AWS en la que desplegamos este espacio, concluyendo con la verificación mediante un token.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Cabe destacar que este servicio sólo ofrece actualmente la posibilidad de despliegue en la región de Oregón (us-west-2). Sin embargo, los recursos del blueprint pueden desplegarse en cualquier región.

Seleccionamos el blueprint «Static Website» donde principalmente tenemos que configurar un rol para la implementación de este sitio web estático (este rol lo genera CodeCatalyst automáticamente) y donde se indica en qué región se quiere desplegar el sitio web estático entre otros parámetros.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Una vez completado el punto anterior, comenzó a desplegarse todo el blueprint vía CDK dentro de una instancia gestionada por AWS CodeCatalyst, seleccionada cuando elegimos nuestro plan de servicio.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Como en la mayoría de los servicios de AWS, toda la actividad llevada a cabo por este blueprint puede ser revisada a través de los logs de despliegue.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Finalmente, cuando nuestro despliegue finalizó pudimos visualizar la web estática generada bajo los servicios de Amplify + Cloudfront + S3.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Otra característica que encontramos fue la posibilidad de utilizar un tablero kanban dentro del propio proyecto, en el que se pueden generar tareas para asignar a su ejecución a diferentes usuarios, que pueden ser generados a través de la interfaz de CodeCatalyst y otorgarles diferentes roles en el proyecto.

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Para concluir nuestro workshop, estuvimos probando la funcionalidad de integración de CodeCatalyst con VSCode. Para realizar esta integración es necesario tener instalada la extensión «AWS Toolkit» y disponer de un perfil AWS ID Builder. Una vez realizadas ambas acciones, pudimos sincronizar nuestro repositorio generado por CodeCatalyst y visualizarlo a través de VSCode:

Captura de pantalla sobre cómo funciona AWS CodeCatalyst.
Captura de pantalla sobre cómo funciona AWS CodeCatalyst.

Conclusiones

Como conclusiones tras la charla recibida en el AWS Summit y nuestro workshop realizado, creemos que es un buen servicio para desarrollar casos de uso de forma rápida, autónoma y colaborativa, con posibilidad de diversas integraciones que pueden ayudar a llevar a cabo proyectos de forma más eficiente.

Este servicio permite a los equipos de desarrollo de software planificar, desarrollar, colaborar, crear y entregar aplicaciones en AWS reduciendo la fricción a lo largo del ciclo de desarrollo. El servicio pretende simplificar y agilizar el proceso de desarrollo de software proporcionando una única plataforma que integra múltiples herramientas y recursos para facilitar la colaboración entre equipos.

Mencionar que AWS CodeCatalyst está en preview, por lo que se espera que futuros posts cubran otras características del servicio.

 

Imagen: Unsplash | Christopher Gower

Authors

  • Mohammed A. El Meziani

    Platform Engineer: "I love automating any process either with AI or with code. I am also always trying to learn new technologies. In my spare time I like to workout, hike, listen to podcasts or audiobooks."

  • Daniel Mancebo

    Platform Engineer at Keepler. "Passionate about Infrastructure as Code and the development of use cases with new services, I find in each project an opportunity to challenge my creative skills. Outside of the digital world, I dedicate my free time to play the sax and to explore new horizons through my travels."