BVI Business Company necesitaba un socio que pudiera desplegar y administrar su infraestructura por completo en la nube, acorde con Well Architected Framework de AWS, pero no sólo eso, también buscaba implementar toda la cultura DevOps en sus procesos de negocio.
El ámbito tecnológico cambia a cada segundo y una infraestructura resistente a fallos, escalable, automatizada, monitoreada y altamente eficiente es una necesidad que todas las empresas nativas de la nube necesitan para cumplir con las expectativas de sus cliente. Wallenomic (BVI Business Company) encontró al aliado perfecto en Nubity para poder cumplir con las exigencias que los estándares del mercado impone.
Nubity integró sus microservicios en una solución escalable, resistente a fallos, automatizada, altamente eficiente gracias a la incorporación de metodologías DevOps y cumpliendo con las prácticas recomendadas del Well Architected Framework.
Lecciones Aprendidas
Tabla técnica
Definición del problema | El cliente realizaba el despliegue de la infraestructura de forma manual y la complejidad que esto representaba le llevó a buscar un socio que le ayudara a automatizar el despliegue de la infraestructura para los 25 microservicios que componen su solución, El cliente tiene su propio equipo de desarrollo, pero la nube está fuera de su área de experiencia y tenía plazos ajustados para poner su nueva aplicación en producción. Por último, pero no menos importante, el cliente buscaba un proveedor que pudiera proporcionar servicios DevOps para apoyar y desarrollar sus aplicaciones sin servidor. Principales problemas Plazos ajustados para lanzar la aplicación a sus nuevos usuarios. Tienen muchos problemas con el mantenimiento de la configuración de la infraestructura y los estándares en la antigua aplicación. querían evitarlo en la nueva infraestructura. El proceso de despliegue manual consumía 3 días al equipo de desarrollo del cliente. El número de microservicios es demasiado grande para gestionar los despliegues manualmente y los errores se producían con mucha frecuencia. Rollbacks muy complicados y que implicaban hasta 1 día de trabajo. |
Solución propuesta | Como resultado de las conversaciones con el cliente, propusimos lo siguiente: Ingenieros DevOps especializados en tecnologías serverless para crear los scripts de despliegue que incluyan toda la infraestructura subyacente y sus respectivos pipelines CI/CD para los 25 microservicios, toda la infraestructura debe estar codificada y realizar una evaluación basada en el Well Architected Framework. Un pipeline de CI/CD que incluye: 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 en 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 Un pipeline de CI/CD para cada microservicio. IaaC para todo el despliegue y configuración de la infraestructura con Terraform. Creación de diferentes entornos para la fase de desarrollo y producción: En Nubity hemos estandarizado el uso de terraform como infraestructura principal como marco de código en el que establecemos tanto la infraestructura compartida como la específica del entorno. Cada proyecto tiene 2 tipos de implementaciones de terraformación, una plantilla a nivel de infraestructura base y una plantilla a nivel de microservicios, como detallamos en la siguiente lista: La infraestructura base se divide en dos módulos, la infraestructura compartida en toda la solución y la infraestructura específica del entorno, también los módulos se dividen en categorías de servicio como «seguridad», «red», «base de datos», «almacenamiento», etc. Estos módulos se invocan con diferentes parámetros en función del escenario. La infraestructura de microservicios también se divide en 2 módulos, uno centrado en la infraestructura básica del propio servicio y otro para los recursos específicos del entorno. Los servicios de Digidolar / Localbroker utilizan principalmente ECS Fargate. Dado que estamos mejorando constantemente nuestro proceso, cada servicio que creamos está utilizando un módulo de terraformación que invoca nuestros módulos internos para los micro servicios de Fargate, que nos permite desplegar toda la solución, incluyendo la tubería de CI/CD de una manera estandarizada. Gestión del cambio y formación del equipo de desarrollo del cliente para gestionar la metodología DevOps. |
Servicios de AWS utilizados | ECS CodePipeline CodeBuild CodeDeploy API Gateway CloudFront CloudWatchS3 EC2 for Microsoft Windows, EC2 for Linux Workspaces RDS CloudWatch |
Herramientas de terceros | Terraform BitBucket |
Resultados después de la implementación | Tras la implantación de la metodología DevOps, el cliente modificó una eficiencia operativa muy alta y quedó muy satisfecho con el siguiente resultado El tiempo de despliegue de una nueva versión de un servicio toma unos 10 minutos y se realiza sin tiempo de inactividad. Hoy en día, pueden implementar la infraestructura 100% como código y desplegar sus aplicaciones de forma automatizada. Cero errores en el nuevo entorno de producción. El calendario de desarrollo continuó según lo previsto sin ningún retraso debido a problemas de infraestructura. Entornos diferentes para cada etapa de desarrollo. Los rollbacks prácticamente no son necesarios, pero se tarda 10 minutos en completarlos. Un equipo de desarrollo del cliente implementa y utiliza metodologías DevOps básicas todos los días. Esta implementación dio paso a poder ofrecer servicios financieros de forma segura, resistente y altamente escalable. |
Métricas | Gracias a que los microservicios se despliegan automáticamente a la nube, su equipo de desarrollo puede enfocarse 100% en la implementación de características cruciales para el avance de sus proyectos. |
Lecciones aprendidas | La implementación de metodologías DevOps desde la base, permite que la eficiencia se dispare y que los desarrolladores se enfoquen en las tareas no rutinarias, que agregan valor a los proyectos. |
Results
Automatización y eficiencia mejoradas gracias a prácticas DevOps orientadas a la nube.
Gracias a la implementación de cultura DevOps en todo el proceso de desarrollo, infraestructura e implementación, los proyectos de Wallenomic han logrado conseguir la automatización de procesos que antes solían ser rutinas manuales, todo ello acompañado de metodologías que impulsan la mejora continua cerrando el ciclo de DevOps en la Nube.