Shopify की software release culture
(engineering.shopify.com)Shopify release culture को "सभी members के विश्वास और व्यवहार के योग" के रूप में परिभाषित करता है
"Shipping ऐसा काम न लगे जिसे करने का मन न हो, बल्कि ऐसा महसूस हो कि यह जश्न मनाने जैसा है"
Shopify release culture को कैसे मापता है
-
निष्क्रिय: developer happiness survey (हर 2 साल में), Slack channel
-
सक्रिय: dogfooding, internal support team, UX research
Shopify की release process
- release pipeline: PR → CI/Merge (Merge Queue) → Canary → Production
-
कोई release manager नहीं। PR संभालने वाला developer ही production तक जाने वाली पूरी process की जिम्मेदारी लेता है
-
कोई specific window नहीं; कभी भी
/shipitcommand से आगे बढ़ा जा सकता है -
error/crash होने पर
/shipit --emergencyसे fast-track release -
जहाँ संभव हो, हर चीज़ को automate करना
1 टिप्पणियां
Merge Queue को समझना आसान होगा अगर पहले पिछले साल प्रकाशित यह लेख पढ़ लें
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
Shopify trunk-based development करता है, लगभग 400 commits प्रतिदिन merge होते हैं, और साइट में दिन में करीब 40 बार बदलाव होता है.
ओपन सोर्स के रूप में जारी किए गए Shipit engine https://github.com/Shopify/shipit-engine के ज़रिए deployment किया जाता है.
मूल सिद्धांत
master branch हमेशा Green होनी चाहिए: CI पास होना चाहिए
master को Production के क़रीब होना चाहिए
emergency merge को तेज़ी से प्रोसेस किया जा सकना चाहिए