Shopifyのソフトウェアリリース文化
(engineering.shopify.com)Shopifyはリリース文化を「すべてのメンバーの信念と行動の総和」と定義
「Shippingがやりたくない作業ではなく、お祝いのように感じられるようにする」
Shopifyがリリース文化を測定する方法
-
受動的: 開発者幸福度調査(2年ごと)、Slackチャンネル
-
能動的: ドッグフーディング、社内サポートチーム、UXリサーチ
Shopifyのリリースプロセス
- リリースパイプライン: PR → CI/Merge( Merge Queue) → Canary → Production
-
リリースマネージャーはいない。PRを担当した開発者が本番環境に至るまでの全プロセスを担当
-
特定のウィンドウはなく、いつでも
/shipitコマンドで進行 -
エラー/衝突発生時は
/shipit --emergencyでファストトラックリリース -
可能な限りすべてを自動化
1件のコメント
Merge Queue は、昨年公開された記事を先に読むと理解しやすいです。
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
Shopify はトランクベース開発を行っており、1日に約400件のコミットをマージし、1日に40回ほどサイトが変更されます。
オープンソースとして公開された Shipit エンジン https://github.com/Shopify/shipit-engine を通じてデプロイを進めています。
基本原則
master ブランチは常に Green:CI を通過していなければならない
master は Production に近い状態であるべき
緊急マージは迅速に処理できなければならない