Blog de Amazon Web Services (AWS)
TecBrain: Minimizando los Costes de infraestructura con servicios Serverless en AWS
Introducción
TecBrain es una compañía de servicios de tecnología con soluciones de monitorización y análisis del comportamiento de los clientes en los espacios comerciales. La compañía, con más de 20 años de experiencia en ámbito TI, cuenta, al día de hoy, con miles de sensores instalados en los espacios de interés, qué envían datos en tiempo real a los sistemas de monitoreo desplegados en su infraestructura informática, basada en la nube de AWS.
En este blog post Joan Carles R. Doval, General Manager de TecBrain, nos cuenta cómo han conseguido suprimir completamente la infraestructura TI anteriormente empleada, basada en servidores de base de datos Oracle, servidores de aplicaciones Apache, y servidores dedicados al procesamiento en tiempo real de datos ingestados desde los sensores, por una infraestructura moderna, basada en la nube de AWS, que cuenta con servicios gestionados y infraestructura serverless.
El cambio de paradigma de arquitectura no solamente ha permitido a TecBrain cubrir 16 países con altos estándares de excelencia operacional, sino también alcanzar ahorros de hasta un 35% con respecto al coste mensual de la infraestructura anterior.
Sobre su solución en AWS
El reto: el crecimiento
Uno de los factores más críticos para TecBrain es la capacidad de mantener continuidad de negocio a la hora de gestionar un crecimiento constante de peticiones en tiempo real por parte de su infraestructura TI. <<La infraestructura originalmente empleada por la compañía se basaba en el tradicional patrón cliente/servidor y en tecnologías Microsoft y Oracle. El avance en el despliegue de sensores por toda Europa y América Latina hizo que el número de servidores necesarios se fuera incrementando sin control, y esto determinó una caída de rendimiento, debido al gran volumen de datos que teníamos que procesar en tiempo real.>> comenta Joan Carles.
<<No teníamos ninguna posibilidad de adaptar la infraestructura de forma automática a las necesidades de capacidad de cada momento.>>
<<Otro punto importante que nos preocupaba era la seguridad del sitio web al que accedían los más de 1,000 clientes, y la flexibilidad de la infraestructura para adaptarse al número de peticiones que teníamos en cada momento, número que puede llegar a más de 200,000 peticiones por segundo. El número de peticiones cambiaba durante el día a medida que los distintos continentes iban viendo la luz.>>
Solución: servicios gestionados y serverless
La estrategia empleada por TecBrain para afrontar el reto de contener y orquestar una infraestructura cada día más exigente y voluminosa fue la de adoptar un nuevo paradigma de arquitectura basado no solamente en la nube, sino además en servicios gestionados y serverless.
En palabras de Joan Carles: <<Orquestar la capacidad necesaria para la recepción de la información de los sensores fue una tarea complicada. Se hicieron diversas pruebas y finalmente la decisión fue desarrollar una arquitectura serverless. Se utilizó Amazon API Gateway como punto de entrada de los dispositivos a la aplicación, y AWS Lambda para crear diferentes funciones que gestionaran cada tipo de sensor. Estas funciones se encargan en primer lugar de la seguridad y autenticación de los sensores, dado que no todos los sensores que se están utilizando permiten la gestión de las conexiones con certificados, ni soportan la conectividad a través de AWS IoT Core.
Por otra parte, estas funciones se encargan de realizar las operaciones necesarias para la ingesta, primero de una copia de la información nativa que se guarda en Amazon DynamoDB, que nos permite reconstruir cualquier momento en el tiempo, y, segundo, de 500M de registros en la base de datos principal, que alimenta a la aplicación web en tiempo real por medio de Amazon OpenSearch.
Toda la capacidad que estamos utilizando y que utilizaremos en el futuro es manejada de forma automática por AWS y nosotros nos podemos concentrar en el diseño de la arquitectura y en el desarrollo del código. El objetivo lo damos por conseguido cuando varios miles de usuarios se conectan al sistema y obtienen su información en tiempo real de forma simultánea.
Para la gestión y el acceso a los datos de las distintas bases de datos Amazon Aurora, Amazon OpenSearch y Amazon DynamoDB, hemos utilizado AWS AppSync para el diseño de la API. Con este desarrollo manejamos todo el acceso desde nuestra aplicación con consultas en GraphQL, y al mismo tiempo conseguimos ofrecer una API externa para desarrollos e integraciones de terceros como la descarga de información, aplicaciones móviles, integraciones con sistemas ERP y CRM, etc. Todos nuestros clientes y partners se integran con tbRetail a través del API GraphQL.>>
Diagrama de la Arquitectura
A continuación, un diagrama de arquitectura de la solución empleada por TecBrain:
En la arquitectura, para el proceso de ingesta de datos de sensores, merece una mención especial el uso de AWS IoT Core. <<Si bien aún no hemos podido aprovechar todas las capacidades que AWS ofrece, debido a que todavía hay muchos sensores que no soportan las credenciales requeridas por esta tecnología, sí hemos conseguido que AWS IoT Core nos ayude a gestionar los eventos en tiempo real de todos estos sensores.
A través de configuraciones en AWS IoT Events y sin ninguna línea de código AWS IoT Events gestiona los eventos en tiempo real relacionados con el aforo en los espacios comerciales, lanzando de forma automática emails y SMS cuando los criterios del cliente final se cumplen. Esto nos ha ahorrado muchos dolores de cabeza debido a la dificultad de programación que conlleva.>> comenta Joan Carles.
La Aplicación Web
<<El siguiente reto fue decidir la tecnología y la plataforma en la que desarrollaríamos la aplicación web que es tan importante como la recepción, clasificación y actualización de la información. Sin ella los clientes, partners etc. no podrían hacer nada. La decisión que tomamos fue utilizar como librería de desarrollo VUE.js, junto con las posibilidades que nos ofrece el abanico de servicios de CI/CD de AWS, como AWS CodePipeline y AWS CodeBuild. De esta forma, el equipo de trabajo tiene un entorno de desarrollo, un entorno de prueba y un entorno de producción que se mantienen desde la infraestructura como código de AWS CloudFormation y que están sincronizados en cada momento con las versiones del software de su interés. Nunca la operación diaria interfiere en lo que nuestros clientes finales están ejecutando.>>
La Región y Seguridad
Finalmente, Joan Carles habla de las consideraciones y de la toma de decisiones sobre la elección de la región y la gestión de la seguridad de la infraestructura.
<<Dado el entorno en el que nos encontramos, la seguridad de la infraestructura también fue uno de los aspectos claves en nuestra decisión de trabajar con AWS. Toda la infraestructura está aislada con AWS VPC. Las redes son privadas y no permiten el acceso externo a ningún recurso. La infraestructura está ubicada en Dublín (Irlanda), Frankfurt (Alemania) y Virginia (EEUU).>>
<<Para la seguridad hemos utilizado el servicio serverless Amazon Cognito, qué se integra perfectamente con AWS AppSync y GraphQL. Amazon Cognito nos ha dado toda la plataforma de seguridad relativa a los usuarios y sus contraseñas garantizándonos la confidencialidad de tal forma que no necesitamos servicios adicionales. Cognito nos permite también controlar quién accede a la plataforma y con qué permisos. La autentificación de los usuarios con Cognito puede ser mediante usuario/contraseña o integraciones con OAUTH2 (Active Directory, Google Apps, etc.) Con AWS Shield podemos controlar otros peligros como los ataques DDoS.>>, explica Joan Carles.
<<Empleamos Amazon CloudWatch para monitorear en tiempo real las métricas relacionadas con los eventos más críticos para nuestro sistema TI, como por ejemplo los tiempos de ejecución de las funciones Lambda, el tamaño de las consultas devueltas por GraphQL, y los procesos simultáneos en AWS IoT Core.>>
Conclusión
<<Evaluamos todos los proveedores de servicios en la nube más conocidos, antes de optar por Amazon Web Services. Nuestra conclusión en ese momento fue que AWS ofrecía la cartera de servicios más amplia y más madura. Con nuestra plataforma anterior, basada en un esquema tradicional de cliente/servidor sufríamos varios parones y bajadas de rendimiento a lo largo del mes. Hoy este es un problema superado y además sabemos que nuestros servicios están preparados para el 5G y cualquier otra nueva tecnología que destaque en el futuro. Nuestra plataforma es rentable, fiable y ofrece un rendimiento muy alto. Estamos seguros de que la decisión fue la adecuada.>> Estas son las palabras de Joan Carles, a confirmación de la confianza en AWS como proveedor cloud.
Sobre los autores
Joan Carles R. Doval es el CEO en TecBrain, ingeniero informático con más de 20 años de experiencia en tecnologías de la información. Es un apasionado de la inteligencia artificial y de la ciberseguridad. | |
Francisco Morillo es Arquitecto de Soluciones de AWS en Iberia. Trabaja con clientes en el sector de PyMEs y cubre distintas tecnologías con foco en Data Analytics. | |
Marta de Esteban Belzuz es Account Manager de AWS en Iberia. Se dedica a ayudar a los clientes a acelerar sus negocios y su proceso de transformación digital en la nube de AWS. |