Yahoo veröffentlicht eine Continuous-Delivery-Plattform
Das Werkzeug namens Screwdriver entstand ursprünglich zum internen Einsatz bei Yahoo als Aufsatz für Jenkins. Nun veröffentlicht das Entwicklerteam das Continuous-Delivery-Build-System als Open-Source-Software.
![Yahoo veröffentlicht eine quelloffene Continuous-Delivery-Plattform](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/1/2/2/9/6/8/Schraubenzieher-2325802a23ea517c.jpeg)
Während auf der Managementebene noch über die Zukunft von Yahoo entschieden wird, gibt das gebeutelte Unternehmen ein bisher intern verwendetes Werkzeug als Open-Source-Software heraus: Screwdriver (Schraubenzieher) ist eine Continuous-Delivery-Plattform, die sich laut den Entwicklern intern bewährt hat und besonders gut skalieren soll.
Jenkins als Startpunkt
Ursprünglich entstand Screwdriver laut dem Entwicklerblog als Abstraktionsebene für Jenkins und verwendete dessen Plug-ins unter anderem für Testreports. Irgendwann kam das Team jedoch an den Punkt, an dem ein einzelner Jenkins-Cluster nicht mehr ausreichte. Zunächst skalierte es das System horizontal, indem es mehrere Cluster verband, aber mit der Zeit baute das Team bisher Jenkins vorbehaltene Aufgaben ins System ein.
Screwdriver übernimmt inzwischen alle typischen Aufgaben der Continuous-Delivery-Infrastruktur. So verwendet es Deployment-Pipelines, die das Testen, die Integration und das Deployment des Codes steuern. Entwickler definieren die Pipelines komplett über YAML-Dateien (YAML Ain't Markup Language), wodurch sie alle Änderungen am Delivery-Prozess in die Codebasis integrieren können. Als Execution Engine kommen primär Kubernetes und Docker Swarm zum Einsatz.
Flexibel dank Plug-ins
Die Anbindung externer Komponenten erfolgt über Plug-ins. Damit folgt Screwdriver dem Vorbild von Jenkins, das sich durch den modularen Aufbau mit einem relativ schlanken Kern, der durch Plug-ins erweitert wird, auszeichnet. Externe Komponenten können auch die internen ersetzen, wenn Entwickler beispielsweise den Datastore auf MySQL-Basis durch PostgreSQL ersetzen wollen. Die direkte Integration von GitHub-Repositories ist ebenso vorgesehen.
Um Rollbacks so einfach wie möglich zu gestalten, können Entwickler einzelne Phasen der Pipeline jederzeit mit einem zuvor gespeicherten Stand erneut ausführen. Laut dem Entwicklerblog hat das Team damit intern den DevOps-Gedanken umgesetzt, nach dem Entwickler für ein stabilen Zustand des Produktivsystems verantwortlich sind.
Weitere Details finden sich im GitHub-Repository, auf der Screwdriver-Site und im Blogbeitrag. Die Open-Source-Version ist demnach eine vollständig lauffähige Variante, die aber noch nicht alle Funktionen der intern bei Yahoo verwendeten Software enthält. Laut dem Blogbeitrag will das Team Screwdriver in den nächsten Monaten unter anderem um systemweite Vorlagen, Tools zur Log-Analyse und Mechaniken zum Speichern strukturierter Build-Daten zur späteren Wiederverwendung für Tests oder den Zugriff auf die letzte verteilten Version erweitern. (rme)