Technologie · 3 min read · Dec 10, 2025

Genesis, Ein Neues Tool zur Automatisierung von Rechenzentren von Tumblr

Tumblr veröffentlicht ein neues Tool zur Automatisierung von Rechenzentren - “GENESIS”

Genesis, ein Tool zur Automatisierung von Rechenzentren, wurde von Tumblr veröffentlicht, das den Prozess der Entdeckung neuer Maschinen und der Berichterstattung von Hardwaredetails an Collins, einem Teil von Tumblrs Inventarverwaltungssystem, optimiert. Das Tool ist sehr praktisch für die Hardwarekonfiguration, wie das Ändern von BIOS-Einstellungen und das Konfigurieren von RAID-Karten, bevor ein Betriebssystem auf den Host bereitgestellt wird.

Genesis wurde von den Site Reliability Engineering- und Datacenter-Teams bei Tumblr entwickelt und ist jetzt unter der Apache-Lizenz als Open Source verfügbar und auf Github erhältlich.

Auch lesen - Beste Tumblr-Alternativen

Das Tool umfasst ein abgespecktes Linux-Image, das für das Booten über PXE geeignet ist, und eine Ruby-basierte domänenspezifische Sprache (DSL) zur Beschreibung von Aufgaben, die auf dem Host ausgeführt werden sollen. Die Genesis DSL erstellt die Aufgabe basierend darauf, welche Pakete installiert sind und Befehle einfach ausgeführt werden. Beispiele für Aufgaben sind die TimedBurnin-Aufgabe, die einen Stresstest des Systems durchführt, um Hardwarefehler auszuschließen, bevor es in die Produktion geht, und BiosConfigrR720, die das BIOS auf Dell R720s genau so einrichtet, wie wir es wollen.

Es gibt einige Systeme, die neben Genesis vorhanden sein müssen, um eine erfolgreiche Bereitstellung zu gewährleisten. Diese sind

  • ein DHCP-Server,
  • ein TFTP-Server,
  • ein HTTP-Server,

Das INSTALL.md-Projekt von Genesis auf Github bietet weitere Anweisungen und enthält auch die erforderlichen Serverkonfigurationsoptionen.

Wenn eine Maschine bootet, teilt der DHCP-Server der PXE-Firmware mit, dass sie in iPXE booten soll. Das iPXE wird dann verwendet, um eine Liste von Menüoptionen anzuzeigen, die von einem Remote-Server abgerufen werden. Wenn der Benutzer eine Auswahl getroffen hat, wird der Genesis-Kernel geladen und initrd (vom Dateiserver) zusammen mit Parametern in der Kernel-Befehlszeile. Sobald das Genesis-Betriebssystem geladen ist, ruft der genesis-bootloader ein Ruby-Skript ab und führt es aus, das eine zweite Phase beschreibt, in der wir Gems, einige Basis-RPMs installieren und unsere Aufgaben von einem Remote-Server abrufen. Schließlich führen wir die relevanten Aufgaben aus.

Lassen Sie uns ein Beispiel nehmen; betrachten Sie einen brandneuen Server, der hochfährt. Er sendet eine DHCP-Anfrage und lädt das iPXE-Menü. In diesem Fall mussten wir uns daran erinnern, dass wir die MAC-Adresse vorher nicht kennen, also muss es sich um eine neue Maschine handeln. Wir booten dann Genesis in den Entdeckungsmodus, wo die Aufgaben, die es ausführt, geschrieben sind, um alle Hardwareinformationen abzurufen, die wir benötigen, und sie an Collins zu melden. In unserem Setup umfasst dies Informationen wie Festplatten und deren Kapazität sowie die Anzahl der CPUs, aber wenn Sie detaillierte Informationen zu Servicetags, den verwendeten Speichermodulen, den Namen der Switch-Ports erhalten möchten, müssen wir dies mit 48 Stunden Hardware-Stresstest unter Verwendung der TimedBurnin-Aufgabe nachverfolgen.

Die Projektwebseite von Collins auf Github besagt, dass diese Anwendung sehr wichtig ist, da sie eine Quelle der Wahrheit und des Wissens für die gesamte Infrastruktur von Tumblr bietet. Alle Daten, die mit den Produktionsumgebungen von Tumblr verbunden sind, werden in Collins gespeichert und codiert, und diese Daten werden verwendet, um die gesamte Automatisierung von Tumblrs Rechenzentren voranzutreiben.

Das Tool wurde als System geschaffen, das sich um alle physischen Server, Switches und Racks in den Produktionsumgebungen von Tumblr kümmert, und hat sich weiterentwickelt, um auch die Inventarisierung von Hardware, IP-Adressen und Software zu unterstützen. Die Demonstration zeigt, dass die Collins-API und die Daten von Tumblr einen ausgezeichneten Mechanismus zur Steuerung von Automatisierungsprozessen darstellen. Neueste Collins bietet die Bereitstellung von Cluster mit einem Druckknopf, treibt die Konfigurationsgenerierung voran, wenn sich die Hardware-Cluster-Topologien ändern, treibt Infrastruktur-Updates voran, wenn sich die Softwarekonfiguration ändert, und hilft bei der Verwaltung von Softwarebereitstellungen.

“Genesis befindet sich noch in der frühen Entwicklungsphase, und obwohl wir viele der Ziele erreicht haben, die wir uns gesetzt haben, gibt es noch viel zu tun”, sagt der Tumblr-Blog. Tumblr fügte weiter hinzu: “Wenn Sie einen Fehler finden oder eine coole Idee haben, lassen Sie es uns wissen und beteiligen Sie sich, indem Sie Code und Dokumentation beitragen oder mit Fragen und Vorschlägen teilnehmen.”

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.