¿Qué servicio de almacenamiento en la nube utiliza Dropbox?

Dropbox originalmente usó AWS, pero se mudó de él (por múltiples razones) a su propia infraestructura interna.

De la publicación de 2016 que anuncia esto en el blog de ingeniería de Dropbox:

Hace años, llamamos a Dropbox un “Magic Pocket” porque fue diseñado para mantener todos sus archivos en un lugar conveniente. Dropbox ha evolucionado desde ese simple comienzo para convertirse en una de las plataformas de colaboración más potentes y ubicuas del mundo. Y cuando nuestra báscula requería construir nuestra propia infraestructura de almacenamiento dedicada, llamamos al proyecto “Magic Pocket”. Dos años y medio después, nos complace anunciar que ahora estamos almacenando y sirviendo más del 90% de los datos de nuestros usuarios en nuestra infraestructura personalizada.

A medida que las necesidades de nuestros usuarios y clientes seguían creciendo, decidimos invertir seriamente en la construcción de nuestro propio sistema de almacenamiento interno. Hubo un par de razones detrás de esta decisión. Primero, uno de nuestros diferenciadores clave de productos es el rendimiento. El almacenamiento interno nos permite personalizar toda la pila de extremo a extremo y mejorar el rendimiento para nuestro caso de uso particular. En segundo lugar, como uno de los principales proveedores mundiales de servicios en la nube, nuestro caso de uso para el almacenamiento en bloque es único. Podemos aprovechar nuestra escala y nuestro caso de uso particular para personalizar tanto el hardware como el software, lo que resulta en una mejor economía de la unidad.

La historia de la impresionante transición de Dropbox a una infraestructura y plataforma incorporadas se cubre ampliamente en Wired.


Dropbox lanzó recientemente algunos detalles de su infraestructura (en adelante, “Magic Pocket”). Realmente es ingeniería de vanguardia.

  • Magic Pocket está diseñado como un sistema de almacenamiento de bloques inmutable , con cada bloque almacenando fragmentos de archivos cifrados como máximo 4 MB que nunca se modifican posteriormente. Los bloques se agrupan en depósitos de aproximadamente 1 GB, y cada depósito se replica aún más en varias máquinas. Todas las ‘alteraciones’ se gestionan en un sistema separado llamado FileJournal, que actúa como una capa de abstracción sobre Magic Pocket. FileJournal gestiona la búsqueda y mantiene el estado.
  • Las máquinas en sí son servidores personalizados. Los archivos y las cargas recientes se manejan en unidades de disco duro para reducir la latencia; los nodos de la base de datos emplean unidades de estado sólido para mejorar el almacenamiento. Cada caja de almacenamiento puede almacenar hasta 8 petabytes de datos.
  • Las máquinas no participan en algoritmos de coordinación a consenso totalmente distribuidos. Siempre que sea posible, los sistemas centralizados (tablas MySQL fragmentadas gigantes para un índice de bloque que asigna bloques a cubos, por ejemplo) se emplean en un esfuerzo por mantener el diseño simple. Las abstracciones de nivel superior realizan un seguimiento de si una máquina está ‘abierta’, disponible solo para escritura, o ‘cerrada’.
  • La durabilidad, la prevención contra la pérdida real de datos, es un requisito fundamental, por lo que absolutamente todo se replica a nivel local y global. La replicación se maneja utilizando códigos de compresión de corrección de errores para minimizar la sobrecarga de datos y los errores en la replicación. Citar:

    Utilizamos una variante en la codificación de borrado Reed-Solomon que es similar a los Códigos de reconstrucción local , que nos permite codificar y replicar nuestros datos para una alta durabilidad con baja carga de almacenamiento y demandas de red. Si utilizamos un modelo de Markov para calcular nuestra durabilidad dadas las tasas de fallas de disco y los tiempos de reparación esperados en el peor de los casos, terminamos con una increíblemente alta 27 nueves de durabilidad . ¡Eso significa que de acuerdo con este modelo, un bloque dado en Magic Pocket es seguro con un 99.999999999999999999999999999% de probabilidad! [1]

    El blog de Dropbox en realidad menciona que sus requisitos de durabilidad son tales que las posibilidades de pérdida de datos debido al “impacto de un asteroide apocalíptico” deben ser mayores que las posibilidades de pérdida de datos de un solo cambio de bit. [2]

  • Existen mecanismos de verificación para garantizar que todos los datos sean precisos y no estén dañados por fallas del sistema en todos los niveles, hasta el punto de que exista un mecanismo de verificación para garantizar que otros mecanismos de verificación funcionen correctamente.

    Los mecanismos de verificación incorporan, entre otras cosas, verificaciones para garantizar que las eliminaciones de datos sean consistentes y realmente deseadas en lugar de maliciosas, así como verificaciones del estado de los sectores del disco en cada bloque para evitar fallas silenciosas. La arquitectura en torno a los mecanismos de verificación es extraordinariamente rápida: un mecanismo de verificación particular inspecciona más de un millón de bloques por segundo para garantizar que todos los datos se almacenen en el índice de bloque correcto.

  • Sus scripts de verificación ahora se duplican como módulos de prueba de unidad en un clúster provisional (¡que también sirve tráfico en vivo!). El código enviado a la puesta en escena debe sobrevivir una semana completa de verificación antes de pasar gradualmente a zonas de producción cada vez más grandes.

Y si todo eso no es lo suficientemente impresionante,

La mayor parte de MP fue construida por un equipo de menos de media docena de personas , lo que nos obligó a centrarnos en las cosas que importaban y desempeñó un papel importante en el éxito del proyecto.

(negrita mía)

Notas al pie

[1] Reloj de bolsillo: verificación de exabytes de datos

[2] Dentro del bolsillo mágico

Esta cita es del programa diario de ingeniería de software que tuvo lugar en mayo de 2016:

“Dropbox ha estado almacenando archivos en Amazon Web Services durante 8 años, y el negocio principal de Dropbox es almacenar archivos. Durante los últimos tres años, Dropbox ha estado trabajando en un proyecto para migrar su almacenamiento de archivos de Amazon Web Services a su propia infraestructura personalizada. . Magic Pocket es el nombre de la nueva capa de infraestructura de Dropbox, y le da a Dropbox más control y mejor economía “.

Aunque movieron su almacenamiento de archivos o de Amazon, supongo que todavía están usando AWS para algunos de sus servicios.