Historias de clientes / Software e Internet
Dropbox ahorra millones al crear un sistema de almacenamiento de metadatos escalable en Amazon DynamoDB y Amazon S3
1 año
Sistema de almacenamiento de metadatos lanzado en AWS en un año.
5,5
Reducción del costo por gigabyte de usuario en un coeficiente de 5,5.
Ahorro de millones
Ahorro de millones de dólares en costos de expansión.
300 TB
Migración de 300 TB de datos en menos de dos semanas.
De 4000 a 6000 consultas
Ingesta de datos de entre 4000 y 6000 consultas por segundo.
Información general
En el verano de 2018, Dropbox sufrió una reducción de la capacidad de su sistema de almacenamiento de metadatos local debido al rápido crecimiento de los datos en algunas de las particiones. El equipo de bases de datos de Dropbox tenía tres opciones: duplicar la capacidad de almacenamiento local (lo que costaría millones de dólares), eliminar fragmentos de metadatos o encontrar una solución nueva, altamente escalable y rentable. La tercera opción era la mejor, pero lograrla sería un desafío. A Dropbox le quedaban menos de 2 años para que su sistema local alcanzara su capacidad máxima, y solo dos empleados conformaban el equipo de implementación del proyecto.
Esas circunstancias obligaron a Dropbox a buscar una solución gestionada de Amazon Web Services (AWS). Con Amazon DynamoDB, una base de datos NoSQL flexible y totalmente gestionada que ofrece un rendimiento de un solo dígito en milisegundos a cualquier escala, y Amazon Simple Storage Service (Amazon S3), un servicio de almacenamiento de objetos en la nube, Dropbox desarrolló rápidamente un nuevo sistema de almacenamiento gestionado llamado Alki. Esto permitió disponer de metadatos de usuario prácticamente ilimitados y no solo le permitió a la empresa ahorrar millones de dólares (ya que no tendría que aumentar el almacenamiento local), sino que también redujo el costo por gigabyte en un coeficiente de 5,5.
Cómo migrar datos de registro de auditoría de una base de datos antigua a la nube
Dropbox, fundada en 2007 por dos estudiantes del Massachusetts Institute of Technology, es una herramienta de colaboración global y un servicio para compartir archivos. Se ha convertido en una de las startups más exitosas del mundo, con más de 600 millones de usuarios que han subido más de 400 000 millones de piezas de contenido.
Los sistemas de almacenamiento de metadatos de Dropbox inicialmente se alojaban solo en el sistema de almacenamiento de datos principal de la empresa, Edgestore, alojado en una base de datos distribuida local creada sobre clústeres MySQL fragmentados. A mediados de 2018, el rápido crecimiento de los metadatos inactivos (datos a los que se accede con poca frecuencia pero que deben almacenarse de forma duradera y estar disponibles al instante) estaba a menos de 2 años de colapsar Edgestore. Sin embargo, aumentar la capacidad de la base de datos local requeriría dividir las particiones existentes y comprar nuevas máquinas para alojarlas, lo que duplicaría el costo de Edgestore al agregar millones de dólares al año. Además, ya no tenía sentido almacenar los metadatos inutilizados en la misma base de datos que los metadatos calientes (o de uso frecuente). “Si se escriben datos que no están pensados para leerse con frecuencia, es muy caro utilizarlos (sin mencionar que es inútil guardarlos) en medios optimizados para la velocidad de recuperación”, afirma Jonathan Lee, líder técnico del equipo de Alki de Dropbox.
En consecuencia, dos empleados se separaron del equipo de bases de datos para crear Alki, la solución que almacenaría metadatos de forma rentable. Ellos se centraron especialmente en el principal caso de uso de metadatos fríos de Edgestore del registro de auditorías. Dado que el pequeño equipo de Alki se enfrentaba a un plazo muy ajustado que, de no cumplirse, podría provocar la pérdida de metadatos de los usuarios, decidió implementar los servicios gestionados de AWS. Con Amazon DynamoDB y Amazon S3, Dropbox creó rápidamente un prototipo e implementó un sistema de almacenamiento de metadatos fríos en AWS en tan solo un año. AWS Solutions Architects funcionó como una extensión del equipo de Alki de Dropbox y proporcionó recomendaciones y ayuda para la implementación.
“Al crear un sistema de almacenamiento, hay que tener en cuenta muchos componentes, como la replicación, las copias de seguridad y la gestión de la capacidad. Amazon DynamoDB y Amazon S3 se ajustan bien a esa necesidad: son normas del sector”, afirma Lee. “Estos son problemas que los equipos grandes tardan varios años en resolver. Sin embargo, al utilizar Amazon DynamoDB y Amazon S3, simplificamos estos problemas porque AWS se encarga de muchas de las tareas complejas, como la replicación de datos, la gestión de la durabilidad de los datos y el suministro de hardware. Tanto Amazon DynamoDB, como Amazon S3, crecen automáticamente en función de nuestras necesidades de capacidad. Ya no necesitamos planificar la capacidad local ni el presupuesto para las compras de hardware y luego estancarnos con nuestras decisiones durante 4 años”.
Al crear un sistema de almacenamiento, tiene que pensar en componentes como la replicación, las copias de seguridad y la gestión de la capacidad. Cuando utilizamos Amazon DynamoDB y Amazon S3, simplificamos estos problemas porque AWS se encarga de varias de las tareas complejas”.
Jonathan Lee
Alki Team Tech Lead, Dropbox
Cómo crear sistemas de almacenamiento de metadatos calientes y fríos con las soluciones de AWS
El equipo de Alki, con la ayuda de AWS Solutions Architects, creó un sistema de almacenamiento de metadatos basado en un árbol de fusiones con estructura logarítmica (árbol LSM), que tiene dos capas de almacenamiento de datos: una capa superior para los metadatos activos y una capa inferior para los metadatos fríos. Amazon DynamoDB actúa como capa de almacenamiento activo y toma los datos del registro de auditoría en seis tablas de DynamoDB a una velocidad de entre 4000 y 6000 escrituras por segundo por tabla. Luego, cada una de estas tablas almacena entre 50 y 80 GB por día. Al final de cada día, el equipo descarga los metadatos de estas tablas en Amazon S3 para su almacenamiento permanente, después de lo cual se eliminan las tablas de Amazon DynamoDB.
A principios de 2019, menos de seis meses después de que el equipo de Alki eligiera Amazon DynamoDB y Amazon S3, Alki se encontraba en su fase beta de producción, ya que recopilaba todos los datos y proporcionaba un subconjunto de las lecturas. Para octubre de 2019, ya se habían migrado unos 300 TB de datos de registros de auditoría (lo que representa una cuarta parte de todos los datos almacenados en Edgestore) a Alki, que ya estaba en plena producción.
La escalabilidad de Amazon DynamoDB y Amazon S3 ayudó al equipo de Dropbox a completar la migración de datos en menos de 2 semanas. “Normalmente, se puede diseñar un sistema con una escala 10 veces superior a la que cabría esperar en estado estable”, explica Lee. “Sin embargo, podríamos escalar entre 100 y 1000 veces en AWS sin diseñar el sistema con antelación”. El equipo de Alki esperaba que el estado estable fuera de 4000 consultas por segundo, pero pudo suministrar Amazon DynamoDB para 600 000 consultas por segundo durante la migración.
Según Lee, los arquitectos de soluciones de AWS brindaron un soporte de primer nivel al equipo de Alki durante toda la migración. “Solo podemos decir cosas positivas sobre nuestra interacción con el equipo de AWS que trabaja en Alki. Siempre ha sido muy proactivo a la hora de ayudarnos a encontrar problemas, señalarnos cómo podemos acelerar las cosas o identificar las áreas en las que deberíamos tener más cuidado desde el punto de vista operativo”, afirma Lee. El equipo de Alki y los arquitectos de soluciones de AWS pudieron mantener una comunicación constante a través de canales en tiempo real. Y el equipo de Alki seguirá cosechando los beneficios de esa colaboración a través de los servicios gestionados de AWS. “Ejecutar un sistema de forma duradera requiere experiencia, y nosotros no teníamos esa experiencia”, afirma Stas Ilinskiy, ingeniero de software del equipo de Alki. “Sin embargo, al usar Amazon DynamoDB, también contamos con las personas con la experiencia necesaria para ejecutarlo”.
Con Amazon DynamoDB y Amazon S3, Alki le ahorró millones de dólares a Dropbox en costos de expansión y redujo considerablemente los costos en gigabytes por usuario. La tienda Edgestore de Dropbox les costaría a los usuarios 5,5 veces más que a Alki por gigabyte de usuario al año.
Cómo continuar creando una experiencia de almacenamiento de usuario superior
El equipo de Alki está estudiando cómo podría utilizar Amazon EMR para descargar de forma más eficiente los datos de Amazon DynamoDB a Amazon S3, un proceso que actualmente gestiona el propio sistema de procesamiento por lotes de Dropbox. Además, para ahorrar aún más con Alki, en octubre de 2020, Dropbox migró otra base de datos con 300 TB de metadatos inactivos a Alki desde Edgestore. Esto sienta las bases para que Dropbox utilice Alki en el futuro para optimizar y reducir aún más los costos: la empresa podría utilizarlo como un almacén de metadatos inactivo de uso general. “En lugar de trasladar casos de uso específicos, ¿podríamos integrar Alki con Edgestore y mover datos de forma transparente entre ambas?”, pregunta Lee. “Esa es la próxima visión”.
Al utilizar Amazon DynamoDB y Amazon S3, el equipo de Alki pudo lanzar rápidamente un almacenamiento de metadatos escalable y duradero, lo que supuso un enorme ahorro de costos para Dropbox. Los servicios gestionados que ofrece AWS hacen que el mantenimiento de este almacenamiento sea una opción sostenible a largo plazo. La solución también le ha permitido a Dropbox lanzar varios proyectos que no pudo lanzar en Edgestore. “Toda la alta dirección siguió muy de cerca todo el proyecto Alki”, afirma Lee. “Estamos muy satisfechos con el rendimiento de Alki y, por lo tanto, con el rendimiento de Amazon DynamoDB y Amazon S3”.
Información sobre Dropbox
Dropbox, con sede en San Francisco, ofrece un lugar para mantener la vida organizada y mantener el trabajo en marcha. Con más de 600 millones de usuarios registrados en 180 países, nuestro objetivo es diseñar una forma de trabajar más inteligente.
Servicios de AWS utilizados
Amazon S3
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en el sector.
Amazon DynamoDB
Amazon DynamoDB es una base de datos de clave-valor y documentos que ofrece rendimiento en milisegundos de un solo dígito a cualquier escala.
Más información »
Amazon EMR
Amazon EMR es la plataforma de macrodatos en la nube líder en el sector destinada al procesamiento de grandes volúmenes de datos mediante el uso de herramientas de código abierto, como Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi y Presto.
Más información »
Más historias de clientes de software e Internet
Comenzar
Organizaciones de todos los tamaños y de todos los sectores transforman sus negocios y cumplen sus misiones todos los días con AWS. Contacte nuestros expertos y comience hoy mismo su propia jornada en AWS.