
第十章
從管道部署與釋出
建立紮實的自動組建與持續整合基礎之後,接下來我們要把焦點放在交付寶貴的軟體到
各種環境,包括生產環境。你將會學到一件很重要的事情:現今的商業需求與熱門的軟
體架構方法都強烈建議將部署程序(一種技術活動,你將會看到)與釋出程序(一種商
業活動)分開;事實上,我們要討論的是
部署
app,
釋出
功能。這會影響你設計、測試
與持續交付軟體的方式。
當你開始考慮不同的環境之後,“組態”這個軟體開發層面就變得非常重要了。根據環
境(開發、測試、前製、生產…)的需求來追蹤不同的組態值不是一種新概念,但隨
著雲端平台的出現,追蹤它們變得困難許多,因為你可能無法事先知道 app 會在哪裡運
行。此外持續交付程序可能需要經常改變組態,這意味著組態的管理必定是部署與釋出
策略的核心。
部署、釋出與管理組態是持續交付最有挑戰性的層面,所以我們有許多主題有待討論。
為了幫助你了解所有的主題,我們建立了 Extended Java Shop app,用它來展示本章介
紹的概念。
Extended Java Shop app 簡介
第 172 頁 的 ““ Docker Java Shop”範例 app 介紹”曾經使用這個範例來展示如何在本地
使用 Docker 容器與 Kubernetes。在這一章與第 11 章將使用這個 app 的擴展版本,稱為
Extended Java Shop(
https://github.com/continuous-delivery-in-java/extended-java-shop