Estupendo, DevOps Case

Logo Estupendo

El Reto

Inicialmente Estupendo tenía su infraestructura en un entorno de Colocation, desde donde decidieron migrar a la Nube de AWS para rearquitectarsu aplicación y aprovechar los beneficios de la Nube; El interés principal del equipo era poder integrar mejor tecnología Serverless en su arquitectura, además de acelerar el ciclo de desarrollo y simplificar el proceso de despliegue de sus aplicaciones en los diferentes ambientes disponibles (pruebas y producción). Esto plantea retos de cambio tanto tecnológicos como de proceso, con lo cual buscaron el apoyo de Clouxter, para poder diseñar e implementar la tecnología asociada, pero también para adoptar las prácticas que les permitieran lograr sus objetivos. estaban interesados ​​en integrar tecnologías sin servidor en su arquitectura para escalar y evitar la administración. En búsqueda de ser más ágiles en su proceso de desarrollo de software, requieren apoyo para poder lograrlo. En una segunda etapa Estupendo requería dar cumplimiento al marco de ISO 2700, relacionado a la seguridad de la información, con lo cual el reto incrementó en términos de objetivos y complejidad

Solución propuesta:

El caso Estupendo es un ejemplo en el que el crecimiento del negocio requiere ser capaz de moverse rápidamente con los cambios y acelerar el proceso de desarrollo y pruebas de seguridad. Las prácticas de DevOps y DevSecOps son una excelente aproximación para lograr los objetivos trazados por Estupendo.  Con este escenario, diseñamos e implementamos los pipelines de CICD para automatizar la compilación y el despliegue; Luego,, para cumplir con algunos de los requisitos de sus clientes, orientados al análisis permanente de vulnerabilidades,  implementamos otro pipeline que estaba centrado en en las pruebas de seguridad con herramientas de terceros como SonarQube y OWASP Zap.

La arquitectura de nube propuesta para Estupendo, respondía a las necesidades de negocio haciendo uso de componentes serverless que llevaron los procesos de facturación de los clientes de 5 minutos a menos de 5 segundos, sin mencionar que dichos procesos ya no se ejecutaban mediante procesamiento por lotes, sino que se activaban de forma inmediata a través de funciones por cada factura enviada, garantizando escalabilidad gracias a los servicios administrados: Lambda y API Gateway.

Por otro lado, aspectos de arquitectura como la alta disponibilidad y la tolerancia a fallos, se garantizaron haciendo uso de servicios de escalamiento automático, balanceo de cargas y el despliegue de componentes en distintas zonas de disponibilidad de AWS para instancias EC2.

Desde el punto de vista de procesos, con la solución se logró simplificar la forma en que se realizaban los procesos de despliegue de código, haciendo uso de las herramientas para adopción DevOps como CodeCommit, CodeDeploy y CodePipeline, dispuestas por AWS; las prácticas de integración y despliegue continuos fueron adoptadas por Estupendo, dándole a las áreas de desarrollo autonomía, velocidad y aplicación de metodologías de vanguardia para sus procesos internos.

El pipeline incluye las siguientes etapas:

  • Etapa de origen: el código se versiona y se almacena en Code Commit mediante ramas. En esta etapa, extrajimos el código para el análisis.
  • Etapa SAST: Después de extraer el código, procedemos a ejecutar 2 pruebas de seguridad con diferentes herramientas.
  • Comprobación de dependencias de OWASP: esta herramienta intenta detectar vulnerabilidades divulgadas públicamente contenidas en las dependencias de un proyecto.
  • SonarQube: esta herramienta realiza revisiones automáticas con análisis estático de código para detectar errores, malos olores de código (code smells), vulnerabilidades de seguridad y puntos críticos de seguridad.
  • Etapa de aprobación: en esta etapa se requiere una aprobación antes de ejecutar la siguiente etapa que contiene la herramienta de prueba de seguridad de análisis dinámico deht.
  • Etapa DAST: finalmente, en la última etapa, ejecutamos algunos análisis de pruebas de penetración utilizando OWASP ZAP para encontrar automáticamente vulnerabilidades de seguridad en las aplicaciones web.

Todos los informes generados por las 3 herramientas de análisis se centralizaron mediante una función lambda invocada dentro del pipeline, la cual  que envía los informes a Security Hub.

Para lograr estos objetivos, propusimos una solución donde implementaron los siguientes servicios:


Aplicaciones o soluciones de terceros utilizadas:

  • Comprobación de dependencias de OWASP: esta herramienta se incluyó en los pipelines para ejecutar el análisis de composición de software.
  • SonarQube: esta herramienta se integró en los pipelines para automatizar las pruebas de seguridad de aplicaciones estáticas.
  • Zap OWASP: esta herramienta se integró en los pipelines para automatizar las pruebas dinámicas de seguridad de aplicaciones.

Servicios de AWS utilizados como parte de la solución:

  • AWS CodePipeline: las canalizaciones de CI/CD se crearon para incorporar la automatización del ciclo de lanzamiento de software mediante los servicios de AWS, como Code Commit, Code Build y Code Deploy.
  • CloudWatch: cada canalización tiene un grupo de registros y un flujo de registros en CloudWatch para almacenar los registros de ejecución.
  • Formación en la nube: las canalizaciones y todos los recursos se implementaron utilizando plantillas de formación de nubes.
  • S3: los artefactos generados por las canalizaciones se almacenan en s3.
  • SNS: SNS se invoca en la etapa de aprobación de la tubería para notificar a la persona a cargo de la aprobación por correo electrónico.
  • Lambda: se diseñó una función para enviar todos los informes de análisis al centro de seguridad
  • Centro de seguridad: funciona como un centro centralizado para ver todos los resultados de seguridad de todas las herramientas de prueba invocadas por la canalización.
  • Almacén de parámetros: los parámetros de configuración utilizados por la canalización se almacenan aquí, como, por ejemplo, la clave de API de ZAP o las URL de ZAP y SOnarQube.

Static Analysis Diagram

Production diagram

Resultados:

Para Estupendo, el impacto de implementar esta solución orientada a DevOps se podría resumir en los siguientes puntos:

  • Mejora de la agilidad: con las canalizaciones de DevOps, el cliente redujo la carga operativa de implementar manualmente nuevas versiones de código; como resultado, la frecuencia de entrega aumenta de una vez al mes a una vez al día en el entorno de desarrollo y semanalmente al entorno de producción.
  • Pipelines DevSecOps: con la ejecución automática de las pruebas STA, SAST y DAST, Estupendo ahora tiene visibilidad de la calidad de su código, generando informes para cada ciclo de compilación y notificando a las partes interesadas.Además, se define un umbral de calidad del código para garantizar la calidad y detectar a tiempo posibles riesgos de seguridad.
  • Serverless: con la integración de funciones lambda, Estupendo ahora puede concentrarse más en escribir código y no en administrar la infraestructura. Los desarrolladores ahora tienen mucho más tiempo para innovar y optimizar la funcionalidad de sus aplicaciones y la lógica comercial. Desde esta implementación, los tickets de soporte se han reducido de 15 por mes a solo 3.

Acerca de Estupendo

Estupendo ofrece servicios a diferentes empresas para la emisión y recepción de facturas electrónicas a través de una plataforma ágil, segura y confiable. Resuelven las complejidades externas del negocio, a través de su servicio de facturación electrónica, para que sus clientes se enfoquen en resolver las complejidades de sus core, se comprometen a cumplir con los requisitos legales y de los clientes relacionados con la integridad, disponibilidad y confidencialidad de la información de sus clientes y la correspondiente facturació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.

¡Queremos conocer tus retos y necesidades en la Nube de AWS! Compártenos tus datos y nos pondremos en contacto contigo

Learn about our Cloud Solutions!