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