Los equipos a veces necesitan una latencia más baja, costos más bajos (especialmente a medida que escalan) o la capacidad de ejecutar sus aplicaciones en otro lugar que no sea AWS.
Es fácil entender por qué tantos equipos han recurrido a Amazon DynamoDB desde su introducción en 2012. Es easy comenzar, especialmente si su organización ya está arraigada en el ecosistema de AWS. Es relativamente rápido y escalable, con una curva de aprendizaje baja. Y dado que está completamente administrado, abstrae el esfuerzo operativo y los conocimientos tradicionalmente requeridos para mantener una base de datos en funcionamiento en un estado saludable.
Pero a medida que pasa el tiempo, surgen inconvenientes, especialmente a medida que evolucionan las cargas de trabajo y los requisitos comerciales. Los equipos a veces necesitan una latencia más baja, costos más bajos (especialmente a medida que escalan) o la capacidad de ejecutar sus aplicaciones en otro lugar que no sean AWS. En esos casos, ScylladB, que ofrece una API appropriate con DynamodB, a menudo se selecciona como alternativa.
Exploremos los desafíos que impulsaron a tres equipos para abandonar Dynamodb.
Flexibilidad múltiple y ahorro de costos
YEDTREMO es una plataforma de publicidad en línea que conecta a los editores y anunciantes en tiempo actual utilizando un sistema basado en una subasta, optimizado con ML. Su negocio se basa en la entrega de anuncios rápidamente (dentro de 200-300 milisegundos) y de manera eficiente, lo que requiere búsqueda de bases de datos de alto rendimiento extremely rápido a escala. Los retrasos en la base de datos se traducen directamente en negocios perdidos.
Inicialmente construyeron la plataforma en DynamoDB. Sin embargo, aunque DynamodB había sido confiable, surgieron limitaciones significativas a medida que crecían. Como explicó Todd Coleman, cofundador técnico y arquitecto jefe, sus principales preocupaciones eran dobles: costos crecientes y restricciones geográficas. La base de datos se estaba volviendo cada vez más costosa a medida que escalaba, y los encerró en AWS, evitando la verdadera flexibilidad de múltiples nubes.
Mientras exploraban las alternativas de DynamodB, esperaban encontrar una opción que mantendría velocidad, escalabilidad y confiabilidad al tiempo que scale back los costos y proporcionan independencia de los proveedores de nubes.
YETRINGMO primero consideró quedarse con DynamodB y agregar una capa de almacenamiento en caché. Sin embargo, el almacenamiento en caché no pudo solucionar el problema de latencia geográfica. Cache Misses sería demasiado lento, lo que hace que este enfoque sea poco práctico.
También exploraron Aerospike, que ofrecía velocidad y soporte de nube cruzada. Sin embargo, la indexación en memoria de Aerospike habría requerido un clúster prohibitivamente grande y costoso para manejar la gran cantidad de objetos de datos pequeños de rendimiento. Además, la migración a Aerospike habría requerido cambios de código extensos y que requieren mucho tiempo.
Luego descubrieron a Scylladb. Y la API appropriate con DynamodB de Scylladb (alternador) fue un cambio de juego.
Todd explicó: “SCYLLADB admitió las implementaciones de la nube cruzada, requirió un número manejable de servidores y ofreció costos competitivos. Lo mejor de todo es que su API period appropriate con DynamodB, lo que significa que podríamos migrar con cambios de código mínimos. De hecho, un solo ingeniero implementó las modificaciones necesarias en solo unos pocos días”.
El proceso de migración se planificó cuidadosamente, aprovechando su arquitectura de cola de mensajes Kafka existente para garantizar la integridad de los datos. Realizaron dos pruebas de prueba de concepto (POC): primero con una sola tabla de 28 mil millones de objetos, y luego en las cinco regiones de AWS.
Los resultados fueron impresionantes. Todd compartió: “Los costos de nuestra base de datos se redujeron a la mitad, incluso con el precio de la capacidad reservada de DynamodB”. Y más allá del ahorro de costos, el rendimiento ganó la flexibilidad de implementarse potencialmente en diferentes proveedores de nubes. Su latencia mejoró, y ScylladB fue tan easy de operar como DynamodB.
Al finalizar, Todd concluyó: “Una de nuestras preocupaciones iniciales fue alejarse de la confiabilidad comprobada de Dynamodb. Sin embargo, ScylladB ha sido un excelente socio. Su equipo proporciona monitoreo de nuestros Clusters, nos alerta a problemas potenciales y nos aconseja cuándo se necesita escala en términos de gastos generales de mantenimiento continuo.
Escuchar de Yerodmo
Migrar a GCP con un mejor rendimiento y menores costos
Digital Turbine, un jugador importante en tecnología publicitaria móvil con $ 500 millones en ingresos anuales, enfrentó desafíos crecientes con su implementación de DynamodB. Si bien su principal motivación para la migración fue la estandarización de Google Cloud Platform después de las adquisiciones, la solución DynamodB existente había causado problemas de rendimiento y costo a escala.
“Puede ser un poco caro a medida que escala, para ser honesto”, explicó Joseph Shorter, vicepresidente de arquitectura de plataforma en Digital Turbine.
“Estábamos encontrando algunos problemas de rendimiento. Estábamos haciendo un montón de lecturas: el 90% de todas las interacciones con DynamodB fueron operaciones de lectura. Con todas esas operaciones, descubrimos que los éxitos de rendimiento nos requirieron escalar más de lo que queríamos, lo que aumentó los costos”.
La turbina digital necesitaba que la migración fuera lo más rápido y de bajo riesgo posible, lo que significaba mantener la refactorización de la aplicación al mínimo. La principal preocupación, según Shorter, fue “¿cómo podemos migrar sin refactorizar radicalmente nuestra plataforma, mientras mantenemos al menos el mismo rendimiento y valor, y evitando una situación de choque y quema? Porque si fallaba, derribaría a toda nuestra compañía”.
Después de evaluar varias opciones, la turbina digital se mudó a Scylladb y logró mejoras inmediatas. La migración tardó menos de un dash para implementar y los resultados excedieron las expectativas.
“Una diferencia de costo del 20%, es un gran número, sin importar de lo que estés hablando”, señaló Shorter. “Y cuando considera que nuestros planes escala aún más, se vuelve aún más significativo”.
Más allá del ahorro de costos, se encontraron “apenas golpeando los grupos de Scylladb”, lo que sugiere espacio para aún más crecimiento sin aumentos de costos proporcionales.
Escuche de la turbina digital
Alto rendimiento de escritura con baja latencia y costos más bajos
El equipo de estado del usuario y el equipo de personalizaciones para uno de los servicios de transmisión de medios más grandes del mundo habían estado utilizando DynamodB durante varios años. Como estaban en investigación de dos casos de uso existentes, se preguntaron si period hora de un cambio de base de datos. Los dos casos de uso fueron:
- Pausa/currículum: Si un usuario está viendo un programa y lo detiene, puede retomar donde lo dejó, en cualquier dispositivo, desde cualquier ubicación.
- Mira el estado: Usando los mismos datos, decide si el usuario ha visto el programa.
Aquí hay un diagrama de arquitectura easy:
Cada 30 segundos, el cliente envía latidos con la posición actualizada de Playhead del programa y luego envía esos eventos a la base de datos. La tubería de borde carga eventos en la misma región que el usuario, mientras que la tubería de autoridad (Auth) combina eventos para las cinco regiones a las que sirve la compañía. Finalmente, los datos deben ser obtenidos y atendidos al cliente para admitir la reproducción. Tenga en cuenta que el equipo quería preservar la separación entre las regiones Auth y Edge, por lo que no estaban buscando ninguna replicación específica de la base de datos entre ellas.
Los dos requisitos técnicos principales para apoyar esta arquitectura fueron:
- Para garantizar una gran experiencia de usuario, el sistema tuvo que permanecer altamente disponible, con lecturas de baja latencia y la capacidad de escalar en función de los aumentos de tráfico.
- Para evitar una amplia configuración de infraestructura o trabajo de DBA, necesitaban una fácil integración con sus servicios de AWS.
Una vez que se marcaron esas casillas, el equipo también esperaba reducir el costo whole.
“Nuestra infraestructura existente tenía datos distribuidos en varios grupos de DynamodB y Elasticache, por lo que realmente queríamos algo easy que pudiera combinarlos en un sistema de costos mucho más bajos”, explicó su ingeniero de backend.
Específicamente, necesitaban una base de datos con:
- Soporte multirregión, ya que el servicio fue in style en cinco regiones geográficas importantes.
- La capacidad de manejar más de 170k escribe por segundo. Las actualizaciones no tenían un Acuerdo de nivel de servicio (SLA) (SLA), pero el sistema necesitaba realizar actualizaciones condicionales basadas en las marcas de tiempo de eventos.
- La capacidad de manejar más de 78k lee por segundo con una latencia P99 de 10 a 20 milisegundos. El caso de uso involucraba solo consultas de puntos simples; Cosas como índices, particiones y patrones de consulta complicados no eran una preocupación principal.
- Alrededor de 10 tb de datos con espacio para el crecimiento.
¿Por qué moverse de Dynamodb? Según su ingeniero de backend, “DynamodB podría soportar nuestros requisitos técnicos perfectamente. Pero dado nuestro tamaño de datos y un alto rendimiento (de escritura), continuar con Dynamodb habría sido como palear dinero en el incendio”.
Según sus requisitos para el rendimiento y el costo de la escritura, decidieron explorar ScylladB. Para una prueba de concepto, configuraron un clúster de prueba de nubes Scylladb con seis nodos AWS I4i 4xlarge y precargaron el clúster con 3 mil millones de registros. Corrieron cargas combinadas de 170k escrituras por segundo y 78k lecturas por segundo. ¿Y los resultados? “Llegamos a la carga combinada con cero errores. Nuestra latencia de lectura P99 fue de 9 ms y la latencia de escritura fue inferior a 1 ms”.
Estas bajas latencias, combinadas con un ahorro de costos significativo (más del 50%), los convencieron de abandonar DynamodB. Más allá de las latencias más bajas a menor costo, el equipo también apreció los siguientes aspectos de ScylladB:
- El diseño centrado en el rendimiento de Scylladb (construido en el marco de SeStar, utilizando C ++, que es consciente, ofrece a los conductores conscientes de fragmentos, and many others.) ayuda al equipo a reducir el tiempo y los costos de mantenimiento.
- La estrategia de compactación incremental les ayuda a reducir significativamente la amplificación de escritura.
- El nivel de consistencia versatile y los factores de replicación les ayudan a admitir tuberías de autores y borde separadas. Por ejemplo, Auth usa la consistencia del quórum, mientras que Edge usa un nivel de consistencia de “1” debido a la duplicación de datos y un alto rendimiento.
Su ingeniero de backend concluyó: “Elegir una base de datos es difícil. Debe considerar no solo las características, sino también los costos. El servidor no es una bala de plata, especialmente en el dominio de la base de datos.
“En nuestro caso, debido a los requisitos de alto rendimiento y latencia, Dynamodb Server sin ser una gran opción. Además, no subestimes el papel del {hardware}. La mejor utilización del {hardware} es clave para reducir los costos al tiempo que mejora el rendimiento”.
Obtenga más información
¿Tu equipo es el próximo?
Si su equipo está considerando un movimiento de Dynamodb, ScylladB podría ser una opción para explorar. Regístrese para una consulta técnica para hablar más sobre su caso de uso, SLA, requisitos técnicos y lo que espera optimizar. Le informaremos si ScylladB es un buen ajuste y, de ser así, lo que una migración podría implicar en términos de cambios de aplicación, modelado de datos, infraestructura, and many others.
Bonificación: aquí hay un vistazo rápido a cómo SCYLLADB se compara con DynamodB:
https://www.youtube.com/watch?v=d-1lmmlc7tc
Escrito por: Guilherme da Silva Nogueira y Felipe Cardeneti Mendes.