日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

什么是持續(xù)集成 源程序量( 五 )


在這些實(shí)例的前面是調(diào)度系統(tǒng),它們充當(dāng)產(chǎn)品或應(yīng)用程序的客戶“網(wǎng)關(guān)” 。通過將調(diào)度系統(tǒng)指向藍(lán)色或綠色實(shí)例,可以將客戶流量引流到期望的部署環(huán)境 。通過這種方式,切換指向哪個(gè)部署實(shí)例(藍(lán)色或綠色)對用戶來說是快速,簡單和透明的 。
當(dāng)新版本準(zhǔn)備好進(jìn)行測試時(shí),可以將其部署到非生產(chǎn)環(huán)境中 。在經(jīng)過測試和批準(zhǔn)后,可以更改調(diào)度系統(tǒng)設(shè)置以將傳入的線上流量指向它(因此它將成為新的生產(chǎn)站點(diǎn)) 。現(xiàn)在,曾作為生產(chǎn)環(huán)境實(shí)例可供下一次候選發(fā)布使用 。
同理,如果在最新部署中發(fā)現(xiàn)問題并且之前的生產(chǎn)實(shí)例仍然可用,則簡單的更改可以將客戶流量引流回到之前的生產(chǎn)實(shí)例 —— 有效地將問題實(shí)例“下線”并且回滾到以前的版本 。然后有問題的新實(shí)例可以在其它區(qū)域中修復(fù) 。
金絲雀測試/部署在某些情況下,通過藍(lán)/綠發(fā)布切換整個(gè)部署可能不可行或不是期望的那樣 。另一種方法是為 金絲雀(canary)測試/部署 。在這種模型中,一部分客戶流量被重新引流到新的版本部署中 。例如,新版本的搜索服務(wù)可以與當(dāng)前服務(wù)的生產(chǎn)版本一起部署 。然后,可以將 10% 的搜索查詢引流到新版本,以在生產(chǎn)環(huán)境中對其進(jìn)行測試 。
如果服務(wù)那些流量的新版本沒問題,那么可能會(huì)有更多的流量會(huì)被逐漸引流過去 。如果仍然沒有問題出現(xiàn),那么隨著時(shí)間的推移,可以對新版本增量部署,直到 100% 的流量都調(diào)度到新版本 。這有效地“更替”了以前版本的服務(wù),并讓新版本對所有客戶生效 。
功能開關(guān)對于可能需要輕松關(guān)掉的新功能(如果發(fā)現(xiàn)問題),開發(fā)人員可以添加 功能開關(guān)(feature toggles) 。這是代碼中的 if-then 軟件功能開關(guān),僅在設(shè)置數(shù)據(jù)值時(shí)才激活新代碼 。此數(shù)據(jù)值可以是全局可訪問的位置,部署的應(yīng)用程序?qū)z查該位置是否應(yīng)執(zhí)行新代碼 。如果設(shè)置了數(shù)據(jù)值,則執(zhí)行代碼;如果沒有,則不執(zhí)行 。
這為開發(fā)人員提供了一個(gè)遠(yuǎn)程“終止開關(guān)”,以便在部署到生產(chǎn)環(huán)境后發(fā)現(xiàn)問題時(shí)關(guān)閉新功能 。
暗箱發(fā)布在 暗箱發(fā)布(dark launch)中,代碼被逐步測試/部署到生產(chǎn)環(huán)境中,但是用戶不會(huì)看到更改(因此名稱中有 暗箱(dark)一詞) 。例如,在生產(chǎn)版本中,網(wǎng)頁查詢的某些部分可能會(huì)重定向到查詢新數(shù)據(jù)源的服務(wù) 。開發(fā)人員可收集此信息進(jìn)行分析,而不會(huì)將有關(guān)接口,事務(wù)或結(jié)果的任何信息暴露給用戶 。
這個(gè)想法是想獲取候選版本在生產(chǎn)環(huán)境負(fù)載下如何執(zhí)行的真實(shí)信息,而不會(huì)影響用戶或改變他們的經(jīng)驗(yàn) 。隨著時(shí)間的推移,可以調(diào)度更多負(fù)載,直到遇到問題或認(rèn)為新功能已準(zhǔn)備好供所有人使用 。實(shí)際上功能開關(guān)標(biāo)志可用于這種暗箱發(fā)布機(jī)制 。
什么是“運(yùn)維開發(fā)”?運(yùn)維開發(fā) (DevOps) 是關(guān)于如何使開發(fā)和運(yùn)維團(tuán)隊(duì)更容易合作開發(fā)和發(fā)布軟件的一系列想法和推薦的實(shí)踐 。從歷史上看,開發(fā)團(tuán)隊(duì)研發(fā)了產(chǎn)品,但沒有像客戶那樣以常規(guī)、可重復(fù)的方式安裝/部署它們 。在整個(gè)周期中,這組安裝/部署任務(wù)(以及其它支持任務(wù))留給運(yùn)維團(tuán)隊(duì)負(fù)責(zé) 。這經(jīng)常導(dǎo)致很多混亂和問題,因?yàn)檫\(yùn)維團(tuán)隊(duì)在后期才開始介入,并且必須在短時(shí)間內(nèi)完成他們的工作 。同樣,開發(fā)團(tuán)隊(duì)經(jīng)常處于不利地位 —— 因?yàn)樗麄儧]有充分測試產(chǎn)品的安裝/部署功能,他們可能會(huì)對該過程中出現(xiàn)的問題感到驚訝 。
這往往導(dǎo)致開發(fā)和運(yùn)維團(tuán)隊(duì)之間嚴(yán)重脫節(jié)和缺乏合作 。DevOps 理念主張是貫穿整個(gè)開發(fā)周期的開發(fā)和運(yùn)維綜合協(xié)作的工作方式,就像持續(xù)交付那樣 。
持續(xù)交付如何與運(yùn)維開發(fā)相交?持續(xù)交付管道是幾個(gè) DevOps 理念的實(shí)現(xiàn) 。產(chǎn)品開發(fā)的后期階段(如打包和部署)始終可以在管道的每次運(yùn)行中完成,而不是等待產(chǎn)品開發(fā)周期中的特定時(shí)間 。同樣,從開發(fā)到部署過程中,開發(fā)和運(yùn)維都可以清楚地看到事情何時(shí)起作用,何時(shí)不起作用 。要使持續(xù)交付管道循環(huán)成功,不僅要通過與開發(fā)相關(guān)的流程,還要通過與運(yùn)維相關(guān)的流程 。

推薦閱讀