天天看點

【翻譯】藍綠部署的起源

原文: http://timothyfitz.com/2009/02/08/continuous-deployment/

藍綠部署的故事,就像經常發生的那樣,是關于輔導一個棘手的客戶。我上司的建構團隊發現測試環境和生産環境之間存在很多差異。(每個測試環境之間也存在差異,但這是另一類模式!)

我們認為檢查版本的最安全方法是将應用程式一起部署到與實時系統相同的實體機上。 我們的應用正在運作具有“域”概念的 WebLogic 上,“域”隻是一個存放應用程式檔案的目錄。 我們會将新版本部署在相鄰的目錄中,我們稱之為“影子域”(它有一個漂亮的幻想:“準備釋出影子域!”等),并将這個應用綁定到本地另一個端口,然後直接連接配接到端口進行冒煙測試。 如果我們對部署感到滿意,我們就可以切換前端控制器(在本例中是一個 Apache 伺服器)指向新部署的應用。如果出現任何問題,我們可以通過修改控制器指向目前執行個體立即復原,前提是我們沒有進行任何破壞性的資料庫更改 .

我們考慮過将這組并排的環境稱之為 A 環境和 B 環境,直到有人指出如果應用程式崩潰并且它恰好部署在 B 環境中,第一個問題将是“你為什麼不使用 A 環境 ?” 因為顯然 A 比 B 好! 我們需要沒有明顯層次結構的方法來給域打标簽。是以我們選擇了顔色。如果你的域被稱為藍色、綠色、橙色、黃色等,那麼顯然沒有“最好”的。 我們避免使用紅色域,因為這聽起來很危險。 (“你在紅域中運作??”)

最後我們隻使用了兩個域——我們曾認為我們可能有幾個顔色候選并輪換,但我們發現有兩個就足夠了——恰好是藍色和綠色。當我們開始為《持續傳遞》一書命名模式時,“藍綠部署”這個名字在團隊中有點流行。 我認為 Jez Humble 和我自己都這麼稱呼它,而客戶并沒有被這個提法吓壞。

十多年後的現在這很有趣,并成為了常見用語。

(完)