h-omnicanalidad-grupo-familia_v3-(2)

Caso de estudio
Grupo Familia

Pequeñin, un gran cambio en nuestra tecnología y en el cómo nos relacionamos con nuestros clientes.

Desafío:

 

Grupo Familia comienza en el año de 2001 su estrategia de relacionamiento con clientes cuando el internet daba sus primeros pasos en Colombia y en ese momento el reto era poder crear relaciones con clientes a través de contenido de valor. En el momento Grupo Familia trabajaba bajo una arquitectura on-premise que no respondía a las necesidades de ese momento y a la proyección que se tenían planeada.
 
Un requerimiento de suma importancia en este proyecto es que la solución debe tener la capacidad de poder entregar actualizaciones en producción de una manera más ágil, fiable y recurrente, adicionalmente tener la capacidad de ser resiliente ante un error en los despliegues y que nos permita tener la capacidad de recuperarnos prontamente con la mínima intervención manual.

grupo-familia

AWS_pc_familia

 

Propuesta de solución:

 

El proceso de mejora se apalancó en una estrategia de CI/CD enfocada en automatizar el despliegue del flujo de valor de forma ágil y sin intervención manual, tanto para los despliegues como para automatizar la recuperación del sistema.

Se enfocó en el diseño de una arquitectura tecnológica respaldada en una infraestructura totalmente basada en la nube que permitiera ajustarse continuamente y atender sin inconvenientes la creciente demanda en funcionalidades y usuarios.

La arquitectura es desacoplada, basada en microservicios y microfrontends logrando el mayor aprovechamiento de la nube desde sus diferentes servicios como IaaS, PaaS y SaaS. Se logró alinear procesos, datos, herramientas e infraestructura, además de estandarizar integraciones con terceros.

Como pilar fundamental de la solución se implementó un modelo DevOps apalancado en CI/CD con herramientas como Jenkins, que permite desplegar las diferentes iniciativas de negocio en tiempos óptimos, infraestructura como código con Terraform y servicios como AWS EKS con contenedores orientados a microservicios elásticos y escalables según las necesidades del tráfico, favoreciendo así la continuidad del negocio.

Para las soluciones de back-end, que se crean con Java SpringBoot y se almacenan en contenedores con Docker, los pipelines incluyen 7 etapas (Inicializar, Obtener código, Crear código, Pruebas unitarias, Análisis de código, Crear/Publicar imagen e Implementar) y un proceso final para la detección de fallas en el proceso de implementación.

En caso de algún error en el proceso de despliegue se genera una notificación informando el error para que pueda ser validado y corregido.

Para las pruebas de back-end se realizan dos tipos: con el equipo de QA se realizan pruebas de caja negra automatizadas con Postman, con múltiples escenarios probados y con la unidad del equipo de Back-end se entregan pruebas con una cobertura mínima del 80%, evaluadas por la herramienta SonarQube .

El IaC se implementa a través de Terraform utilizando una estrategia de módulos para segmentar la infraestructura de cada uno de los sitios del cliente, el código se almacena dentro de un repositorio en GitLab.

Al monitorear la solución con servicios como AWS CloudWatch y AWS OpenSearch, se pueden tomar acciones preventivas basadas en métricas de valor que ayudan a los recursos a ser costo eficientes.

cta_vertical_caso_estudio

 

Aplicaciones o soluciones de terceros:

 

Dentro de las herramientas de terceros utilizamos Microsoft VSCode como IDE. Debido al hecho de que el código de AWS Lambda Functions está en NodeJs y ReactJS, VS Code es la herramienta adecuada para el desarrollo en lenguajes basados en javascript.
 
Para la configuración e implementación del servicio, utilizamos Serverless Framework. Para el repositorio de código, la gestión de la configuración y las integraciones continuas, utilizamos Jenkins.
Cómo se utilizó AWS como parte de la solución

 

logo-jenkins
Node.js_logo
Serverless
VSCode
ReactJS
AWS_Lambda_logo.svg

aws_pagina

 

Cómo se utilizó AWS como parte de la solución:

Capa de presentación

 

  • CloudFront: Se encarga de entregar contenido web a los usuarios finales bajo las premisas de baja latencia y altas velocidades de transmisión.
  • WAF: Es un firewall de aplicaciones web que permite monitorizar las solicitudes HTTP y HTTPS que se reenvían a CloudFront y al API Gateway.
  • S3: Servicio de almacenamiento de objetos que garantiza escalabilidad, alta disponibilidad, seguridad y desempeño. allí almacenamos cada uno de los microfrontends que componen el sitio de marca.Capa de negocio.

Capa de negocio

 

  • API Gateway: Servicio que permite la publicación de servicios desplegados en infraestructura AWS, los cuales están contenidos en un grupo de seguridad privado. mediante VPC LINK con el balanceador de EKS exponemos todos nuestros endpoints del backend por allí aprovechando la integración con cognito para autorizar.
  • Elastic Load Balancing: Con el objetivo de garantizar la alta disponibilidad este servicio distribuye el tráfico de red o de aplicaciones expuesto como ingress por el EKS.
  • Lambda: Servicio que permite ejecutar código de funciones lo usamos para las integraciones nativas con servicios como Cognito y SES.
  • EKS: Servicio autoadministrado de orquestación, de alta escalabilidad y rendimiento para contenedores que permite ejecutar y ajustar la escala de aplicaciones en contenedores en AWS. Allí desplegamos todo el core de negocio de la solución, divididos por dominios de negocio.
  • Elasticache: Servicio de AWS implementado para el manejo de la cache en la solución

Capa de datos

 

  • Cognito: Creamos user pool por cada portal de marca y migramos allí todos las credenciales de los usuarios mejorando la seguridad y custodia de estas.
  • RDS MYSQL:
    Por cada portal de marca se creó base de datos independizandolas.
    Red
  • VPN: Cómo parte de las políticas de seguridad para acceso a todos los servicios de AWS.

solución_AWS_2

 

 Inicio

08/07/2019

Finalización

13/01/2022

Fecha en que el proyecto entró en producción

13/01/2022

Resultados:


Se logró realizar entregas de contenido en menos de una hora reduciendo en un 80% aproximadamente el tiempo.

Despliegues de componentes en AWS EKS en máximo 10 minutos por microservicio, mejorando el tiempo de entrega en 1 día aproximadamente comparado con la anterior solución legacy.

Otra problemática solucionada fue la capacidad que obtuvimos de la recuperación del sistema por fallos en los despliegues, implementando infraestructura como código, logrando así que en 1 hora tengamos nuevamente todo el sitio al aire y no varias horas o días como sucedía con la arquitectura anterior.

Caso de estudio
Comfama

Casos_estudio3_DevOps_AWS
Casos de estudio Comfama

Una base tecnológica escalable que garantice canales virtuales cercanos para facilitar su acceso y conectarlos con oportunidades que respondan a las necesidades de los usuarios. 

Conoce más

No te preocupes más por el almacenamiento, los servidores y la infraestructura tecnológica. Nosotros lo hacemos por ti.

Ponte en contacto con nuestros consultores

Contáctanos →

cta_juan_sebastian_botero