預(yù)發(fā)布/生產(chǎn)
預(yù)發(fā)布環(huán)境是測(cè)試環(huán)境的最后一關(guān)。它可以和生產(chǎn)環(huán)境互換。你把最新的發(fā)布安裝到預(yù)發(fā)布服務(wù)器上,檢查一切是否都正常,然后將老的生產(chǎn)環(huán)境切換過(guò)來(lái),這樣預(yù)發(fā)布環(huán)境就變成了新的生產(chǎn)環(huán)境。有時(shí)這被稱為藍(lán)綠發(fā)布策略。
這種部署方式的更詳細(xì)做法因產(chǎn)品而異。有時(shí),做不到讓幾個(gè)生產(chǎn)環(huán)境同時(shí)并行運(yùn)行,因?yàn)樯a(chǎn)環(huán)境通常都很貴。
另一方面,一個(gè)系統(tǒng)池里可能有著成百上千個(gè)生產(chǎn)系統(tǒng)。我們可以逐步在系統(tǒng)池里替換新版本。已登錄的用戶仍然停留在他們登錄過(guò)的指定版本的服務(wù)器上。新用戶將會(huì)登錄到運(yùn)行著軟件新版本的服務(wù)器上。
持續(xù)交付圖里的以下部分詳述了最終的系統(tǒng)和參與的角色:
不是所有的企業(yè)都有資源來(lái)保持預(yù)發(fā)布環(huán)境和生產(chǎn)環(huán)境同步,但是只要有可能,用這樣的方式來(lái)升級(jí)是優(yōu)雅而可靠的。
發(fā)布管理
迄今為止我們一直假定發(fā)布過(guò)程主要是自動(dòng)化的。這是DevOps夢(mèng)寐以求的場(chǎng)景,而在真實(shí)世界中這個(gè)美夢(mèng)是很難實(shí)現(xiàn)的。一個(gè)原因是需要相當(dāng)高程度的自動(dòng)化測(cè)試才能更有信心實(shí)踐自動(dòng)化部署,而這通常很難做到。另一個(gè)原因是業(yè)務(wù)和技術(shù)開(kāi)發(fā)的節(jié)奏不一定相同。所以,在發(fā)布過(guò)程中人工介入是必要的。