- Lancé en juillet 2023, Threads a enregistré 100 millions d’inscriptions lors de ses cinq premiers jours
- Une petite équipe d’ingénieurs agile a construit Threads avec seulement cinq mois de travail technique
- La montée en charge sans friction observée pendant l’afflux massif d’inscriptions est le résultat de plus de dix ans d’efforts en développement d’infrastructure et de produits
- Il ne s’agit pas d’une infrastructure construite spécialement pour Threads, mais de l’utilisation d’une infrastructure déjà mise en place pour les nombreux produits de Meta
- En pratique, un très grand nombre de composants d’infrastructure sont utilisés, mais les plus importants présentés ici sont ZippyDB, le store distribué clé-valeur, et Async, la plateforme de fonctions serverless asynchrones
ZippyDB : extension du keyspace pour Threads
- ZippyDB est une base de données distribuée clé/valeur construite dès le départ sur l’infrastructure de Meta, sous la forme d’un service entièrement managé sur lequel les ingénieurs peuvent développer
- Les keyspaces hébergés sur ZippyDB peuvent être redimensionnés assez facilement à la hausse comme à la baisse, et être déployés de façon flexible sur plusieurs data centers
- Pour le stockage du graphe social, Meta utilise TAO (The Associations and Objects), basé sur MySQL
- ZippyDB est l’équivalent côté clé/valeur de MySQL, et sert pour les compteurs, le ranking et l’état des feeds, la recherche, etc.
Optimisation de ZippyDB et lancement du produit
- Le protocole de resharding de ZippyDB permet d’augmenter rapidement le facteur de sharding des cas d’usage de ZippyDB sans impact sur les clients, tout en maintenant une cohérence et une exactitude complètes
- Le resharding est réalisé sans interruption de service en provisionnant un nouvel ensemble de shards physiques et en installant un nouveau mapping logique-physique des shards côté client via un changement de configuration à chaud
- Les opérations de resharding ont été conçues pour pouvoir s’étendre horizontalement, ce qui permet d’accélérer la vitesse de resharding lorsque c’est nécessaire, comme pour le lancement de Threads
- Une série d’outils d’urgence pour les opérateurs a été développée afin de gérer facilement une croissance soudaine de certains cas d’usage
Async : extension de l’exécution des workloads pour Threads
- Async (ou XFaaS) est une plateforme de fonctions serverless qui permet aux ingénieurs de réduire le délai entre l’idée d’une solution et son déploiement en production
- Async traite aujourd’hui des milliers de milliards d’invocations de fonctions par jour et prend en charge plusieurs langages de programmation, dont HackLang, Python, Haskell et Erlang
- La plateforme abstrait les détails liés au déploiement, à la mise en file, à la planification, à la montée en charge, à la reprise après sinistre et à la préparation, afin que les développeurs puissent se concentrer sur la logique métier essentielle
- Async est principalement utilisé pour les tâches pouvant être exécutées de quelques secondes à plusieurs heures plus tard, sans perturber l’expérience utilisateur
- Dans Threads, Async a joué un rôle clé pour accélérer la création de communauté en permettant aux utilisateurs de suivre sur Threads les personnes qu’ils suivaient déjà sur Instagram
- Il a fallu une capacité de traitement importante pour absorber 100 millions d’utilisateurs en cinq jours, et Async a absorbé proprement la hausse de charge en la mettant en file pour une exécution contrôlée
À la croisée de l’infrastructure et de la culture
- Le développement rapide de Threads, en seulement cinq mois de travail technique, illustre bien la force de l’infrastructure et de la culture d’ingénierie de Meta
- Les produits de Meta s’appuient sur une infrastructure partagée éprouvée de longue date, ce qui permet aux équipes produit d’avancer vite et de faire monter rapidement en charge les produits qui réussissent
- Cette infrastructure est fortement automatisée : en dehors des efforts nécessaires pour sécuriser de la capacité à court terme, la redistribution automatique de la charge, l’équilibrage et l’extension se font de manière fluide et transparente
- Meta cultive une culture d’ingénierie orientée vitesse, où les ingénieurs travaillent de façon collaborative avec un fort sens de la responsabilité pour atteindre efficacement des objectifs communs à grande échelle
3 commentaires
Trop stylé
C’est reconnu~