Upgrade unserer Betriebssysteme auf Ubuntus Trusty
Zeit für ein Engineering-Update! Bei Transloadit sind wir seit Langem Ubuntu-Liebhaber. Um das zu belegen - sehen Sie, was ich bei einem kürzlichen Umzug in eine neue Wohnung in Amsterdam gefunden habe:
❤️ Ubuntu
„Mein erstes Ubuntu“ 😄. Das war 2005, als Canonical noch Mittel bereitstellte, um Ubuntu-CDs in die ganze Welt zu verschicken, an alle, die eine anforderten - kostenlos. Es war wohl eine ideologische Sache. Menschen mit langsamem Internet, also damals praktisch alle, sollten Linux for Human Beings genießen können.
Es war mein erster Desktop ohne Windows und ich habe ihn geliebt. So sehr, dass ich sogar versuchte, Ubuntu auf den Servern des Hosting-Unternehmens durchzusetzen, für das ich damals arbeitete. Das galt natürlich als verrücktes Gerede. Ubuntu war ein „Desktop-OS“ und nichts Ernsthaftes wie Slackware, Gentoo oder Debian, die serverseitigen Distributionen, die damals bevorzugt wurden. Den Sprung wagten wir erst, als etwa zwei Jahre später Feisty erschien. Aber danach gab es kein Zurück mehr. Rechenzentren mit Tausenden von Servern, die auf Feisty/Gutsy/Hardy summten - Ubuntu war praktisch nie die Ursache von Problemen und immer ein Quell der Freude. Apt war brauchbar und es musste nicht mehr kompiliert werden! 🎉
Als wir Transloadit aus eigener Kraft aufbauten, habe ich nicht lange überlegt und wir starteten Anfang 2009 mit Ubuntus neuestem Release, Jaunty. Später im selben Jahr wechselten wir zu Karmic. Danach entschieden wir, dass wir nur begrenzt Zeit für Betriebssystem-Upgrades aufwenden konnten, und stiegen auf die Release-Zyklen mit Long Term Support (LTS) um, beginnend mit Lucid im Jahr 2010.
Obwohl Ubuntu-LTS-Releases fünf Jahre lang unterstützt werden, haben wir Lucid sofort auf den LTS-Nachfolger Precise aktualisiert, sobald dieser 2012 veröffentlicht wurde. Diesen Wechsel haben wir wegen der damaligen Kompatibilitätsprobleme mit dem Kernel auf EC2 vollzogen.
Seitdem laufen wir zufrieden auf Precise. Da unser Stack von Grund auf kompiliert wird und nahezu betriebssystemunabhängig ist, konnten wir unsere Encoding-Software jederzeit aktualisieren, ohne dass uns diese Ubuntu-Version im Weg stand.
Bis jetzt zumindest.
Kollidierende Bibliotheken in unserem Stack
Es ist uns gelungen, mehrere Versionen von FFmpeg nebeneinander auszuführen, aber ImageMagick, das Open-Source-Tool, das im Kern vieler der von uns unterstützten Bildoperationen steckt, ließ sich deutlich schwerer funktionsreich und isoliert kompilieren.
Wir brauchen diese Isolation wirklich, um die Abwärtskompatibilität nicht zu brechen, damit wir unseren Kunden Upgrade-Pfade zur freiwilligen Nutzung anbieten können.
Das ruft nach Containern 🐳. Mit Linux-Containern hätten wir die Freiheit, neue Versionen unserer Encoding-Tools bereitzustellen, ohne bestehende Installationen zu stören. Sobald das steht, wird es für uns deutlich einfacher, Upgrades jeder Art auszurollen.
Trusty
Um Container-Funktionen zu erhalten, mussten wir jedoch zunächst auf Ubuntus neuestes LTS-Release aktualisieren: Trusty!
Canonicals Chef Mark Shuttleworth deutete an, dass der Fokus in diesem Entwicklungszyklus auf einem Release liegen würde, das von folgenden Themen geprägt sein sollte:
„Leistung, Verfeinerung, Wartbarkeit, technische Schulden“
und er ermutigte die Entwickler zu „konservativen Entscheidungen“.
Also langweilig und konservativ. Genau das, was wir uns von einem LTS-Release wünschen. 😄
Erfolg
Ich freue mich, Ihnen heute mitteilen zu können, dass wir dieses Upgrade erfolgreich ausgerollt haben und dass es bereits ordentlichen Traffic verarbeitet hat.
Hier sehen Sie 368 Trusty-Maschinen, die sich durch eine 2,7 TB große Encoding-Queue fressen
Ausblick
Da wir nun Container nutzen können, dürfen Sie von uns mehr coole Optionen und Tools zur Konvertierung erwarten - und das in höherem Tempo - ohne dass die Abwärtskompatibilität bricht.
Zunächst konzentrieren wir uns darauf, eine neue ImageMagick-Version herauszubringen; die Arbeit an diesem Projekt hat bereits begonnen.
Während wir uns in Richtung einer containerbasierten Architektur bewegen, behalten wir auch Hashicorps Nomad und CoreOS genau im Auge. Wenn Ubuntus nächstes LTS erscheint, könnten wir vor einer schwierigen Entscheidung stehen. Unsere Erkenntnisse teilen wir auf jeden Fall mit Ihnen!
