Shopify'nin yazılım sürüm kültürü
(engineering.shopify.com)Shopify, sürüm kültürünü "tüm üyelerin inanç ve davranışlarının toplamı" olarak tanımlıyor.
"Shipping'in yapılmak istenmeyen bir iş değil, kutlanacak bir şey gibi hissettirmesini sağlıyorlar"
Shopify'nin sürüm kültürünü ölçme biçimi
-
Pasif: geliştirici memnuniyeti anketi (2 yılda bir), Slack kanalları
-
Aktif: dogfooding, iç destek ekibi, UX araştırması
Shopify'nin sürüm süreci
- Sürüm hattı: PR → CI/Merge (Merge Queue) → Canary → Production
-
Sürüm yöneticisi yok. PR'dan sorumlu geliştirici, production'a kadar giden tüm süreçten sorumlu
-
Belirli bir pencere yok; istenen herhangi bir anda
/shipitkomutuyla ilerleniyor -
Hata/çakışma durumunda
/shipit --emergencyile hızlı geçiş sürümü -
Mümkün olan her şeyi otomatikleştiriyorlar
1 yorum
Merge Queue, geçen yıl yayımlanan yazı önce okunursa daha kolay anlaşılır
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
Shopify trunk tabanlı geliştirme yapıyor; günde yaklaşık 400 commit merge ediliyor ve site günde yaklaşık 40 kez değişiyor.
Dağıtımlar, açık kaynak olarak yayımladıkları Shipit engine üzerinden yapılıyor: https://github.com/Shopify/shipit-engine
Temel ilkeler
master branch her zaman Green olmalı: CI'dan geçmesi gerekir
master, Production'a yakın olmalı
acil merge işlemleri hızlıca yapılabilmeli