invest-banking_0

Caso de estudio
BTG Pactual

Estrategia de innovación que permitirá la autogestión de productos y despliegues de manera ágil.

Desafío:

 
El principal objetivo de BTG Pactual es consolidarse como el banco de inversión y capital más influyente en la región, mediante productos y servicios digitales orientados al segmento de personas y empresas de gran capital.
 
Para lograrlo, BTG necesitó contar con un portal transaccional que ofreciera un portafolio competitivo frente a las organizaciones bancarias existentes en el mercado. Dicho portal, debía tener una estrategia de  entrega contínua y minimizando problemas de calidad para cumplir con las normativas del Gobierno y con las expectativas de cara al cliente.

Btg-logo

AWS_pc_BTG Pactual_1

 

Propuesta de solución:

Para implementación de la solución se estableció un proceso de Integración continua y despliegue continuo (CI/CD), orquestado con Jenkins y plantillas escritas en Groovy, utilizando solo una plantilla para cada solución, pero permitiendo su personalización a través de secretos almacenados en Jenkins con la configuración específica para cada entorno, por ejemplo el ID de la cuenta de AWS en el que se deben aplicar los cambios.

Los pipelines que se diseñaron para realizar los correspondientes despliegues, incluyendo las etapas que permiten realizar las tareas requeridas, pueden ser agrupados en: 1) tareas de preparación, 2) tareas de construcción y 3) tareas de despliegue.

Las variables se aplican usando documentos JSON, y se optó por utilizar Cloudformation para la construcción de los IaC ya que el equipo del cliente está familiarizado con este lenguaje.

Estas plantillas están desplegadas en los pipelines de Jenkins, dividas por directorios con el tipo de recursos que implementan y versionan en un repositorio GIT.

De la misma forma, existen pipelines para provisionar recursos de servicios gestionados, por ejemplo, un grupo de usuarios en AWS Cognito, esto se debe a las regulaciones que se deben cumplir (una única sesión activa, confidencialidad de la información del usuario). Fue necesario agregar Lambda que funciona como un desencadenador user pool para cumplir con los requerimientos.

Teniendo en cuenta que estos recursos (Lambdas y Cognito User Pool) se convierten en un único componente que debe ser replicado en los diferentes entornos (dev, qa, prod) Se establecen stacks de infraestructura como código, que también se ejecutan desde Jenkins, haciendo uso de AWS CLI.

Para la generación de métricas y hallazgos se utiliza la herramienta SonarQube para evaluar la calidad del código que es creado por los desarrolladores del equipo, permitiendo analizar e identificar vulnerabilidades existentes, código duplicado y cobertura del mismo a través de pruebas unitarias, entre otras.

Dentro de este proceso de validación, se decidió restringir la actualización de las solicitudes incorporando en los diferentes pipelines las reglas de validación de las puertas de calidad para tener la proactividad de controlar y permitir el bloqueo de nuevos cambios en los entornos.

cta_vertical_caso_estudio

 

Aplicaciones o soluciones de terceros:

Prometheus, Kibana, Gitlab, Jenkins, SonarQube, JUnit Test, Fluid Attacks.

 

prometheus_logo
kibana-logo
gitlab-cover
logo_jenkins_2
SonarQube logo black 128 px

aws_pagina

 

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

 

Como buena práctica, en este proyecto se buscó tener la mayor cantidad de componentes soportados en servicios administrados por AWS para la solución, esto lo podemos encontrar en el uso de S3, Cognito, Cloudfront, DynamoDB, lo cual nos permitió garantizar una alta disponibilidad  y su correcta operación sin necesidad de generar una carga operativa a BTG Pactual.
 
Para el caso de las instancias EC2 que se usan en el cluster de EKS, se estableció un procedimiento de actualización de su Sistema Operativo y se sugirió el uso de AWS Inspector para detectar issues de seguridad.
 
En BTG Pactual para mejorar la seguridad y control de acceso de las cuentas en AWS utiliza AWS Organization, permitiendo así controlar quienes (personas y máquinas) pueden utilizar los recursos que se encuentran desplegados como parte de la solución o que se encuentran disponibles a través de la consola de AWS.
Además de los servicios mencionados, otros servicios que también nos están ayudando con la seguridad de la solución y que se encuentran implementados son Cloudfront y WAF. Este último se usa para proteger el consumo de servicios desplegados en el API Gateway por parte de los usuarios finales.
 
CloudTrail fue habilitado sobre todas las cuentas del ambiente de producción, brindando la posibilidad de revisar toda la actividad realizada dentro de la nube de AWS. Así mismo se implementó el uso de Trusted Advisor para proteger la infraestructura del lado del cliente, permitiendo la detección y acción sobre cualquier problema de seguridad sobre la carga de trabajo.
 
Para mejorar el monitoreo de toda la solución, en el servicio de API Gateway se encuentra habilitado X-Ray y los logs hacía CloudWatch. El servicio EKS se encuentra monitoreado con logs hacia CloudWatch y se envía la información de errores a Elasticsearch.
 
En busca de una automatización del despliegue de la infraestructura para la solución; se trabajó con CloudFormation a través de plantillas almacenadas en repositorios Git, estas son usadas para el despliegue de componentes como Amazon Cognito, AWS Lambda, API Gateway, etc.

 

solución_AWS_2

 

 Inicio

22 de Noviembre del 2020

Finalización

El proyecto aún está vigente

Producción

15 de Enero de 2022

Resultados:

 

Para lograr cumplir con las expectativas del reto, se decidió apalancar gran parte el stack tecnológico de BTG con tecnologías AWS, propendiendo por construir servicios nativos en la nube y usar las últimas tendencias en tecnología y con una estrategia DevOps clara y robusta, buscando generar valor continuo a los clientes internos y externos del banco mediante la entrega de nuevas características de manera oportuna, con calidad y cubriendo aspectos de seguridad claves.
 
La estrategia planteada, ha permitido entregar productos de manera oportuna al cliente, impactando positivamente los tiempos de entrega, que antes de la implementación de los mecanismos de integración y despliegue contínua, se hacían con una frecuencia mensual; ahora con las capacidades DevOps, estos tiempos se han reducido a despliegues semanales e incluso diarios.
 
Como punto adicional de esta estrategia se implementaron mecanismos de verificación en el código de las aplicaciones y en la infraestructura dentro de los pipelines, los cuales permitieron identificar puntos de mejora y posibles vulnerabilidades existentes, generando así hallazgos y métricas en los ambientes de desarrollo y pre-productivos que ayudan en la implementación de mejoras en el ámbito de la calidad y seguridad del producto, antes de que estos cambios sean aplicados en producción.
 
Para una segunda fase de esta verificación se tiene planteado restringir la actualización de las aplicaciones incorporando en los diferentes pipelines, las reglas de validación de quality gates para así tener un control proactivo y permitir el bloqueo de los nuevos cambios en los ambientes.

Caso de estudio
Grupo Familia

Casos_estudio2_DevOps_AWS
Casos de estudio Comfama

Se propuso la incorporación de diferentes técnicas de innovación y prácticas ágiles para el diseño de experiencia e implementación de los activos digitales.

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