Blog de Amazon Web Services (AWS)

Acelerar la entrega de soluciones mediante la implementación de procesos de CI/CD en AWS

Por Filipe Almeida, analista de soluciones en la nube en MyTEC

Introducción y contexto

En MyTEC, Socio AWS de Consultoría nivel Advanced, con el Service Delivery Amazon EC2 para Microsoft Windows y AWS Lambda, siempre tenemos la ambición de ofrecer soluciones que faciliten las rutinas y los procesos diarios de nuestros clientes. Y esto es exactamente lo que sucedió con uno de ellos, Rock Content, con la implementación de un proceso continuo de integración y entrega.

Rock Content es líder mundial en marketing de contenidos y recientemente adquirió iClips, una empresa minera enfocada en la gestión de agencias de publicidad, y ScribbleLive, canadiense de la misma industria, enfocada en entregar productos de contenido que son muy similares a lo que Rock Content entregó en Brasil y en América Latina. Scribble cuenta con una cartera de clientes como RedBull, Cisco, FedEx, Dell, Reuters, Deloitte y American Express. Estas medidas tomadas en los últimos meses permitirán que Rock Content apoye a marcas globales, ayudándolas a expandir sus estrategias a múltiples países e idiomas.

Toda esta expansión empresarial debía ir acompañada también de la evolución tecnológica. Este crecimiento tecnológico debe ser capaz de ofrecer soluciones sostenibles a largo plazo, que sigan los pasos de la empresa y les permitan utilizar estas tecnologías para agilizar los procesos de entrega de sus productos.

En el contexto de DevOps, entramos con el objetivo de cumplir esta misión. Implementar esta cultura, junto con otros Stakeholders y tech-leads de la empresa que se unieron al proyecto, con el objetivo de ganar agilidad en la entrega de soluciones, a un costo que también fue armonioso con sus planes.

Desafíos técnicos

Estandarización

La primera ola de cambios se relacionó con la estandarización del uso de los servicios y las herramientas tecnológicas de AWS utilizadas. Varias herramientas de CI, por ejemplo, fueron utilizadas por diferentes desarrolladores. Sin embargo, el cambio tuvo que llegar rápidamente, sin tener un gran impacto en las entregas diarias y continuas de los desarrolladores. Nuestra primera tarea fue entender lo que cada una de estas herramientas entregó a quienes las usaron y por qué tenían cierta preferencia por la herramienta de su elección.

Solución

Teniendo en cuenta toda la funcionalidad necesaria para las cargas de trabajo de Rock Content, pudimos estandarizar el uso de la herramienta CI mediante AWS CodeCommit. Debido a que nuestra intención y los líderes tecnológicos del proyecto era mantener toda la infraestructura en AWS, elegir esta herramienta hacía aún más sentido.

Nuevas implementaciones

La segunda ola de cambios estaba relacionada con la implementación de nuevas herramientas de AWS que acelerarían la entrega de productos Rock Content por parte del equipo de Dev. Todas las canalizaciones se han configurado en la parte superior de AWS CodePipeline, a través de AWS CodeBuild y utilizando ECR como repositorio de imágenes de contenedor.

Rock Content no tenía elasticidad, escalabilidad o alta disponibilidad en sus aplicaciones. El uso de AWS Fargate ha permitido que las aplicaciones sean escalables y estén altamente disponibles. Esto ha sido un avance considerable, debido principalmente a la criticidad de estas aplicaciones y su alto impacto en los clientes finales que las utilizan.

El resultado

Tener una canalización definida dentro de AWS también proporcionó una entrega bien optimizada, lo que redujo la implementación y la funcionalidad de las aplicaciones de unas horas a unos minutos.

La estandarización de las herramientas y arquitecturas dentro de AWS también facilitó la gestión de proyectos, reduciendo el tiempo necesario para controlar los entornos, que antes eran heterogéneos en términos de plataforma y herramientas, y reduciendo también la posibilidad de que se produzcan errores en esta gestión. La supervisión del estado y el registro de estas herramientas también se han facilitado en gran medida gracias a la centralización de las tuberías en AWS.

A continuación, se muestra un dibujo estándar de cómo se veía la arquitectura del cliente en AWS: