- Threads wurde im Juli 2023 gestartet und erreichte in den ersten fünf Tagen 100 Millionen Registrierungen
- Ein kleines, agiles Engineering-Team baute Threads mit nur fünf Monaten technischer Arbeit
- Die reibungslose Skalierung während des Ansturms bei den Registrierungen ist das Ergebnis von mehr als zehn Jahren Arbeit an Infrastruktur und Produktentwicklung
- Es wurde keine speziell für Threads entwickelte Infrastruktur verwendet, sondern Infrastruktur, die bei Meta bereits für zahlreiche Produkte aufgebaut worden war
- Tatsächlich kam eine enorme Menge an Infrastruktur zum Einsatz; vorgestellt werden jedoch vor allem der verteilte Key-Value-Store ZippyDB und die asynchrone serverlose Funktionsplattform Async
ZippyDB: Skalierung des Keyspace für Threads
- ZippyDB ist eine verteilte Key-Value-Datenbank, die von Grund auf auf Basis von Metas Infrastruktur entwickelt wurde, und ein vollständig verwalteter Service, auf dem Engineers aufbauen können
- In ZippyDB gehostete Keyspaces lassen sich relativ einfach hoch- und herunterskalieren und flexibel über mehrere Rechenzentren hinweg bereitstellen
- Als Social-Graph-Speicher wird das auf MySQL basierende TAO (The Associations and Objects) verwendet
- ZippyDB ist das Key-Value-Gegenstück zu MySQL und wird für Counter, Feed-Ranking/-Status, Suche und mehr eingesetzt
Optimierung von ZippyDB und Produkt-Launch
- Mit dem Resharding-Protokoll von ZippyDB lässt sich der Sharding-Faktor für ZippyDB-Anwendungsfälle schnell erhöhen, ohne Auswirkungen auf Clients und bei vollständiger Konsistenz und Korrektheit
- Durch das Provisionieren eines neuen Satzes physischer Shards und das Installieren neuer logisch-physischer Shard-Zuordnungen für Clients über Live-Konfigurationsänderungen kann Resharding ohne Downtime durchgeführt werden
- Die Resharding-Operationen wurden so entworfen, dass sie sich horizontal skalieren lassen, sodass sich die Resharding-Geschwindigkeit bei Bedarf wie zum Launch von Threads erhöhen lässt
- Es wurde eine Reihe von Notfall-Operator-Tools entwickelt, um plötzliche Wachstumsschübe bei Anwendungsfällen einfach bewältigen zu können
Async: Skalierung der Workload-Ausführung für Threads
- Async (oder XFaaS) ist eine serverlose Funktionsplattform, die Engineers dabei hilft, die Zeit von der Lösungsidee bis zum Deployment in Produktion zu verkürzen
- Async verarbeitet derzeit täglich Billionen von Funktionsaufrufen und unterstützt verschiedene Programmiersprachen wie HackLang, Python, Haskell und Erlang
- Es abstrahiert die Details von Deployment, Queueing, Scheduling, Skalierung, Disaster Recovery und Bereitschaft, damit sich Entwickler auf die zentrale Business-Logik konzentrieren können
- Async wird hauptsächlich für Aufgaben verwendet, die ohne Beeinträchtigung der User Experience einige Sekunden bis mehrere Stunden später ausgeführt werden können
- Es spielt in Threads eine wichtige Rolle dabei, den Aufbau der Community schnell zu unterstützen, indem Nutzer in Threads auch den Personen folgen können, denen sie auf Instagram bereits folgen
- Um in fünf Tagen 100 Millionen Nutzer zu bewältigen, war erhebliche Verarbeitungskapazität nötig; Async absorbierte die erhöhte Last elegant und stellte sie für eine kontrollierte Ausführung in Queues ein
Wo Infrastruktur und Kultur zusammenkommen
- Die schnelle Entwicklung von Threads innerhalb von nur fünf Monaten technischer Arbeit zeigt die Stärke von Metas Infrastruktur und Engineering-Kultur deutlich
- Metas Produkte nutzen gemeinsam genutzte Infrastruktur, die sich über lange Zeit in Tests bewährt hat, sodass Produktteams sich schnell bewegen und erfolgreiche Produkte rasch skalieren können
- Diese Infrastruktur ist hochgradig automatisiert, sodass mit Ausnahme der Bemühungen zur kurzfristigen Bereitstellung von Kapazität die automatische Umverteilung von Workloads, Load Balancing und Skalierung nahtlos und transparent erfolgen
- Meta verfolgt eine schnell agierende Engineering-Kultur, in der Engineers mit starkem Ownership-Gedanken zusammenarbeiten, um große gemeinsame Ziele effizient zu erreichen
3 Kommentare
Verdammt cool
Verstanden~