Blog de Amazon Web Services (AWS)

Construyendo servicios ágiles e innovadores para la ciudadanía en la industria financiera

Por Branko Straub, Arquitecto de Soluciones en AWS para Sector Público Chile

 

Amazon Web Services trabaja con más de 6.500 agencias de gobierno a nivel mundial, entre ellas instituciones encargadas de mantener y proveer sistemas críticos para la ciudanía.

BancoEstado de Chile, institución creada en 1953, es el único banco comercial estatal del país y que presta servicios financieros a particulares y empresas. Cuenta con más de 10.000 empleados y más de 12 millones de clientes a lo largo de Chile.

BancoEstado, en conjunto con Amazon Web Services (AWS) llevan más de un año trabajando en conjunto para brindar servicios innovadores a toda la ciudadanía chilena, y como parte de la transformación digital que el banco está afrontando, uno de sus principales objetivos que es brindar nuevos servicios y plataformas que agilicen y simplifiquen procesos complejos y/o presenciales.  Esfuerzos que se han visto acelerados debido a la pandemia del COVID-19.

Con esta premisa, BancoEstado desarrolló dos iniciativas utilizando servicios AWS, que les permitió en tiempo récord, comenzar a brindar dos plataformas para la consulta y asignación de bonos de carácter social destinados a personas en vulnerabilidad, afectadas por la pandemia.

Usando como ejemplos prácticos los casos de ‘NoLoCobraste.cl’ y ‘Consulta mi 10%’, ambas soluciones implementadas en AWS, esta guía busca dar lineamientos generales de cómo implementar plataformas críticas altamente escalable y eficiente a nivel de costos y volumen, siendo lo suficientemente flexibles para que pueda ser adaptable de acuerdo con la necesidad de cada institución.

 

Diseñando arquitecturas escalables en tiempo récord

Uno de los desafíos actuales en la industria financiera es responder de forma ágil y oportuna a las crecientes necesidades de los clientes y al mismo tiempo mantener el ritmo de innovación brindando nuevos servicios y plataformas con una única convicción de dar el mejor servicio a los clientes.

Con la ayuda de los servicios de Amazon Web Services BancoEstado pudo construir en menos de 3 semanas dos servicios que resultaron ser de gran ayuda para la ciudadanía en general y de manera particular para aquellas personas directamente afectadas económicamente por la pandemia COVID-19.

Ambos servicios, en las 8 semanas que llevan activos han recibidos más de 3 millones de consultas con éxito, escalando eficientemente en base a la demanda. Estos servicios impactaron de manera positiva en las personas, entregando información oportuna sin tener que salir de sus hogares.

Para construir estas soluciones se necesitaron de varios componentes e integraciones, entre ellas: las fuentes de datos (disponibles en el Datalake Corporativo), aplicaciones webs, integraciones entre las aplicaciones y el Datalake, APIs de comunicación entre las aplicaciones webs y el backend en AWS Lambda, una base de datos no relacional (Amazon DynamoDB) como fuente de consulta con escalabilidad que puede soportar millones de solicitudes, servicios de CDN / Cache (Amazon Cloudfront) y la conectividad privada entre las distintas cuentas y servicios de AWS.

En este blog, destacaremos algunos de los factores, recomendaciones y mejores prácticas para tener en cuenta para construir este tipo de soluciones.

 

Desarrollando la Aplicación Web

La primera línea de trabajo fue desarrollar la aplicación web que consumiera la información proveniente del Datalake ya existente en AWS.  Se necesitaba que la aplicación fuera escalable sin importar la carga y que permitiera un tiempo de desarrollo ágil. Para ello, BancoEstado decidió utilizar las tecnologías de desarrollo y hosting serverless de AWS.
El aplicativo, construido desde cero, cuenta con:

  • AWS Lambda: es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores, se crearon una serie de funciones actuando de backend.
  • Amazon S3: es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en el sector. Se utilizó como hospedaje de la página web construida.
  • Amazon Cloudfront: es un servicio rápido de red de entrega de contenido (CDN) que distribuye a clientes datos, videos, aplicaciones y API globalmente de forma segura, con baja latencia, altas velocidades de transferencia y dentro de un entorno fácil para desarrolladores. Se utilizó para servir el contenido estático de la página web.
  • Amazon Api Gateway: es un servicio completamente administrado que facilita a los desarrolladores la creación, la publicación, el mantenimiento, el monitoreo y la protección de API a cualquier escala. Se utilizo para comunicar el sitio web en S3 con las funciones Lambdas.
  • AWS WAF: es un firewall para aplicaciones web que ayuda a proteger sus aplicaciones web o API contra ataques web comunes que pueden afectar la disponibilidad, poner en riesgo la seguridad o consumir demasiados recursos.

 

 

No Lo Cobraste / Consulta Mi 10% – Captura Sitios Web.

 

Esta selección de servicios de AWS permitió, en menos de tres semanas, escribir el código aplicativo para soportar la consulta y validación de los bonos. Que luego sería desplegado a S3, Lambda y Api Gateway a través de un proceso de liberación automático de software utilizando la suite de servicios de DevOps de AWS.

 

“AWS nos ha brindado la oportunidad de poder optar a una amplia gama de servicios y soluciones para enfrentar las distintas iniciativas que hemos ido desarrollando dentro del Banco, algunos puntos que podemos mencionar: hemos ganado agilidad, enfoque en el desarrollo, seguridad, flexibilidad, minimizar costos y sinergia en el equipo. El poder sacar un componente o agregar otro dentro de nuestros desarrollos sin romper lo que está corriendo, nos ayuda a tener un proceso más ágil y seguro para nuestros desarrollos, incluso en integraciones con sistemas internos del banco y otros sistemas externos sin tener que preocuparse de infraestructura y otros temas.”  – Equipo de desarrollo Proyectos Estratégicos.

 

 

No Lo Cobraste / Mi 10% @ AWS – Sitio Web.

 

Conectando las aplicaciones al Datalake en AWS

Durante los últimos dos años, en conjunto con AWS el BancoEstado estuvo trabajando arduamente en construir un Datalake Serverless multipropósito que sirva como fuente única de verdad y repositorio de datos para las distintas áreas de negocio y requerimientos tecnológicos.

El Datalake tiene distintas fuentes de orígenes de datos, entre ellas, información de operaciones con tarjetas, indicadores de negocio, transacciones, compras, por destacar algunas. Dichos datos provienen de distintos orígenes como el ‘core bancario’, aplicaciones de negocio, bases de datos, logs de operaciones, etc.

Un amplio catálogo de servicios de AWS permitió construir el Datalake, que por día recibe más de 100 fuentes de datos en archivos y cuenta con 200 TB de datos históricos de varios años. El Datalake presta servicios a diversas áreas del banco como Fraudes, Inteligencia de Negocio, Diseño Comercial y Operaciones. Algunos de los servicios de AWS utilizados fueron:

  • Amazon DataSync: es un servicio de transferencia de datos en línea que simplifica, automatiza y acelera la transferencia de datos entre sistemas de almacenamiento en las instalaciones y servicios de almacenamiento de AWS. Se utilizó para la ingesta de archivos hacia el Datalake
  • Amazon S3: es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en el sector. Se utilizó como repositorio central del Datalake, archivos en CSV y Parquet.
  • AWS Glue: es un servicio de integración de datos sin servidores que facilita descubrir, preparar y combinar datos para análisis, aprendizaje automático y desarrollo de aplicaciones.
  • AWS Lambda: es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores, junto con AWS Step Functions es la base del procesamiento del Datalake implementando diferentes funciones para transformar y orquestar la ingesta de archivos.
  • Amazon Athena: es un servicio de consultas interactivo que facilita el análisis de datos en Amazon S3 con SQL estándar. Athena no tiene servidor, de manera que no es necesario administrar infraestructura y solo paga por las consultas que ejecuta.
  • Amazon Sagemaker: permitió de forma sencilla construir algoritmos de Machine Learning en R y Python para detectar posibles puntos de compromisos y así reducir el fraude.

 

Amazon Web Services nos dio la paleta de servicios para lograr separar la data y el computo que permitió implementar un servicio costo-efectivo para almacenar y operar gran cantidad de datos de manera virtualmente ilimitada.  Esto nos permite mejorar en rendimiento y costos con una solución serverless que es fácil de manejar, con costos por requerimiento de procesamiento y que nos da la agilidad necesaria para implementar diferentes patrones rápidamente en las diferentes áreas de procesamiento del Datalake.” – Jefe de Arquitectura del Centro de Datos.

 

El Datalake brinda un servicio fundamental en el caso de ‘No Lo Cobraste’ y ‘Mi 10%’ ya que funciona como punto único de consulta para los datos de aportes y bonos a ser pagados por el banco.

 

 

Datalake BancoEstado @ AWS – Arquitectura Datalake.

 

Integraciones y Conectividad

La seguridad es prioridad número uno tanto para BancoEstado como para AWS por ello, la encriptación en tránsito y reposo de los datos se diseñó teniendo en cuenta mejores prácticas.

Una vez construida la aplicación web y ya contando con la fuente de los datos en el Datalake, se tenían que integrar ambas soluciones que se desplegaron en distintas cuentas de AWS.

Para almacenar la información se utilizó DynamoDB por ser una base de datos escalable a millones de operaciones manteniendo los tiempos de respuesta en el orden de los milisegundos.

Para integrar la capa aplicativa con la de datos se realizó una integración a través de un Api Gateway, utilizando AWS PrivateLink. Una función Lambda consultaría la base de datos DynamoDB y retornando así el resultado al usuario en la página web.

 

No Lo Cobraste / Mi 10% @ AWS – Integraciones.

 

Despliegue Continuo

Con el objetivo de agilizar el proceso de desarrollo y despliegue de la aplicación se recurrió a la suite de servicios de DevOps de AWS:

  • AWS CodeCommit: servicio completamente administrado de control de código fuente que aloja repositorios basados en Git seguros.
  • AWS CodeBuild: servicio de integración continua completamente administrado que compila código fuente, ejecuta pruebas y produce paquetes de software listos para su implementación.
  • AWS CodePipeline: servicio de entrega continua completamente administrado que permite automatizar canalizaciones de lanzamiento para lograr actualizaciones de infraestructura y aplicaciones rápidas y fiables.

Utilizando este conjunto de servicios, permitieron automatizar el despliegue de código hacia las funciones Lambda y los buckets de S3. De esta manera, se pudo iterar de forma sencilla el desarrollo de la aplicación, teniendo así varios despliegues diarios sin complejidad mantenido el control de calidad, tests de integración, performance y control de cambios.

 

 

No Lo Cobraste / Mi 10% @ AWS – Despliegue Continuo.

 

Monitoreo y Operaciones

El monitoreo es una componente fundamental en cualquier solución, se construyeron diversos paneles de monitoreo de Amazon Cloudwatch, en conjunto con una serie de reglas, alertas, notificaciones y alarmas que permiten mantener la plataforma funcional y operativa 24/7.

Los paneles representan métricas como: cantidad de solicitudes, tasa de errores, tiempo de respuesta y otros indicadores que permiten tomar acciones correctivas de forma inmediata si algún error o problema se presentara.

 

No Lo Cobraste @ AWS – Panel de monitoreo.

 

Mi 10% @ AWS – Panel de monitoreo.

 

Conclusiones

Utilizando una arquitectura completamente serverless, hasta el día de la fecha, se realizaron con éxito más de 3 millones de consultas en el sitio web de No Lo Cobraste y Mi 10%. El éxito de estas arquitecturas está basado en su agilidad, escalabilidad, tiempo de desarrollo y sus costos flexibles, habiendo gastado no más de 200 USD de AWS en la plataforma destinada a las páginas webs y sus componentes: Lambdas, APIs. S3 como hosting, WAF, servicios de monitoreo y DevOps. Esto permite al BancoEstado y otras instituciones otorgar servicios a bajo costos y en tiempos que antes no eran posibles.

 

“Nuestro objetivo como equipo es seguir evolucionando siempre pensando en dar una mejor experiencia a nuestros clientes y la satisfacción del servicio en todos los productos que les entregamos. Gracias a los servicios de AWS hemos podido construir soluciones sin servidor mediante el cual nos ha permitido dedicar nuestros esfuerzos en cómo usar la tecnología para beneficio de nuestros clientes si mayores preocupaciones” – Jefe de Área de Desarrollo Proyectos Estratégicos.

 

Junto a BancoEstado seguimos trabajando para brindar servicios a la ciudadanía, adoptando arquitecturas serverless, reduciendo así la complejidad, costos operativos y aumentando la performance.

 

 

No Lo Cobraste / Mi 10% @ AWS – Arquitectura final.

 

Si quieres empezar a construir arquitecturas serverless escalables y costo eficientes, recomiendo que revises el siguiente documento.

 

 


Sobre el Autor

Branko Straub es Arquitecto de Soluciones en Amazon Web Services para Sector Público en Chile. Branko ha ayudado a múltiples instituciones de Sector Público y Privado en la adopción tecnológica de nube en los últimos 5 años, ha ejecutado de manera exitosa proyectos con impacto social en la ciudadanía alrededor de América Latina.

 

 

 

Conozca los distintos tipos de bases de datos disponibles, las diferencias entre los servicios estándar administrados de base de datos y las bases de datos nativas en la nube con el volante de inercia de datos.