Dropbox
Comment Dropbox a migré plus de 500 Po de données depuis Amazon S3
Dropbox, qui s’est longtemps appuyé sur l’infrastructure de stockage d’Amazon AWS pour ses services, a décidé de migrer l’essentiel de ses données sur sa propre infrastructure de stockage, essentiellement pour des raisons de coûts.
Depuis sa création, DropBox s’est appuyé sur l’infrastructure de stockage d’Amazon AWS (en l’occurrence sur le service S3) pour le stockage des centaines de milliards de documents que lui confient ses quelque 500 millions d’utilisateurs (cap franchi en mars 2016). Mais récemment, la société s’est lancée dans un vaste marathon visant à s’extirper du stockage Cloud d’Amazon pour stocker ses données sur sa propre infrastructure.
Le pari de Dropbox (et ce sera sans doute un pari gagnant au vu des marges affichées par Amazon AWS) était de réduire fortement ses coûts d’infrastructure en s’appuyant sur son propre stockage, mais aussi de pouvoir réaliser des optimisations techniques qui n’auraient pas été possibles en utilisant une infrastructure qu’il ne contrôle pas.
Bref, après avoir goûté aux joies du stockage en cloud, DropBox a fini par constater que sa taille lui permettait de développer un système mieux adapté à ses besoins et surtout bien moins coûteux.
Selon plusieurs experts, une telle approche est toutefois à aborder avec prudence et n’est envisageable que pour de très grands clients devant stocker au moins une dizaine de Pétaoctets de données. Mais c’est aussi un avertissement sans frais aux grands comptes disposant déjà de plusieurs Pétaoctets de données et tentés par l’aventure du cloud.
Elle montre en effet qu’avec un peu d’innovation, de courage et de prise de risque, il est possible de bâtir une infrastructure performante, adaptée à ses besoins et surtout bien moins coûteuse que celle des fournisseurs de cloud.
L’aventure Dropbox, montre enfin qu’il est possible si nécessaire de sortir du cloud, ce qui est aussi un enseignement précieux pour ceux qui s’inquiète de la réversibilité des données dans les nuages.
Magic Pocket : une infrastructure de stockage objet massive taillée sur mesure
Au cours des trois dernières années, Dropbox s’est lancé dans la mise en œuvre de ses propres clusters de serveurs de stockage en s’appuyant sur l’expertise d’une équipe d’ingénieurs venus de ses propres rangs mais aussi de Facebook, de Google et de Twitter.
Le résultat : la firme a réussi à déplacer plus de 500 Petaoctets de données hors du périmètre d’Amazon (soit environ 90 % de ses données). Pour mémoire, et à supposer que Dropbox ait payé environ 1 cent par Go stocké, cela veut dire 60 M$ d’économisé par an en stockage pur sans compter le prix facturé par Amazon pour le transit de données, pour les I/O et pour les requêtes, ce qui peut rapidement ajouter 25 à 33% à la facture de stockage.
Comme l’explique James Cowling, le patron de l’équipe stockage de DropBox, sur le blog de la société, « nous savions en nous lançant dans le projet « Magic Pocket » que nous allions construire l’un des rares systèmes au monde capable de stocker des données à l’échelle de l’exaoctet. Nous savions dès le départ qu’il nous faudrait partir de zéro car il n’existe rien dans la communauté libre qui a fait la preuve de sa capacité à fonctionner de façon fiable à notre échelle ».
Selon James Cowling, il existe peu d’entreprises qui dans le monde ont les mêmes besoins en matière de stockage que DropBox. « Et il y en a encore moins qui ont des standards aussi exigeants que les nôtres en matière de sécurité et de fiabilité. Dès le début, nous avons mis ces exigences au cœur de notre design afin d’assurer que le système stocke les données de façon fiable et sûre et avec un très haut niveau de disponibilité ».
« Les données sont chiffrées au repos et le système est conçu pour une durabilité annuelle de 99,9999999999 % et une disponibilité de 99.99 % » [soit des niveaux similaires à ceux de S3 et des grands services de stockage Cloud comme ceux de Google ou Microsoft, N.D.L.R.].
Pour atteindre ces objectifs, DropBox a choisi de s’appuyer sur deux langages, bien adaptés aux systèmes massivement distribués. Le premier est Rust, conçu par Mozilla. Le second est Go, développé par Google, et déjà utilisé massivement par Dropbox en interne.
Le cœur du système est un système de stockage objet qui s’appuie sur l’erasure coding pour la distribution des données entre les nœuds de stockage (pour se protéger de la perte de disques ou de nœuds) et sur la réplication systématique entre zones pour se protéger contre la défaillance complète d’un datacenter.
Une description plus détaillée de l’architecture est proposée sur le blog de DrobBox.
Côté matériel, la société a choisi de concevoir ses propres serveurs de stockage, nom de code Diskotech. Selon nos informations, chaque système Diskotech se présente sous la forme d’un couple de châssis rack de 3,5U de 19 pouces de large et de 42 pouces de profondeur à même de stocker un peu plus de 1 Po. De façon intéressante, les quelques photos montrées par DropBox, montrent que la firme a utilisé des châssis racks équipés de disques 2,5 pouces placés en position verticale.
Pour atteindre les capacités annoncées par la firme, un tel système utilise d’après nos calculs quelque 192 disques (8 rangées de 24 disques 2,5 pouces) d’une capacité unitaire de 3 To (une capacité disponible chez Toshiba depuis janvier 2015). Cela permet de loger les 8 Po de données annoncés par DropBox - 14 Diskotech et l’infrastructure réseau associée — dans des racks de grande hauteur (51 ou 52 U).
Un développement lancé en 2013 pour des premiers déploiements en 2015
La migration de DropBox a été préparée méticuleusement en prévoyance de l’explosion des besoins de la société (après tout DropBox ne stockait « que » 40 Petaoctets de données en 2012).
Le projet Magic Pocket a réellement pris son envol à l’été 2013, lorsque la firme a bâti un premier prototype dans le cadre d’un PoC. L’objectif était alors de concevoir une architecture logicielle capable d’évoluer pour devenir l’un des plus grands systèmes de stockage de données de la planète ainsi que les outils d’automatisation permettant à une petite équipe de maintenir cette énorme quantité de données et d’équipements.
En août 2014, un premier pas est franchi lorsque DropBox commence à ingérer certaines des données de ses clients sur son nouveau système et à les répliquer entre deux datacenters situés dans deux zones géographiques différentes [le système final est composé de trois zones nord-américaines — Ouest, Centre et Est – entre lesquelles DropBox réplique ses données afin de garantir une disponibilité optimale].
Pendant près de six mois, DropBox va continuer à ingérer des données dans ce nouveau système et à les utiliser pour servir les besoins de ses utilisateurs, tout en continuant à maintenir une copie dans Amazon S3 au cas où un problème se produirait.
Finalement satisfait de l’expérimentation, DropBox commence à basculer des utilisateurs exclusivement sur le nouveau système le 27 février 2015.
La firme se donne alors un objectif ambitieux : faire monter rapidement en puissance l’infrastructure de Magic Pocket pour migrer près de 500 Po de données depuis Amazon en six mois. L’enjeu est de taille, il faut approvisionner des serveurs et des disques, les câbler, les installer et les raccorder à un rythme soutenu afin de soutenir le torrent de données en provenance d’Amazon.
Au pic de l’activité, c’est près d’un demi-terabit de données par seconde qui se déversent dans Magic Pocket (ce qui, en tenant compte de l’impact protocolaire, signifie que Dropbox ingère alors jusqu’à 4 Po de données par jour depuis Amazon S3 – tout en gérant en parallèle le trafic provenant des utilisateurs déjà migrés).
« Côté matériel, se souvient James Cowling, la limitation pour nous était le nombre de racks que nous pouvions simultanément charger sur notre dock de chargement à un moment donné ».
Finalement, Dropbox atteint son objectif le 7 octobre 2015. Plus de 500 Po de données ont été migrées sur l’infrastructure Magic Pocket avec 23 jours d’avance sur le planning. Le tout sans interruption de service majeure et surtout sans aucune perte de données.
Vers la barre du multi-exaoctet
Si tout se passe comme prévu, l’infrastructure devrait allègrement passer la barre du multi exaoctet cette année puis poursuivre sa croissance à un rythme exponentielle en 2017.
DropBox n’en a toutefois pas tout à fait fini avec Amazon.
La société entend continuer à s’appuyer sur l’infrastructure cloud du géant US pour délivrer certains de ses services dans des zones ou la localisation des données est importante. Par exemple DropBox va continuer à travailler avec AWS pour les besoins des clients européens de DropBox for Business depuis les datacenters d’Amazon à Francfort. L’ensemble des données des clients entreprises européens de la firme sera ainsi basculé à Francfort dans le courant du 3e trimestre 2016. En attendant, peut-être, le jour où Dropbox ouvrira ses propres centres de données sur le Vieux Continent.