Rappi mejora la eficiencia, la estabilidad y la velocidad con Amazon DocumentDB (con compatibilidad con MongoDB)

2020

En los mejores tiempos, un servicio que ayuda a las personas a realizar las tareas cotidianas de forma más eficiente, desde comprar ropa hasta pedir la cena, puede convertirse rápidamente en una parte integral de la vida. Pero en un contexto como el de la pandemia de la COVID-19 de 2020, ese servicio, como el que ofrece Rappi, una empresa emergente basada en Colombia, se vuelve indispensable.

En 2015, Rappi obtuvo una inversión de 2 millones de dólares para financiar una idea innovadora: convertirse en líder de la “entrega de todo a domicilio” al ofrecer un marketplace basado en una aplicación para el intercambio de bienes que van desde pedidos para llevar y comestibles hasta ropa. En 2018, Rappi se había hecho merecedora del título de empresa emergente unicornio, con una inversión adicional de 200 millones de dólares y una valoración de 1000 millones de dólares, incluso mientras continuaba la ampliación de su oferta de productos y servicios para facilitar la vida de sus clientes, como los seguros y los servicios financieros. En 2020, Rappi se había expandido con éxito a nueve países de América Latina con nueve líneas de negocio y había conseguido otros 1000 millones de dólares en inversiones, con lo que su valoración aumentó a 3500 millones de dólares.

En sus inicios, Rappi creó una aplicación monolítica con patrones de diseño arquitectónico tradicionales. Aunque la infraestructura monolítica funcionó bien al principio, los ingenieros de Rappi no tardaron en determinar que necesitaban una plataforma de base de datos que pudiera soportar un enfoque más flexible y orientado a los microservicios, y que facilitara el ritmo de innovación necesario para competir en el negocio de los domicilios bajo demanda. Después de probar otras soluciones de bases de datos, Rappi recurrió a Amazon Web Services (AWS) para abordar sus problemas de rendimiento, eficiencia y escalabilidad mediante Amazon DocumentDB (con compatibilidad con MongoDB)

Technology concept. 3D render
kr_quotemark

Debimos realizar cambios para la transición a Amazon DocumentDB, pero después de hacerlo, descubrimos que con mucho menos código, podíamos realizar las mismas tareas con mucha más estabilidad”. 

Marcelo Soto
Jefe de la plataforma de datos, Rappi

Búsqueda de una solución de base de datos

La arquitectura de microservicios de Rappi requería múltiples bases de datos adecuadas para diferentes trabajos. La empresa recurrió a Elasticsearch para el catálogo y la búsqueda y estableció una serie de microservicios organizados por unidad de negocio y por país, con cada país apoyado por un clúster de Elasticsearch. Sin embargo, debido a que todos los microservicios de un país utilizaban el mismo clúster, si algo fallaba en un solo microservicio, si establecía demasiadas conexiones a la base de datos o utilizaba un índice de manera incorrecta, por ejemplo, el alcance del impacto resultante podía crear problemas de rendimiento que iban desde la degradación del servicio hasta la interrupción completa de todos los demás microservicios de ese país. Además, como Rappi implementaba un clúster de Elasticsearch por país para cubrir las nueve líneas de negocio de ese país, el modelo utilizaba hasta 100 nodos por clúster, lo que aumentaba el precio, reducía el rendimiento y requería un mantenimiento constante. En otras palabras, el modelo sencillamente no se ajustaba a las necesidades de Rappi. “Utilizábamos instancias realmente enormes y no conseguíamos el rendimiento que queríamos”, afirma Marcelo Soto, responsable de la plataforma de datos de Rappi.

Estos problemas tempranos de escalado y rendimiento generaron frecuentes interrupciones en uno de los servicios más rentables de Rappi: sus entregas a domicilio de restaurantes. El más grave de ellos fue una interrupción de 3 a 4 horas durante la hora pico de servicio, causada por el aumento de solicitudes en el clúster de Elasticsearch. Mientras tanto, la consulta de clasificación podía tardar hasta 500 ms, una latencia que reducía el rendimiento e impactaba en la experiencia de miles de usuarios.

Encontrar la base de datos adecuada en AWS

A medida que buscaba una nueva solución de base de datos con el objetivo de mejorar drásticamente el rendimiento, los ingenieros de Rappi determinaron que parte de la carga de trabajo de los microservicios debía ser soportada por un almacén de documentos. Rappi ya había dado un primer paso al trasladar estas cargas de trabajo de Elasticsearch a soluciones de almacenamiento de documentos y trabajaba en la actualización de su pequeña plataforma MongoDB. Ahora, el equipo de Rappi necesitaba eliminar el trabajo pesado e indiferenciado de mantener la infraestructura para tantos clústeres de MongoDB. La compatibilidad con MongoDB fue un factor. “La compatibilidad era crucial porque necesitábamos trasladar microservicios que ya estaban en funcionamiento”, precisa Soto. “Debíamos tener la capacidad de trasladarnos a una base de datos diferente sin modificar demasiado el código”. Rappi encontró la solución que buscaba en un servicio de base de datos de documentos completamente administrado de AWS que proporcionaba la compatibilidad con MongoDB que necesitaba: Amazon DocumentDB (con compatibilidad con MongoDB), una base de datos no relacional diseñada para ofrecer a los clientes el rendimiento, la escalabilidad y la disponibilidad necesarios para operar cargas de trabajo de MongoDB esenciales a escala.

Ahora, una vez completada la migración a Amazon DocumentDB, “tenemos 2000 bases de datos diferentes en producción, y DocumentDB es la segunda más importante”, afirma Soto. El nuevo modelo de Rappi asigna un clúster de Amazon DocumentDB por cada una de sus nueve líneas de negocio por país, y puede administrar el aumento exponencial de clústeres con solo dos ingenieros. “Debimos hacer pequeños ajustes para la transición de MongoDB a Amazon DocumentDB, pero después de hacerlo, descubrimos que con mucho menos código, podíamos realizar las mismas tareas con mucha más estabilidad”, añade Soto. El clúster de Amazon DocumentDB más grande de Rappi, compuesto por cinco instancias, que tardó dos semanas en migrar, dio lugar a una mejora significativa del rendimiento y la eficiencia. De hecho, Rappi no ha experimentado ninguna interrupción relacionada con Amazon DocumentDB, y la latencia de las consultas de clasificación ha descendido a 80 ms en el percentil 99. “Ahora”, explica Soto, “los ingenieros tienen tal vez un 5 por ciento de los problemas que tenían antes, y si tienen problemas, es un problema con la lógica o en el lado de la aplicación, no porque Amazon DocumentDB funcione incorrectamente”. Además de proporcionar un mejor rendimiento, la base de datos administrada de Amazon DocumentDB requiere mucho menos mantenimiento y solución de problemas, lo que permite al equipo de la plataforma de datos de Rappi centrarse en actividades de valor agregado que ayudan a que la aplicación progrese. 

Estabilidad en tiempos de incertidumbre

Estos cambios beneficiosos en la infraestructura de backend de Rappi se produjeron justo cuando los clientes más necesitaban a Rappi: durante la pandemia de la COVID-19. Afortunadamente, Rappi estaba preparada para gestionar el aumento de pedidos y domicilios. Amazon DocumentDB también ha funcionado con normalidad a pesar del cambio de volumen. “Con todos los cambios que debimos hacer en todas partes para hacer frente a la nueva realidad mundial, no recuerdo haber tenido que hacer nada con respecto a Amazon DocumentDB. Realmente soportó el cambio de carga sin ningún problema, sin requerir prácticamente ningún trabajo por nuestra parte”, indica Soto.

La mayor estabilidad, el rendimiento y las menores necesidades de mantenimiento de Rappi le han permitido centrarse aún más en su futuro. Con las implementaciones actuales y futuras de los servicios de AWS, Rappi está un paso más cerca de ofrecer todo lo que sus clientes necesitan, a tiempo, bajo demanda y a escala.


Acerca de Rappi

Fundada en 2015, Rappi es la primera empresa emergente tecnológica de Colombia valorada en más de 3500 millones de dólares. Ofrece servicios de entrega al cliente final bajo demanda para casi cualquier cosa, desde alimentos y ropa hasta seguros y servicios financieros, en nueve países de América Latina.

Beneficios de AWS

  • Reducción del número de interrupciones de servicio de frecuentes a cero
  • Migración de más de 100 bases de datos MongoDB a DocumentDB en 3 meses
  • Disminución de la latencia de hasta 500 ms a 80 ms de media para la consulta de clasificación de restaurantes
  • Reducción de los gastos generales de administración y operación en más de un 50 %.
  • Mayor estabilidad con menos código

Servicios de AWS utilizados

Amazon DocumentDB

Amazon DocumentDB (compatible con MongoDB) es un servicio de base de datos de documentos ágil, escalable, de alta disponibilidad y completamente administrado que admite cargas de trabajo de MongoDB. 

Más información »


Comenzar

Cada día crece el número de empresas de todos los tamaños y sectores que consiguen transformar sus negocios gracias a AWS. Contacte con nuestros expertos e inicie hoy mismo su proceso de traspaso a la nube de AWS.