Technology solutions that boost business performance

Contact
MX: Insurgentes Sur 318, Roma Norte
Cuauhtemoc (06700), CDMX, Mexico ARG: Juramento 1475, Piso 12, oficina 8
Belgrano (C14 28DMQ), CABA Argentina

Compass: Evolucionando hacia DevOps

Compass-group-2

Compass Group, empresa multinacional enfocada en alimentos y bebidas en el sector restaurantero, desarrolló una plataforma de e-commerce para conectar con mayores audiencias.

La constante búsqueda de conexión con más clientes llevó a Compass Group al desarrollo de una plataforma que permitiera expandir su mercado al comercio electrónico, sin embargo requerían que esta nueva plataforma se acoplara a los estándares tecnológicos actuales, por lo que requerían un socio que pudiera llevar la infraestructura existente a la nube, desacoplando los servicios existentes, convirtiendo así a la plataforma en un desarrollo de microservicios de alta disponibilidad y cuyo desarrollo se vería beneficiado de prácticas DevOps.

Lecciones Aprendidas

Los E-commerce que no se adaptan a la demanda son muy vulnerables a fallos, pero son aquellos que no sólo se adaptan bien, sino que mantienen sus servicios mediante prácticas recomendadas de DevOps los que logran prevalecer ante eventualidades como picos altos de tráfico, desastres o fallos.

Tabla técnica

Definición del problemaCompass Group desarrolló un sitio web de comercio electrónico gastronómico en el que vende alimentos a clientes de diferentes sectores. Debido al éxito del sitio web y a las nuevas oportunidades de negocio que surgieron de este proyecto. Compass Group buscaba un rediseño estructural de su desarrollo e implementación de ecommerce para asegurar la estabilidad y escalabilidad de la solución.
El principal problema al que se enfrentaban era que, debido a la naturaleza del negocio, el cliente podía realizar un pedido en cualquier momento, y los despliegues manuales que estaban realizando y los cambios en la aplicación estaban provocando corrupciones de datos e interrupciones en las solicitudes de pedidos.
Por último, el cliente se enfrentaba a muchas preocupaciones relacionadas con la seguridad general de su aplicación, el proceso de desarrollo y la infraestructura.
Principales problemas
• 3 semanas de creación manual de la infraestructura y despliegue de la aplicación para cada nuevo cliente. No hay un estándar de infraestructura debido al proceso manual.
• Despliegue manual y retrocesos con lapsos de tiempo sin conexión durante el proceso de actualización: Los despliegues se realizan durante los fines de semana, tardando hasta 2 días en probar que todo funciona correctamente y 1 día laborable para volver a la versión anterior si es necesario.
• Las reclamaciones de SLA se deben principalmente a los nuevos despliegues para aumentar la funcionalidad de la plataforma. (pérdida de dinero)
• Cambios y configuraciones manuales de la infraestructura y del software base: Al realizar los cambios manuales había diferencias de configuración entre los distintos servidores y errores humanos. Esto provocaba una mala experiencia del cliente y una pérdida de ingresos.
• Falta de escalabilidad: La escalabilidad era manual y nunca llegaba a tiempo para soportar los picos de tráfico.
Solución propuestaComo parte de nuestro servicio DevOps hemos propuesto una solución completa con un proceso de migración a AWS con una infraestructura que les permitiera alcanzar la fiabilidad que el cliente buscaba.
La propuesta de replataforma de Nubity se basó en el servicio AWS Elastic Beanstalk, construyendo una arquitectura multientorno escalable alrededor de la nube de AWS implementando la práctica DevOps en todos los pipelines de despliegue (AWS CodePipeline) que realiza la integración continua y el despliegue continuo de los cambios de la plataforma.
Para la implementación de DevOps hemos propuesto una canalización de despliegue para cada entorno (AWS CodePipeline) que realiza la integración continua y el despliegue continuo de los cambios de la plataforma.
• Automatización del pipeline CI/CD para cada entorno, de modo que los nuevos cambios y los rollbacks puedan realizarse rápidamente y en cualquier día de la semana con cero tiempo de inactividad.
Integración continua
• Hemos establecido un pipeline de CI en nuestro repositorio de código interno en el que estamos utilizando un conjunto de herramientas que comprueba la calidad del código, la estructura de commit y los estándares de seguridad, como parte del pipeline de CI ejecutamos las siguientes revisiones:
QA
• Comprueba la existencia de errores de configuración en los recursos de AWS
• Revisa las políticas de acceso para evitar permisos muy abiertos
• Garantiza el almacenamiento y el cifrado de tránsito
• Evalúa las expresiones HCL así como los valores literales
• Evalúa las relaciones entre los recursos de Terraform
• Analiza los valores sensibles en texto plano
Build
• Inicia todos los módulos remotos de nuestro repositorio
• Realiza el plan de terraformación para revisar los cambios de infraestructura
• Resuelve los parámetros sensibles de la nube de Terraform enmascarados como datos sensibles
• Crear toda la infraestructura mediante código con Terraform para poder realizar cambios en la infraestructura de forma estandarizada y versionada.
• Desplegar los servidores detrás de un ALB y un grupo de autoescalado para escalar automáticamente la infraestructura para satisfacer la demanda.
Servicios de AWS utilizadosAWS Elastic Beandstalk
CodePipeline
RDS
CloudWatch
Herramientas de tercerosGitLab
WordPress
Resultados después de la implementaciónGracias a la implantación de la metodología DevOps, el cliente ha podido replicar la infraestructura para satisfacer diferentes necesidades de negocio con pequeños cambios en el software. También ha podido adaptarse a los rápidos cambios y adaptaciones que cada línea de negocio demanda.
Hoy en día el cliente puede desplegar un 50% más rápido cada cambio que el negocio solicita con respecto a su forma de trabajo tradicional sin afectar a las aplicaciones online en el momento de los cambios.
La implementación de la metodología DevOps ha cambiado por completo la forma en que el cliente desarrolla, implementa la integración y el despliegue continuo.
El tiempo de comercialización ha disminuido considerablemente gracias a la automatización de los despliegues y las reversiones ya no son un problema.
Principales logros
• Despliegue en menos de la mitad de tiempo que antes gracias a la implementación de IaaC.
• Segmentación del entorno para probar la última versión del código en un entorno de ensayo antes de pasarlo a producción reduciendo a cero los errores en producción
• Aumento de la fiabilidad del código desplegado gracias a la integración continua del código.
• Despliegues más frecuentes en cualquier día de la semana.
• Estrategias automáticas de rollback.
• Escalabilidad automática para satisfacer la demanda.
Métricas de éxito: Tiempo de salida al mercado y escalabilidad del negocio:
Gracias a la implantación de la metodología DevOps, el cliente ha notado hasta un 75% de mejora en el tiempo de despliegue y producción de cada nuevo cliente, pudiendo replicar cada entorno de forma rápida y sin errores.
Mantener un pipeline de desarrollo y despliegue para cada uno de sus clientes le ha permitido mejorar los tiempos de implementación de mejoras y nuevas funcionalidades en el ecommerce de cada cliente hasta en un 50%.
Gracias a la integración continua y a la implementación de diferentes entornos han reducido los rollbacks prácticamente a cero, y se animan a realizar los despliegues cualquier día de la semana, reduciendo así los costes de que el equipo trabaje fines de semana o festivos para llevarlos a cabo.
Gracias a la implementación de la metodología DevOps, el cliente ha podido escalar su negocio 6 veces gracias al rápido despliegue e implementación de nuevas funcionalidades que cada empresa demanda para los diferentes modelos de negocio.
MétricasFue posible reducir el tiempo de despliegue en hasta un 70%, mientras que la disponibilidad aumentó hasta alcanzar el 99%.
Lecciones aprendidasAdaptación ante la demanda es un concepto clave que todo e-commerce debe dominar, una infraestructura bien desacoplada, acompañada de flujos de trabajo ágiles son la solución a eventualidades que podrían poner en peligro la operación de un negocio como el presente.

Results

La clave del éxito: Evolución constante.

Compass Group no se conformó con una infraestructura de microservicios, sino que llevó todos sus procesos a un nuevo nivel con la implementación de Infraestructura como código, división de cargas de trabajo, implementación de Pipelines de desarrollo y automatización de despliegues.

El E-commerce de Compass Group nunca más será estático y se mantendrá evolucionando.

 

-70%
Reducción de tiempo de despliegue
99%
Aumento de la disponibilidad