Chaque seconde, Twitter traite environ 6 000 messages, soit plus de 500 millions par jour et environ 3,5 milliards par semaine. « Mais, il est arrivé que le réseau ait à traiter jusqu'à 143 000 messages par seconde, comme ce fut le cas lors de la diffusion du film de Hayao Miyazaki, « Le Château dans le ciel », au Japon un peu plus tôt cette année », comme l'a raconté hier le responsable de l'informatique Open Source de Twitter, Chris Aniszczyk, pendant la conférence LinuxCon Europe qui se tient actuellement à Édimbourg (du 21 au 23 octobre). « La prise en charge de cette énorme quantité de messages n'a pas été facile », a-t-il ajouté. Au départ, en 2006, Twitter utilisait la plateforme monolithique Ruby on Rails et non une structure distribuée. À l'époque, c'était suffisant, parce que la demande était raisonnable. Mais, la situation est devenue compliquée à partir de 2008. L'augmentation croissante des messages échangés a provoqué de nombreuses interruptions de service, des « Fail Whales » à répétition, comme dit Twitter. « Chaque fois, les ingénieurs du réseau social ont réussi à affronter la charge avec quelques rustines », a ajouté Chris Aniszczyk. Mais les choses sont vraiment devenues problématiques lors de la Coupe du Monde de football de 2010, qui a été à la fois un point bas et un point haut pour Twitter. Le service était capable de traiter 3 000 messages par seconde, mais au-delà, ça devenait difficile. « D'un point de vue technique, c'était très pénible parce que toutes les ressources étaient mobilisées », a déclaré le responsable de l'informatique Open Source de Twitter. « Chaque fois qu'un but était marqué ou que l'arbitre donnait un carton rouge ou jaune, le site tombait », a-t-il ajouté. Il fallait donc que ça change. Twitter a compris que le problème venait du code de base qui servait à tout gérer, depuis les données brutes de la base de données jusqu'au rendu graphique du site. « Pour maintenir le service, la seule chose que nous faisions était d'ajouter des machines pour compenser. Mais ce n'était pas la meilleure solution, car cela coûtait cher », a expliqué Chris Aniszczyk.

Une refonte de l'architecture devenue nécessaire

Après la Coupe du Monde de 2010, Twitter a commencé à travailler sur une refonte de son architecture. Ses efforts ont finalement commencé à payer à partir de l'été dernier. Au lieu d'améliorer le système et de déployer de nouvelles fonctionnalités, les ingénieurs de Twitter sont partis « à la chasse à la baleine » pour résoudre des défaillances spécifiques, ce qui n'était pas vraiment la meilleure solution. Finalement, Twitter a compris qu'il était temps d'investir dans de nouvelles infrastructures. « Le réseau social a doublé sa JVM (Java Virtual Machine), ce qui lui a permis de répartir la tâche de l'application monolithique sur différents services, dont un service pour traiter spécifiquement les messages », a encore ajouté Chris Aniszczyk. « L'ingénierie est maintenant en place avec des équipes autonomes qui peuvent fonctionner indépendamment ».

Pour réduire les coûts et le nombre de machines, Twitter s'est également tourné vers le projet de recherche Apache Mesos mené à l'origine par l'Université de Berkeley, en Californie. Mesos est un gestionnaire de cluster qui permet aux utilisateurs d'exécuter plusieurs processus sur la même machine. « Le matériel est donc utilisé de manière plus efficace et cela permet d'économiser de l'argent », a déclaré le responsable de Twitter. Le réseau est également allé chercher d'autres outils comme Netty, qui permet de créer des serveurs de protocole très performants, et Scalding, qui facilite l'écriture de tâches pour le big data. « Twitter n'a pas pu complètement s'affranchir du framework d'application Ruby on Rails. Mais ces outils, plus le passage de l'infrastructure de base à la JVM, ont permis au réseau social d'éviter les interruptions de service et d'améliorer les performances », a déclaré Chris Aniszczyk. « Cela a aussi permis à l'entreprise de grandir », a-t-il ajouté. « Twitter compte plus de 2 000 salariés, dont environ la moitié sont des ingénieurs », a-t-il déclaré.

Une meilleure gestion des ressources disponibles

De ces différentes expériences, Twitter a notamment retenu que le choix de l'Open Source pour son infrastructure était judicieux. « C'est là que l'on trouve aujourd'hui les meilleurs logiciels », a affirmé Chris Aniszczyk. Selon lui, c'est également une bonne chose de contribuer à la communauté Open Source, ce que fait Twitter avec twitter.github.io qui sert de bibliothèque pour une centaine de dépôts publics. « Le changement incrémental a aussi été une bonne idée, car il augmente les chances de réussite », a-t-il dit, ajoutant que les entreprises devraient également être attentives à ce que font les universités.

« Le parcours accompli par Twitter pour transformer son infrastructure de base peut servir d'exemple. Il montre aux entreprises comment tirer profit de la technologie Open Source », a déclaré Jim Zemlin, directeur exécutif de la Linux Foundation. « L'Open Source permet de maintenir ses coûts, mais aussi de répondre très rapidement aux défis de mise à l'échelle des infrastructures », a-t-il ajouté. « De nombreuses entreprises, dont de grandes sociétés comme Google, Amazon et Facebook, ont opté pour des plates-formes informatiques Open Source HyperScale. Les entreprises peuvent aussi apprendre de ces exemples », a-t-il ajouté.