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