單塊系統場景
理解問題架構給持續交付帶來的難題,一種方式就是舉個反例。
讓我們假設有一個大的web應用程序,它有許多不同的功能。
在這個應用里有一個靜態網站。整個web應用部署成一個單獨的Java企業版應用程序。
所以,如果只是想改正一個靜態網站的拼寫錯誤,我們就需要重新構建整個網絡應用,然后重新部署。
雖然這個例子看上去很蠢,有見識的讀者都不會這么干,但是我還真看到過這樣的反模式。作為DevOps工程師,這可能是我們要解決的真實場景。
讓我們把上面這團亂麻分解一下。在想要改正拼寫錯誤的時候發生了什么?讓我們來看一看:
1.雖然知道拼寫錯誤是哪一個,但是我們需要修改哪一個代碼庫呢?因為這是一
個單塊系統,我們需要在代碼庫的版本控制系統里創建一個分支。這個新分支與生
產環境的代碼相符。
2.新建分支并改正拼寫錯誤。
3.用修改后的代碼構建一個新的工件。賦給它一個新版本號。
4.將這個新工件部署到生產環境。