Shopifys Kultur für Software-Releases
(engineering.shopify.com)Shopify definiert Release-Kultur als „die Summe der Überzeugungen und Handlungen aller Mitglieder“.
„Shipping soll sich nicht wie eine lästige Aufgabe anfühlen, sondern wie etwas, das man feiern kann.“
So misst Shopify seine Release-Kultur
-
Passiv: Umfragen zur Zufriedenheit der Entwickler (alle 2 Jahre), Slack-Kanäle
-
Aktiv: Dogfooding, internes Support-Team, UX-Research
Shopifys Release-Prozess
- Release-Pipeline: PR → CI/Merge (Merge Queue) → Canary → Production
-
Kein Release-Manager. Der Entwickler, der für den PR zuständig ist, verantwortet den gesamten Prozess bis zur Production.
-
Es gibt kein festes Zeitfenster; der Prozess kann jederzeit mit dem Befehl
/shipitgestartet werden. -
Bei Fehlern/Konflikten erfolgt ein Fast-Track-Release mit
/shipit --emergency. -
Möglichst alles automatisieren
1 Kommentare
Die Merge Queue lässt sich leichter verstehen, wenn man zuerst den im letzten Jahr veröffentlichten Artikel liest.
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
Shopify nutzt Trunk-based Development, führt pro Tag etwa 400 Commit-Merges durch, und die Website wird ungefähr 40-mal täglich aktualisiert.
Das Deployment erfolgt über die als Open Source veröffentlichte Shipit-Engine https://github.com/Shopify/shipit-engine.
Grundprinzipien
Der Master-Branch ist immer grün: CI muss bestanden werden.
Master sollte nahe an Production sein.
Dringende Merges müssen schnell bearbeitet werden können.