L'importance du groupe d'infrastructure pour l'avenir de Roblox
-
Notre groupe d'infrastructure conçoit, construit et gère les systèmes de stockage, de calcul, de réseau, de sécurité et de productivité qui font fonctionner la plateforme Roblox à l'échelle mondiale.
-
Ces systèmes doivent prendre en charge 77,7 millions* d'utilisateurs actifs quotidiens, plusieurs exaoctets de contenu, et plus de 250 millions de connexions simultanées, le tout réparti sur plus de 135 000 serveurs.
-
Chacune des actions de ce groupe a pour but de maximiser la fiabilité et l'efficacité de nos systèmes, et d'aider nos ingénieurs à être aussi productifs que possible.
À chaque instant, les ingénieurs de Roblox font appel à plus de 2 000 services qui fonctionnent sur notre infrastructure interne mondiale, hébergée sur le cloud. Notre plateforme répond à des millions de demandes de lecture et d'écriture, fait transiter des téraoctets de données et gère des dizaines de millions de requêtes HTTP. Quand nos 77,7 millions* d'utilisateurs actifs quotidiens se rendent sur Roblox, ils passent par plus de 250 millions de connexions simultanées.
C'est à cette échelle que les systèmes technologiques gérés par le groupe d'infrastructure de Roblox doivent fonctionner. Ce groupe, surnommé « Infra », conçoit, construit et gère nos systèmes de stockage, de calcul, de réseau, de sécurité et de productivité, ainsi que nos centres de données. L'objectif du groupe Infra est de proposer des systèmes fiables, simples à utiliser et pouvant s'adapter à toutes les échelles. Le groupe donne la priorité à trois critères :
-
Disponibilité - La fiabilité de nos systèmes.
-
Coût d'utilisation - L'efficacité de nos systèmes.
-
Productivité - La productivité des ingénieurs de Roblox lorsqu'ils travaillent au sein de l'infrastructure.
Pour citer Max Ross, chef du groupe Infra et vice-président de l'ingénierie : « Chacune de nos actions a pour but de nous faire progresser dans un ou plusieurs de ces trois domaines : disponibilité, coût d'utilisation et productivité. »
Chacune de nos actions a pour but de nous faire progresser dans un ou plusieurs de ces trois domaines : disponibilité, coût d'utilisation et productivité.
Résoudre de nouveaux problèmes chaque jour
Quand plusieurs millions d'utilisateurs rejoignent une expérience Roblox populaire après une grande mise à jour, un phénomène d'attroupement se produit, mais nos créateurs n'ont rien à craindre. En effet, la mission du groupe Infra est de faire en sorte que les ingénieurs de Roblox puissent bâtir une plateforme capable d'offrir à nos utilisateurs l'expérience la plus agréable et la plus stable qui soit. Pour ce faire, le groupe travaille avec des systèmes complexes et résout de nouveaux problèmes chaque jour.
Pourquoi ? Nous ne connectons pas des dizaines de millions d'utilisateurs actifs quotidiens à un système de gestion des transactions centralisé, ce qui est un problème déjà bien connu. Au lieu de cela, nous les connectons les uns aux autres en temps réel dans le monde entier. Au total, les milliers de services du groupe Infra fonctionnent sur plus de 135 000 serveurs répartis dans deux centres de données principaux, un grand nombre de centres secondaires aux quatre coins du monde, et quelques fournisseurs de cloud.
Disponibilité - La fiabilité de nos systèmes
Le temps que les utilisateurs passent sur Roblox est un facteur important pour notre réussite, et nous savons que plus l'infrastructure est fiable, plus les utilisateurs restent longtemps.
Nous visons un taux de fonctionnement mensuel de 99,99 %, ce qui signifie que nos systèmes ne peuvent pas perturber plus de 0,01 % du temps d'utilisation. Et bien entendu, nos ingénieurs s'attendent à ce que notre infrastructure de cloud interne fonctionne au moins aussi bien que celle de n'importe quel fournisseur. « Notre infrastructure doit fonctionner avec aussi peu d'incidents que possible », explique Danny Yuan, directeur technique, « pour permettre à nos ingénieurs de créer des produits qui feront le bonheur de nos utilisateurs. »
Notre infrastructure doit fonctionner avec aussi peu d'incidents que possible pour permettre à nos ingénieurs de créer des produits qui feront le bonheur de nos utilisateurs.
Pour atteindre cet objectif, nous faisons notamment en sorte que l'observabilité et la connectivité soient plus accessibles dans les applications qui permettent aux expériences Roblox de fonctionner. Nous déployons des sidecars Envoy Proxy en parallèle de chaque instance de service, et nous faisons des expériences avec eBPF pour observer l'état sous-jacent des connexions entre les proxys et les services externes. « Cela nous aide à mieux comprendre ce qui se passe, et surtout à réduire les pertes de paquets », explique Rob Cameron, directeur technique.
La panne d'Halloween
Une grande partie des efforts du groupe Infra en matière de sécurité découle de la panne de 73 heures qui a eu lieu en 2021. Ce moment a été déterminant pour notre approche, qui consiste à mettre en place une infrastructure robuste et à nous préparer pour le court terme et le long terme. « Ça a été un moment capital », raconte Max Ross. « Nous ne pouvions pas penser à autre chose tant que nous n'étions pas capables de garantir à tous les utilisateurs de Roblox que ça ne se reproduirait jamais. »
D'un monolithe Infra à 34 cellules
Coût d'utilisation (efficacité)
De nos jours, les sociétés de technologie créent rarement leur propre infrastructure de cloud, étant donné que les fournisseurs proposent déjà des outils essentiels comme le réseau, la gestion de flotte et ainsi de suite.
Cependant, compte tenu de notre taille et de notre structure décentralisée, il est moins coûteux pour nous d'avoir un cloud privé. Nous passons notre temps à identifier et surmonter les problèmes qui accompagnent la gestion de systèmes si complexes.
Pour pouvoir réaliser les économies souhaitées, nous devons bien réfléchir à la conception de nos systèmes. Nous devons veiller à ce que notre cloud privé mondial soit efficace afin de pouvoir investir davantage dans le soutien que nous apportons à notre communauté de créateurs et d'utilisateurs.
Nous faisons tout pour que les ingénieurs puissent aisément mettre au point des fonctionnalités efficaces à grande échelle. Dans le même temps, nous inventons des outils de production optimisés qui permettent aux petites équipes de travailler au sein d'une vaste infrastructure. « Les personnes qui ne font pas partie du groupe Infra ne sont pas toujours conscientes du fait que nous réinventons totalement presque chaque aspect de notre infrastructure », déclare Michael Wolf, directeur technique.
Il s'agit notamment de passer d'une configuration « bare metal » à une architecture à conteneurs sous Linux avec une structure de contrôle commune pour les centres de données principaux et secondaires. Cela permettra aux ingénieurs de Roblox d'avoir accès à un vaste éventail de nouveaux outils en open source. Il sera également plus facile d'exécuter plusieurs tâches simultanées sur les mêmes machines.
« Nous n'avons pas peur des gros défis », commente Andy Wilcox, directeur technique, au sujet du changement de systèmes de télémétrie, calcul et déploiement que le groupe Infra a récemment réalisé. « Ce sont des éléments essentiels auxquels nous avons pu nous attaquer parce que nous avons la motivation nécessaire. »
Ça ne se fait pas du jour au lendemain. Ça prendra des années, car on ne peut pas redémarrer Roblox ; il faut que les machines continuent de tourner. Il est donc nécessaire de reprogrammer manuellement les logiciels et de s'adapter aux nouveaux outils. « C'est comme changer les pneus d'une voiture alors qu'on est en train de rouler sur l'autoroute », explique Michael Wolf.
Productivité
Chaque jour, notre équipe d'ingénierie règle efficacement de gros problèmes à grande échelle et parvient à tirer un maximum de nos systèmes.
Pour arriver à ce résultat, nous recueillons régulièrement des données quantitatives et qualitatives sur la productivité de nos ingénieurs. Cela nous aide à identifier les problèmes qui peuvent être réglés à l'aide de solutions tierces ou de nos propres outils.
Par exemple, nous avons déployé en mars un tableau de bord afin d'arranger ce qui ne plaisait pas aux ingénieurs dans notre processus d'examen de code. Cet outil leur permet de suivre les demandes de fusion à examiner en fonction d'un grand nombre de critères définis par nos soins. Il unifie également les tâches d'examen de code, et permet de programmer des notifications. Depuis que ce tableau de bord est utilisé à grande échelle, la durée de traitement des demandes P75 a diminué de 30 %.
Évidemment, une bonne fonctionnalité de productivité se doit d'être stable et adaptable ; par conséquent, nous faisons constamment des investissements à long terme dans les systèmes de base.
C'est en accord avec deux des valeurs de Roblox : adopter une vision à long terme et faire avancer les choses. Le groupe d'infrastructure fait toujours preuve de pragmatisme pour augmenter les performances et la productivité de ses clients. S'ils ont besoin d'un service que nous ne proposons pas, nous pouvons envisager des solutions tierces intégrées aux outils internes de notre cloud privé.
Les solutions rapides pour assurer le fonctionnement sur le court terme sont tentantes, mais elles doivent être contrebalancées par une ingénierie axée sur la prévention.
En fin de compte, la maximisation de la productivité est bénéfique pour l'entreprise et nous permet de terminer nos projets pour atteindre nos objectifs commerciaux.
Une culture qui encourage l'exploration
Notre objectif est de permettre à un milliard de personnes de se retrouver dans un environnement sûr et civil ; nous pouvons être certains que d'importants obstacles techniques se dresseront toujours sur notre route. Nous en avons déjà surmonté beaucoup, et nous avons énormément appris. Mais nous avons le regard tourné vers une infrastructure encore plus adaptable, et sur des systèmes toujours moins complexes.
Ces objectifs contradictoires nous permettront d'apprendre de nombreuses nouvelles leçons au fil des années à venir, surtout avec l'utilisation toujours plus importante de l'IA. Nous savons que si nous voulons atteindre nos buts, les systèmes d'infrastructure vont devoir évoluer considérablement.
Pour les ingénieurs du groupe Infra, chaque projet pourrait représenter une transformation majeure pour l'entreprise, et le travail de chacun est important. « Dans le groupe Infra, on peut accomplir des choses vraiment importantes pour Roblox et les utilisateurs, et il n'y a pas vraiment de limites », résume Michael Wolf.
Donner la priorité au client
En fin de compte, notre mission est d'aider les autres ingénieurs de Roblox à être toujours plus efficaces. Nous devons rapidement apprendre et trouver des solutions.
C'est un défi que nous relevons sans hésiter. « Je veux tout faire pour que nous puissions être utiles à Roblox aujourd'hui, ce trimestre et cette année », déclare Max Ross. « Je veux aussi que nous bâtissions des fondations qui pourront encore nous servir pendant cinq ou dix ans. »
* Au cours des trois mois précédant le 31 mars 2024