情境

想採用主幹開發的開發團隊,需要具備一些先決條件。一旦團隊按照正確的風格進行了幾次提交,其他事情就會更容易進行。我們可以將這種情況用一個分層結構圖表示:

DevOps 也是一個包容性的概念。至少,它將開發最佳實踐擴展到運營領域的核心地帶。

主幹開發的先決條件

穩固的開發基礎設施

版本控制系統技術的安裝是基礎設施的一部分,基礎設施包含適合進行測試和運行開發中的應用程式或服務的開發者個人電腦。

運行應用程式的開發者只需要服務在功能上是可運行的。它不必達到預期的正式運行環境的效果,並且在其他方面可能存在非功能性的差異也是可以接受的。

在現代的 DevOps 時代,這可能意味著基礎設施即程式碼(Infrastructure as Code,簡稱 IaC)。

主幹開發的幫助

持續整合

自上世紀 90 年代中期以來,持續整合(Continuous Integration,簡稱 CI)以其現代形式一直被廣泛實踐(即頻繁地將程式碼整合到程式碼儲存環境並進行測試)。

重要的是,讀者應該要明白,主幹開發和持續整合之間存在很多相同的概念,這是由其定義者和記錄者所確定的。主幹開發著重於純粹的原始碼控制工作流程以及個別貢獻者對此的責任,而持續整合同樣著重於這一點,並且需要機器在發生錯誤和不兼容性時提前發出警告。

持續交付

持續交付(Continuous Delivery,簡稱 CD)是在此基礎上的一個層級,自 2000 年代中期以來一直被實踐,並在 2010 年由 Jez Humble 和 Dave Farley 在同名的書籍中進行了記錄。這個網站提供了對實踐的 5% 摘要。讀者應該立即深入閱讀該書籍和相關網站。

精實實驗(Lean Experiments)

在確定了持續交付之後,可以通過專注於開發和交付運營的「機器」,進行以時間為重點的持續改進實驗。

這些實驗應該借鑒「精實」領域的科學方法,以便可以將每個實驗的影響與相應的預測和決策進行適當的比較和評估。

精實實驗可以在任何開發團隊的任何專案中進行,但在穩固的基礎上發揮最佳效果。具體而言,這些穩固的基礎包括主幹開發、持續整合和持續交付。

這個網站在本節之外沒有涉及精實實驗,但讀者應該努力去理解這個科學領域,尤其是在穩固基礎這方面。