El Desafío
Prosegur, líder mundial en servicios de alarmas y monitoreo, se enfrentó con el desafío de tener que modernizar su plataforma tecnológica ante la necesidad de dar respuesta y acompañar un inminente crecimiento exponencial en el volumen de usuarios, respaldando así la expansión impulsada por el propio el negocio.
Surgió entonces la necesidad de incorporar ciertos atributos que aseguraran un escalamiento flexible y eficiente, dos factores muy bien manejados por las bondades del cloud computing.
Se plantea una estrategia ambiciosa: migrar la totalidad de las operaciones a la nube cumpliendo con las premisas de no interrumpir ni poner en riesgo las operaciones, garantizando total transparencia hacia los usuarios actuales.
Por último, el contexto de partida estaba caracterizado por un escenario técnico – cultural igualmente desafiante: la plataforma ya estaba dando muestras de haber llegado a su límite de rendimiento, y el equipo experto aún se encontraba en un estadío inmaduro en cuanto al conocimiento de la filosofía cloud-native, de la tendencia hacia el cloud-computing, de las tecnologías emergentes en general e inclusive metodologías ágiles.
El escenario exigía lograr una estrategia integral que abordara tanto la migración tecnológica como la transformación cultural y maduración progresiva de todos los equipos involucrados.
Nuestra Solución
Diseñamos y construimos una nueva plataforma completamente alineada a la filosofía cloud-native, incorporando distintas tecnologías de vanguardia que nos trajeron éxitos tempranos, exhibiendo algunos atributos de calidad como por ejemplo: gran escalabilidad, resiliencia, tolerancia a fallos, flexibilidad tecnológica y una mejor organización de los equipos, entre otros.
La nueva arquitectura fue diseñada para beneficiarse de los servicios cloud de AWS.
En fases iniciales y mediante pequeñas pruebas de concepto, logramos definir un stack tecnológico flexible compuesto por múltiples lenguajes de programación, frameworks y librerías (propias y de terceros). Si bien mantuvimos Java como lenguaje principal (incorporando Vert.X), algunos puntos estratégicos de la construcción se vieron beneficiados por su desarrollo en Golang e inclusive Erlang.
Nos apoyamos en Kafka como broker de mensajería y se homologan diferentes bases de datos para escenarios diferenciados, tal es el caso de Oracle o DynamoDb.
La nueva arquitectura de microservicios, ya orquestados por Kubernetes, nos garantizaría la escalabilidad y sobre todo, un uso eficiente de los recursos computacionales, un aspecto fundamental para redondear el éxito de la plataforma.
Realizamos una reingeniería de los principales circuitos de negocio, identificando aquellos que nos permitieran mantener una experiencia de usuario completa en la nueva plataforma. Así fue posible modelar un MVP, enfoque nos permitió materializar una estrategía de migración progresiva y segura de cara a los usuarios.
Para mejor acompañar la implementación del paradigma cloud-native, el equipo desarrolló una gama variada de herramientas orientadas a la automatización de tareas que permitieran optimizar todo el ciclo de vida de desarrollo y entrega de software. A esto se sumó el trabajo permanente para lograr incorporar a la cultura de los distintos equipos los conceptos
clave de la filosofía cloud-native.
Resultados
Plataforma Renovada: Construimos una nueva plataforma que cumplió con las expectativas, resolviendo problemas de disponibilidad y mejorando significativamente su operación.
Migración Transparente: Migramos más de 1 millón de usuarios sin que notaran la transición, garantizando una experiencia de “no impacto negativo”.
Transformación de Equipos: Los equipos de trabajo adoptaron progresivamente la filosofía cloud-native, integrándose al nuevo producto con metodologías ágiles y eficaces.
Optimización de Procesos: Logramos una agilidad y economía en todos los procesos de desarrollo y entrega del producto, profesionalizando las metodologías empleadas.