Blog de Amazon Web Services (AWS)
Modernización del CRS de Meliá, de Mainframe a AWS
El Sistema Central de Reservas (CRS) es uno de los sistemas tecnológicos más críticos para cualquier compañía hotelera. Mediante él se gestiona el inventario de hoteles y habitaciones, se proporciona la disponibilidad tanto a canales de venta propios como externos y también es donde se consolidan las reservas. En el caso de Meliá, además, este sistema también contiene las aplicaciones para la gestión del programa de fidelidad y los contratos con los operadores turísticos.
Sobre Meliá
Meliá Hotels International es una de las mayores compañías hoteleras a nivel mundial, así como líder absoluto del mercado español, con más de 380 hoteles repartidos por más de 40 países y cuatro continentes, operados bajo las marcas: Gran Meliá Hotels & Resorts, Paradisus by Meliá, ME by Meliá, Meliá Hotels & Resorts, INNSIDE by Meliá, Sol by Meliá y TRYP by Wyndham.
Introducción al CRS de Meliá
Hasta ahora, el CRS de Meliá estaba desarrollado con COOL:Gen y compilado en Cobol, como una aplicación monolítica que se ejecutaba sobre una plataforma Mainframe on-premise. Este modelo estaba ralentizando la evolución tecnológica, no solo del propio CRS, sino de otros sistemas sobre los que generaba una fuerte dependencia, como el canal de ventas online (Melia.com) o el sistema para la gestión de los hoteles (Property Management System o PMS).
En este contexto, con los objetivos de alcanzar la agilidad que demanda el mercado y a su vez disponer de una plataforma escalable y eficiente en costes, Meliá decidió abordar una migración y modernización del CRS, haciendo uso de la tecnología de AWS y ampliando la relación estratégica entre ambas compañías.
Los retos
Los retos tecnológicos a los que se enfrentaba Meliá eran más que palpables. El CRS estaba compuesto por más de 50 millones de líneas de código Cobol, corriendo sobre un sistema Mainframe y haciendo uso de una base de datos monolítica IBM DB2.
Meliá tenía que diseñar una estrategia que permitiese migrar el CRS a sistemas abiertos en un tiempo razonable, no superior a dos años. Por lo tanto, no era viable plantear una estrategia de modernización “big bang”, haciendo una re-arquitectura completa de la aplicación. Esto podría haber generado una parálisis por análisis o habría retrasado el acceso de Meliá a los beneficios que proporciona el uso de AWS.
Por otro lado, Meliá debía arrancar un proceso de modernización incremental, empezando a desacoplar aquellas partes del monolito que mayor impacto generan en el negocio y donde más necesario se hacía disponer de un modelo ágil.
Estrategia de migración y modernización
Ante los retos planteados, Meliá abordó una estrategia combinada. Para explicarlo, veamos cual era la arquitectura de la que partía y qué decisiones se tomaron.
El CRS original de Meliá estaba compuesto por los siguientes bloques principales:
Teniendo en cuenta los plazos para la migración y las necesidades de agilidad y rendimiento, se decidió abordar el proyecto con dos líneas de trabajo paralelas:
- Re-arquitectura de los procesos que más carga de trabajo suponían para el CRS:
- Integración de canales de venta: los procesos de disponibilidad son críticos para el modelo de negocio de Meliá y suponen una alta carga de ejecución en el CRS. Después de las pruebas realizadas se descartó el uso de código generado y se decidió hacer una re-arquitectura en base a microservicios.
- Tareas programadas: se identificaron los procesos planificados más relevantes y los que más recursos consumían en el CRS. Por motivos de seguridad y rendimiento se decidió implementar desde cero de estos procesos.
- Generación del resto de procesos en Java mediante COOL:Gen para acelerar la migración. Una vez generado el código Java, se empaquetaron los distintos módulos en contenedores. De esta manera se consigue ejecutar las aplicaciones sobre plataformas abiertas, al mismo tiempo que se simplifica la gestión de la alta disponibilidad y la escalabilidad.
Mitigación de riesgos
Otro de los elementos clave de este proyecto ha sido diseñar un plan que permitiese mitigar los riesgos de una transformación tan crítica para la compañía. Como parte de ese plan, destacan los siguientes elementos:
- Se llevó a cabo una migración incremental de los distintos componentes, de menor a mayor criticidad. Moviendo en primer lugar la integración con los canales de venta para las consultas de disponibilidad, en segundo lugar el backoffice y en último lugar la base de datos central, junto con la capa de proxies y las tareas programadas.
- Evidentemente una de las piezas más complejas era la migración de la base de datos. Se utilizó AWS Database Migration Service (DMS) para definir tareas de replicación continua (Change Data Capture o CDC), que permitiesen reducir los tiempos de corte de servicio durante la migración.
- Se diseñaron pruebas de carga específicas para validar el dimensionamiento y funcionalidad de los distintos elementos mencionados. Incluso se implementó un componente software para interceptar toda la carga de producción contra la base de origen y replicarla en un entorno de pruebas en destino.
- Finalmente, ha sido fundamental definir “runbooks” para cada una de las fases de la migración, con los distintos pasos a ejecutar, así como los procesos de vuelta atrás. Estos “runbooks” han sido validados mediante diversas pruebas.
La arquitectura actual
Siguiendo la estrategia de migración y modernización explicada, Meliá ha implementado sobre Amazon Web Services una arquitectura que le ha permitido reducir los costes de la plataforma, y mejorar el rendimiento, la disponibilidad, la flexibilidad y la seguridad de la misma. El siguiente diagrama refleja la arquitectura a alto nivel del nuevo CRS de Meliá:
Meliá ha decidido utilizar Amazon Elastic Kubernetes Service (EKS) como plataforma de computación sobre la que ejecutar los distintos servicios del CRS. Kubernetes se ha convertido en el estándar de Meliá para el despliegue y operación de aplicaciones empaquetadas en contenedores. Gracias a la experiencia gestionada que proporciona EKS, Meliá ha conseguido desarrollar un modelo operativo con el que administrar de manera eficiente distintos clústeres que alojan múltiples aplicaciones. Todas las imágenes de contenedores se almacenan en Amazon Elastic Container Registry (ECR), donde se utilizan funcionalidades como el escaneo de vulnerabilidades para garantizar la seguridad de la plataforma.
En este primer ejercicio de modernización, Meliá también ha empezado a beneficiarse de los distintos sistemas de almacenamiento que proporciona AWS. Además de utilizar Amazon Relational Database Service (RDS) como base de datos principal, reduciendo el coste de gestión de este componente, Meliá hace uso ahora de servicios como Amazon Simple Storage Service (S3) para almacenar reportes generados por tareas programadas, o Amazon ElastiCache para acelerar las consultas de disponibilidad y reducir la carga sobre la base de datos.
Finalmente, Meliá ha simplificado la integración con otras aplicaciones y casos de uso, como el maestro de clientes o el data lake, creando un “stream” de datos mediante Amazon Managed Streaming for Apache Kafka (MSK). Haciendo uso de AWS Database Migration Service (DMS), Meliá captura cambios en tablas específicas (clientes, reservas, hoteles, campañas, etc) y los ingesta como eventos en MSK.
Siguientes pasos
Una vez finalizada la migración, Meliá continuará con el proceso de modernización incremental de su CRS. El objetivo es llevar a cabo una re-arquitectura de aquellos componentes que han sido migrados mediante traducción de código, incluyendo tanto la capa de proxies como las diferentes aplicaciones de backoffice. Como parte de este ejercicio, también se plantea un desacoplamiento de la base de datos, para utilizar el servicio de almacenamiento más adecuado para cada caso de uso.
Conclusiones
Meliá ha conseguido migrar con éxito su CRS de Mainframe a AWS, iniciando a su vez un proceso de modernización. Gracias a esta transformación, Meliá ha obtenido un 35% de reducción en el coste de la plataforma y ha incrementado el rendimiento mediante una infraestructura que es capaz de adaptarse dinámicamente a la demanda. Además, Meliá ahora es totalmente autónomo en el despliegue de nuevas versiones de código, mediante procesos automatizados que reducen el riesgo de impacto en producción y facilitan la agilidad.
Mediante esta transformación, junto con otros proyectos como la modernización del canal online y el PMS, Meliá será capaz de interaccionar de manera más eficiente con sus clientes durante todo el “customer journey”, proporcionando una experiencia más personalizada.