Hallo liebe Leute und @wien.rocks User*innen!
Diesmal wollen wir die zukünftige Infrastruktur etwas detaillierter präsentieren. Der Plan ist ja, von der bestehenden Installation, die alle Komponenten, die zum Betrieb einer Mastodon-Instanz notwendig sind, monolithisch auf einem Server vereint, zu einer skalierenden Platform zu migrieren.
Der "Umzug" ist daher nicht so trivial, wie man denken möchte - es genügt nicht, die bestehende Installation einfach auf einen stärkeren Server zu "kopieren", weil Mastodon so nicht skaliert[1][2][3][4][5][6]. Das Hauptproblem ist hier die technologische Basis, auf der Mastodon basiert, nämlich Ruby bzw. die Ruby Virtual Machine, in der der ganze Applikationsstack läuft.
Stattdessen gilt es, alle zu skalierenden Komponenten zu isolieren und in einer Form zu betreiben, die sich horizontal skalieren lassen. Bei Mastodon sind das in erster Linie:
- Sidekiq Job Queues ("Middleware")
- Puma Web frontend worker ("Webserver")
Diese sind für die Präsentation der Webinhalte sowie der Abarbeitung von jeder Art von Nutzerinteraktion (Posten, Bildupload, etc.) zuständig.
Dankenswerterweise veröffentlichen die Programmierer von Mastodon sogenannte Applikationscontainer, die sich dann auf beliebigen Containerplattformen (cloud sowohl als on-premise) in Betrieb nehmen lassen. Wir haben uns hier für OpenShift (bzw. die frei verfügbare Variante OKD) entschieden, und dieses auf unserer neuen Infrastruktur in Betrieb genommen.
Infrastrukturlayout - Hardware
Als Basis dient ein sogenanntes "Bladechassis", das modular um Server erweitert werden kann, falls notwendig. Alle Komponenten wie z. B. Netzteile, Festplatten, Netzwerkmodule etc. sind hier redundant ausgeführt, um auch im Falle einer notwendigen Hardwarewartung einen unterbrechungsfreien Betrieb zu gewährleisten. Das Netzwerk ist zwischen allen Komponenten mit 10GbE-Komponenten verbunden, um Flaschenhälse bei der Bandbreite zu eliminieren.
Als Storage kommt ein ebenso redundant ausgelegtes Enterprise Storagesystem eines namhaften Anbieters zum Einsatz, das Datensicherheit und Verfügbarkeit garantiert.
Infrastrukturlayout - Software und vertikale Integration
Hier noch ein Überblick über die einzelnen Softwarekomponenten der Mastodon-Instanz @wien.rocks und deren Integration:
Viele Grüße und bis demnächst,
@b2c
PS: Falls ihr Fragen dazu habt kontaktiert uns gerne auf @wien.rocks:
Zitate