HemisferioD, DevOps Assessment
El Reto
Inicialmente, como parte del proceso de desarrollo utilizado por HemisferioD, cuando se desarrollaban nuevas versiones y funciones, los equipos de desarrollo y operaciones ejecutaban manualmente el proceso de creación, prueba y despliegue de dichas versiones tanto en los ambientes de desarrollo/prueba, como en los de producción.
Esto generaba una carga de trabajo operativa muy pesada para HemisferioD, además de reducir la velocidad con la que producen el código y, por lo tanto, el Time-to-market para sus clientes finales.
HemisferioD requería un proceso más eficiente, preferiblemente automatizado para lanzar nuevas funciones y actualizaciones a los clientes.
Solución propuesta por Clouxter
Para lograr estos objetivos, propusimos un proceso automatizado rápido y efectivo para lanzar nuevas funciones y actualizaciones a los clientes, donde se garantiza la entrega de un código seguro y confiable.Este proceso automatizado consta de un grupo de pipelines diseñadas para construir, probar y desplegar cada uno de sus componentes por separado. Cada pipeline consta de las siguientes etapas:
- Fuente: Bitbucket es la herramienta de control de fuente utilizada por HemisferioD, cada tubería apunta a un repositorio y rama de componentes específicos.
- Compilación: en esta etapa, el código se compila y luego se prueba dentro del mismo proyecto de CodeBuild, las compilaciones se realizan con maven o flutter para los componentes de backend y frontend y luego se invoca a SonarQube para realizar algunas pruebas de análisis de seguridad.
- Despliegue: las aplicaciones se ejecutan en instancias EC2, por lo que CodeDeploy es perfecto para implementar nuevas versiones de código durante el pipeline. Con los enlaces de eventos de CodeDeploy, realizamos acciones en diferentes etapas del proceso para garantizar un despliegue exitoso. Estas acciones incluyen scripts para detener el servicio de la aplicación del servidor, o iniciarlo y probarlo automáticamente una vez finalizado el despliegue.
Aplicaciones o soluciones de terceros utilizadas:
- SonarQube: esta herramienta se integró en los pipelines para automatizar las pruebas de seguridad de aplicaciones estáticas.
- Bitbucket: bitbucket se usa como control de fuente para implementar una estrategia de flujo de git.
Servicios de AWS utilizados como parte de la solución:
A continuación se muestran los servicios de AWS implementados de acuerdo a la solución propuesta:
- Los pipelines de CI/CD se crearon para incorporar la automatización del ciclo de lanzamiento de software mediante servicios de AWS como Code Commit, Code Build y Code Deploy.
- Se logró una alta disponibilidad en EC2 mediante la configuración del escalado automático y el equilibrio de carga.
- Para la automatización y el monitoreo, todos los recursos de AWS se aprovisionan mediante CloudFormation y se monitorean con Cloudwatch.
- En términos de seguridad, el servicio KMS se utiliza para implementar el cifrado (en reposo/en tránsito) en los servicios que lo requieren. WAF se utiliza para proteger las cargas de trabajo.
- Las cuentas de desarrollo, puesta en escena y producción se aislaron
Resultados
- Mejora de la agilidad: con la implementación de 26 pipelines en cada entorno, el cliente redujo la carga operativa de implementar manualmente nuevas versiones de código, pasando de entregar una vez cada dos semanas a varias veces por semana; el uso de IaC y ASG simplifican la administración de la infraestructura, reduciendo las solicitudes de 15 por mes a solo 1 tickets.
- Código más seguro: con el pipeline DevSecOps integrada con SonarQube, el cliente ahora tiene visibilidad de la calidad de su código; se generan informes de calidad y vulnerabilidad para cada ciclo de compilación y, además, se define un umbral de calidad del código para permitir/deshabilitar las etapas de implementación
- Escalado para admitir una mayor demanda: debido al crecimiento continuo de HemisferioD, fue necesario implementar el escalado automático de EC2 y ahora pueden ajustar dinámicamente la cantidad de recursos informáticos para admitir picos de alta demanda. Actualmente HemisferioD puede soportar la demanda de 600.000 usuarios sin problemas, y las incidencias relacionadas se han reducido de 3 incidencias a 0 al mes.
- Entornos aislados: los entornos de producción, desarrollo y pruebas se separan en diferentes cuentas de AWS, lo que permite al cliente separar las cargas de trabajo y tener una facturación separada por cuenta; esta separación ha reducido en un 100% las incidencias por mala configuración del entorno.
Acerca de HemisferioD
HemisferioD es una empresa que desarrolla contenidos de alto impacto y herramientas de capacitación virtual, basados en tecnología y orientados a generar resultados tangibles y medibles para las organizaciones de sus clientes. Desde sus inicios, HemisferioD ha logrado el desarrollo de más de 700 cursos y materiales de capacitación.
Acerca de Clouxter
En Clouxter habilitamos el camino de adopción y consolidamos a la nube en las organizaciones. Nuestro enfoque está en DevOps, Migración, Seguridad y Analítica, brindando las piezas claves para tener una gran estrategia de Nube. Tenemos una amplia experiencia en diferentes industrias como Banca, Medios de Comunicación, Fintech, Sector Público, ISV’s y Startups.
Acompañamos a las organizaciones en este camino y aceleramos su curva de adopción, abarcando la Definición, Planificación, Implementación y Operaciones de sus soluciones, a través de nuestros Servicios Profesionales de Consultoría, Servicios Administrados y Facturación Local.