Blog de Amazon Web Services (AWS)
Modernización del portal bancario de una institución financiera en la nube de AWS
Por Luis Gerardo Baeza, Mauro Aprea y Gustavo De La Cruz.
Debido al impacto de la pandemia de COVID-19 en todo el mundo, las instituciones financieras se enfrentaron al reto de contar con una plataforma de portal bancario escalable, segura y que permitiera responder al acceso masivo de todos los clientes.
Una de las instituciones financieras más importantes en Chile decidió aprovechar Amazon Web Services (AWS) como su plataforma de nube para abordar los desafíos de negocio más críticos, tales como el portal bancario. Además, el equipo de AWS Professional Services (ProServe) asistió en este viaje de transformación digital en la nube, complementando las capacidades del equipo interno y los socios del AWS Partner Network (APN) que trabajan con ellos.
Actualmente, la industria financiera se enfoca en entregar experiencias mejoradas a los usuarios. Esto implica para las empresas entregar funcionalidades más rápido, cumpliendo con estrictos requerimientos de seguridad y control al mismo tiempo. Además, la interacción con recursos en infraestructura local permite aprovechar la capacidad tecnológica que las empresas han construido por mucho tiempo. Descubra a continuación cómo una institución financiera logró cumplir con sus objetivos de gobernanza, seguridad, escalabilidad, entrega continua y despliegue continuo (CI/CD), así como interacción con su infraestructura local utilizando la nube de AWS.
Gobernanza simplificada
Para lograr los objetivos de nivel de disponibilidad, escalabilidad, y agilidad, se implementó un entorno de varias cuentas, seguro y basándose en prácticas recomendadas utilizando AWS Control Tower. Esto le permite a la organización aprovisionar cuentas de AWS nuevas con tan solo unos clics, y tener la confianza de que las cuentas cumplen con todas las políticas de la organización. Bajo esta arquitectura de gobierno, no solo se habilitó el despliegue del nuevo portal bancario, sino que también sentó las bases para las cargas de trabajo futuras.
El Landing Zone (Control Tower), además cuenta con personalizaciones y automatizaciones diseñadas e implementadas en conjunto con el equipo de AWS, como una solución de networking centralizado y gestión distribuida, la cual consiste de:
- Separación de los ambientes de cada carga de trabajo en una cuenta de AWS.
- Uso de AWS Transit Gateway para interconectar decenas de Virtual Private Cloud (VPC)en las diferentes cuentas.
- En el caso de los ambientes no productivos, se aprovechó AWS Resource Access Managerpara compartir las subredes desde una VPC central para optimizar costos en las comunicaciones y mantener el gobierno de las comunicaciones centralizado en una única cuenta por ambiente no productivo (QA y Desarrollo).
- Centralización del tráfico de red de salida a Internet desde una única VPC en la cual se gestiona la seguridad.
Con este conjunto de servicios y soluciones, la organización mantiene la gobernabilidad y seguridad centralizadas al mismo tiempo que delega las actividades específicas de cada carga de trabajo al equipo pertinente, brindando autonomía y flexibilidad, así como también agilidad en el tiempo de despliegue aprovechando las automatizaciones.
Figura 1: Gobernanza simplificada en AWS
Arquitectura de aplicación escalable
Al modernizar las aplicaciones en la nube de AWS, las empresas pueden aprovechar la infraestructura más confiable de la industria, con la posibilidad de elegir una multitud de opciones del conjunto de servicios más completo. La organización decidió realizar una refactorización de su portal bancario para alcanzar nuevos niveles de eficiencia operativa, mayor escalabilidad y rendimiento mejorado:
- Arquitectura sin servidor para la interfaz web, distribuyendo los contenidos con baja latencia y altas velocidades de transferencia usando Amazon Cloudfronty hospedando el contenido estático de la aplicación Single-Page Application (SPA) en el servicio de almacenamiento de objetos Amazon Simple Storage Service (S3), eliminando la necesidad de utilizar servidores en esta capa.
- Adopción de un enfoque de microservicios para permitir capacidad de cómputo particular según sea requerido para soportar la carga. Este enfoque permite aprovechar de mejor forma la elasticidad que ofrece la nube.
- Exposición de la funcionalidad de negocio a través de Amazon API Gatewayque entrega las solicitudes a los microservicios, habilitando la gestión de API para establecer modelos de Calidad en el Servicio (QoS) y controlando la autenticación y autorización a través de una lógica personalizada implementada en AWS Lambda y el servicio de base de datos NoSQL Amazon DynamoDB.
- Orquestación de contenedores utilizando Amazon Elastic Kubernetes Service (EKS)para automatizar tareas clave como los parches, el aprovisionamiento de nodos y las actualizaciones. Amazon EKS gestiona dinámicamente la creación o terminación de nodos y contenedores en base a la demanda y en conjunto con AWS Network Load Balancer (NLB), Amazon EKS permite distribuir la carga proveniente de API Gateway.
- Uso de servicios administrados para la gestión de bases de datos relaciones y de caché, como Amazon Aurora (RDS)para PostgreSQL y Amazon ElastiCache para Redis, que liberan de las tareas administrativas, como el aprovisionamiento de hardware, los parches de software, la configuración, los ajustes, la recuperación de fallos y los backups. Ambos servicios se configuraron en un esquema de multi zona de disponibilidad para minimizar el tiempo de indisponibilidad.
- Integración con el núcleo del sistema bancario (core banking system) que se ejecuta en el Mainframe en el entorno local de la organización a través de un enlace Virtual Private Network (VPN) La funcionalidad se expone a través de un Bus de Servicios, habilitando un modelo híbrido de aplicaciones nativas de nube y al mismo tiempo de arquitectura orientada a servicios (SOA).
Figura 2: Arquitectura de aplicación escalable en AWS
Enfoque DevOps
La adopción de la cultura y prácticas de Development Operations (DevOps) permite a la organización crear y entregar productos de software de forma más rápida y fiable:
- El aprovisionamiento y la administración de la infraestructura: Los diversos ambientes de infraestructura (desarrollo, aseguramiento de calidad, pre-producción y producción) son administrados a través de infraestructura como código utilizando archivos de configuración de Terraform.
- Implementación del código de la aplicación: El ciclo de vida de los microservicios incluyendo la promoción en los distintos ambientes se gestiona a través de una canalización construida en Jenkins. Una vez construidas las imágenes de Docker, son almacenadas en Amazon Elastic Container Registry (ECR).
- Administración de los secretos como credenciales de bases de datos, claves de API utilizando AWS Secrets Manager.
- Monitoreo del desempeño de su aplicación e infraestructura utilizando métricas y logs de Amazon CloudWatch. El cluster de Amazon EKS utiliza Container Insights para enviar los registros de los microservicios a grupos de logs de CloudWatch, así como también métricas como el uso de CPU y memoria a nivel de los pods (contenedores).
- La organización de los equipos en células de desarrollo con propiedad y responsabilidad de partes específicas del portal
Figura 3: Integración continua / despliegue continuo en AWS
Procesos bancarios por lotes
Debido a que el core bancario se ejecuta en un entorno local, la organización cuenta con procesos que son ejecutados en ese mismo entorno, por lo cual aprovechó el servicio de AWS Database Migration Service (DMS), un servicio de migración de datos de forma rápida y segura, para cargar los resultados de distintos procesos bancarios a la nube. La comunicación entre el entorno local y la nube de AWS se realizó de manera segura a través de un enlace Virtual Private Network (VPN), que además incluyó el uso de AWS Global Accelerator, que envía el tráfico desde la red local a la ubicación de borde de AWS más cercana (en Chile) utilizando la red global de AWS para proporcionar el mejor rendimiento de la aplicación. Como resultado de esta configuración, la organización logró realizar cargas de más de 2 millones de registros en tan solo 3 minutos.
Figura 4: Migración de millones de registros a la nube con AWS DMS
Conclusiones
Luego de 5 meses de trabajo, la organización pudo construir su entorno multi-cuenta y modernizar su portal bancario para soportar eventos de negocio críticos en 2021 donde los cientos de miles de clientes de la organización pudieron acceder a los servicios financieros disponibles con cero tiempos de indisponibilidad.
El frontend del portal bancario pudo escalar para recibir hasta 71 mil requisitos por minuto, siendo entregados a través del servicio de Amazon CloudFront. Las APIs publicadas y aseguradas por API Gateway pudieron procesar hasta 12 mil requisitos por minuto y con Amazon DMS fue posible migrar más de 2 millones de registros de manera segura en tan solo 3 minutos.
Figura 5: Arquitectura de Portal bancario en la nube AWS
Entre los factores clave del éxito de este proyecto, destacan el compromiso de todos los equipos de la organización, incluyendo arquitectura, seguridad, desarrollo y continuidad operacional, el acompañamiento del equipo de AWS Professional Services (ProServe), el soporte operativo durante los eventos de negocio críticos por parte de AWS Enterprise Support.
Autores
Luis Gerardo Baeza es arquitecto de soluciones en Amazon Web Services (AWS) y tiene 10 años de experiencia en transformación de procesos, arquitectura empresarial, adopción de metodologías ágiles e integración de tecnología cloud. Luis ha ayudado a empresas del sector salud, financiero y educativo en México y Chile.
Mauro Aprea es cloud infrastructure architect en Amazon Web Services (AWS) Professional Services y posee amplia experiencia en arquitecturas de solución, migraciones cloud, diseño e implementación de soluciones robustas, resilientes y escalables, alineadas al Well Architected Framework. Mauro ha trabajado con empresas de diversos rubros, desde retail o financieras, hasta salud, educación y transporte.
Gustavo De La Cruz es cloud infrastructure architect en Amazon Web Services (AWS) Professional Services y es un apasionado en el tema de arquitectura empresarial, software e infraestructura, con las cuales ha tenido experiencia en sector público y de banca de implementar soluciones que requieren alto nivel de desempeño y fiabilidad. Especializado en temas de contenedores, microservicios, DevOps, desarrollo de aplicaciones, buenas prácticas de TI.
Referencias
- Desarrollo de aplicaciones modernas en AWS: Whitepaper
- Microservicios en AWS: Whitepaper
- Migración de aplicaciones ejecutando bases de datos relaciones en AWS: Whitepaper
- Estrategias de almacenamiento en caché de bases de datos con Redis: Whitepaper
- Introduction to DevOps on AWS: Whitepaper
- Configuración de una canalización de Integración continua y despliegue continuo (CI/CD) mediante la integración de Jenkins con AWS CodeBuild y AWS CodeDeploy: Blogpost
- Enrolar cuentas existentes en el AWS Control Tower: Blogpost