19 Punkte von safethecode 2024-01-03 | 3 Kommentare | Auf WhatsApp teilen
  • GitHub hat mehr als 1.200 MySQL-Hosts auf MySQL 8.0 aktualisiert. Gründe für das Upgrade waren das nahende Ende des Lebenszyklus von MySQL 5.7 sowie die Nutzung aktueller Sicherheitspatches und neuer Funktionen. Der gesamte Prozess dauerte mehr als ein Jahr. Die technischen Herausforderungen und Erkenntnisse beim Upgrade einer vielfältigen und komplexen MySQL-Infrastruktur unterstreichen die Bedeutung von Automatisierung und Fleet-Management.

  • GitHub begann vor 15 Jahren mit einer Ruby-on-Rails-Anwendung und einer einzigen MySQL-Datenbank. Seitdem hat GitHub seine MySQL-Architektur weiterentwickelt, um den Anforderungen an Skalierung und Ausfallsicherheit der Plattform gerecht zu werden. Diesmal wurde ein Upgrade von mehr als 1.200 MySQL-Hosts auf MySQL 8.0 durchgeführt.

  • Die Motivation für das Upgrade war, dass MySQL 5.7 das Ende seines Lebenszyklus erreicht. Mit MySQL 8.0 wollte GitHub aktuelle Sicherheitspatches, Bugfixes und Performance-Verbesserungen nutzen. Außerdem enthält 8.0 neue Funktionen wie Instant DDLs, invisible indexes und compressed bin logs.

  • GitHubs MySQL-Infrastruktur besteht aus einer vielfältigen und komplexen Deployment-Landschaft mit mehr als 1.200 Hosts. Um das Upgrade im laufenden Betrieb dieser Umgebung durchzuführen, waren sorgfältige Planung, Testautomatisierung und Zusammenarbeit zwischen verschiedenen Teams erforderlich.

  • In der Vorbereitungsphase wurden unter anderem die Infrastruktur modernisiert, die Anwendungskompatibilität geprüft, Kommunikation und Transparenz sichergestellt sowie eine vorsichtige, schrittweise Upgrade-Strategie entwickelt. Das Upgrade erfolgte in mehreren Phasen, wobei ein zentraler Aspekt war, die Möglichkeit eines Rollbacks während des gesamten Prozesses aufrechtzuerhalten.

  • Während des Upgrades gab es das Problem, dass ein Rollback von MySQL 8.0 auf MySQL 5.7 schwierig war. GitHub konnte das Upgrade dennoch sicher durchführen und gleichzeitig die Rollback-Fähigkeit bewahren. Dabei traten auch verschiedene technische Herausforderungen auf, etwa mit Vitess. Trotz dieser Hürden dauerte der gesamte Upgrade-Prozess mehr als ein Jahr.

  • Die aus diesem Projekt gewonnenen Erfahrungen und Erkenntnisse haben für GitHub deutlich gemacht, dass MySQL-Upgrades zu den wichtigen Routine-Wartungsarbeiten gehören. Außerdem kam das Unternehmen zu dem Schluss, dass Automatisierung und die Entwicklung zuverlässiger Tools für das Fleet-Management künftige Upgrades effizienter machen werden.

3 Kommentare

 
botplaysdice 2024-01-04

Es scheint, dass MS Unternehmen, die es übernommen hat, nicht unbedingt dazu zwingt, auf den eigenen Technologie-Stack zu migrieren ... offenbar nutzen sie immer noch RoR / mysql.

 
rockp 2024-01-04

GitHub-DB-Migration ... schon der Gedanke daran ist schrecklich.

 
misolab 2024-01-04

Vielleicht hat man lieber stillgehalten, weil man wusste, dass es keinen Ausweg mehr gibt, sobald man daran herumfummelt? Haha