中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

2020年持續(xù)交付專家檢查– CI / CD,安全性和滾動(dòng)部署(第1部分)

發(fā)布于:2020-12-30 09:07:50

0

230

0

持續(xù)交付 CI / CD devops 持續(xù)集成

持續(xù)交付和持續(xù)集成遠(yuǎn)遠(yuǎn)不只是流行語或新興趨勢(shì)。自動(dòng)化的發(fā)展勢(shì)不可擋,特別是在DevOps領(lǐng)域。但是,來年CI / CD將如何發(fā)展?為什么持續(xù)交付軟件如此重要?對(duì)于2020年的大型持續(xù)交付專家檢查,我們就這些主題和其他主題向該領(lǐng)域的7名受尊敬的專家進(jìn)行了詢問。在我們的專家檢查的第一部分中,查看哪些最佳實(shí)踐可以幫助確保安全性,以及我們的專家更喜歡哪種部署類型-藍(lán)色/綠色部署或滾動(dòng)部署?

JAXenter:持續(xù)交付是每個(gè)DevOps努力的關(guān)鍵組成部分。您為什么認(rèn)為它起著如此重要的作用?

特雷西·米蘭達(dá)(Tracy Miranda):最近有一位朋友分享說,他正在更換銀行,因?yàn)樗^去常常很難通過銀行進(jìn)行網(wǎng)上轉(zhuǎn)賬。對(duì)我來說,這是一個(gè)生動(dòng)的例子,說明軟件已成為大多數(shù)行業(yè)的主要差異化因素。如今,大多數(shù)企業(yè)都需要弄清楚如何更快地交付新功能,同時(shí)又要確保服務(wù)的牢固性和安全性-這就是持續(xù)交付的意義所在,以及為什么今天如此重要。

Priyanka Sharma:現(xiàn)在每個(gè)公司都是一家軟件公司。技術(shù)贏家和輸家的最重要決定因素是軟件交付和迭代的速度。通過利用連續(xù)交付,工程團(tuán)隊(duì)可以準(zhǔn)備要生產(chǎn)的功能,然后通過隱喻性地單擊按鈕即可將其投入使用。根據(jù)我與GitLab客戶交談的經(jīng)驗(yàn)以及GitLab自己的工程實(shí)踐,人們可以從幾周或幾個(gè)月一次部署到每天持續(xù)交付。

Clark Boylan:持續(xù)交付可確保您的軟件始終可發(fā)布。這使您可以制作許多易于使用的小型發(fā)行版,而不是需要大量部署的大型發(fā)行版。這樣可以更輕松地發(fā)現(xiàn)發(fā)生故障的地方以及在必要時(shí)的位置。最終結(jié)果是可靠性和一致性。

Baruch Sadogursky:有一個(gè)簡(jiǎn)單的答案,一個(gè)更有趣的答案。簡(jiǎn)單的答案是,當(dāng)我們談?wù)撓系K并改善團(tuán)隊(duì)內(nèi)部的整合時(shí),消除孤島意味著更快地行動(dòng)。加快速度的關(guān)鍵方面之一是消除手工工作并使所有工作自動(dòng)化。持續(xù)交付是動(dòng)員軟件交付的關(guān)鍵組成部分。我會(huì)說,更有趣的方面是,它以幫助提供價(jià)值的方式為DevOps做出了貢獻(xiàn)。DevOps的最終業(yè)務(wù)目標(biāo)是提供價(jià)值,持續(xù)交付可以改善價(jià)值的兩個(gè)方面。

首先,它有助于專注于價(jià)值本身,新工作以及對(duì)客戶重要的事情。消除了手工和繁瑣的工作,最大程度地減少了錯(cuò)誤,提高了質(zhì)量。最終,人們?cè)跊]有價(jià)值的工作上花費(fèi)的時(shí)間更少。持續(xù)交付的另一個(gè)觀點(diǎn)是,它可以快速提供價(jià)值。今天,在我們這個(gè)非??量痰氖袌?chǎng)中,提供價(jià)值比競(jìng)爭(zhēng)對(duì)手更快的組織贏得了勝利。這就是為什么連續(xù)交付有助于提供更好的結(jié)果的原因。

這對(duì)于提高安全性也很重要,因?yàn)榫徑獍踩┒吹牟襟E之一就是將補(bǔ)丁交付到系統(tǒng)的速度。再說一次,誰能更快地交付這些補(bǔ)丁,誰就會(huì)比其他人更好,更快地生產(chǎn)。

JoonasLehtim?ki:如今,公司要想在業(yè)務(wù)上取得成功就必須快速高效。我認(rèn)為,舊數(shù)據(jù)中心/系統(tǒng)管理員的手動(dòng)工作已經(jīng)結(jié)束。公司需要一種方法可以在任何地方(一天可能多次)可靠地交付軟件,而CD在其中起著重要的作用。

尼爾·科倫(Nir Koren):我認(rèn)為當(dāng)今的開發(fā)人員真的不希望花費(fèi)大量時(shí)間手動(dòng)部署到所有環(huán)境,而是希望在云上即時(shí)開發(fā)并觀察成果。從公司的角度來看,這絕對(duì)是交付速度(包括功能和錯(cuò)誤修復(fù))。

Christian Uhl:持續(xù)交付的自動(dòng)化方面使團(tuán)隊(duì)擺脫了以前存在的許多運(yùn)營(yíng)負(fù)擔(dān)。這使我們能夠?qū)⒋罅繒r(shí)間重新投入到更有價(jià)值的活動(dòng)中。但這只是冰山一角-成功實(shí)施連續(xù)交付將為企業(yè)帶來純凈且可衡量的競(jìng)爭(zhēng)優(yōu)勢(shì)。降低風(fēng)險(xiǎn)和縮短上市時(shí)間是每個(gè)組織都應(yīng)在這方面努力變得更好的原因。

JAXenter:持續(xù)交付是談?wù)摮掷m(xù)提供軟件時(shí)最常用的術(shù)語,但是也存在持續(xù)部署和持續(xù)集成的問題。你最喜歡什么風(fēng)格?為什么?

特雷西·米蘭達(dá)(Tracy Miranda):可以肯定的是,有關(guān)條款一直存在困惑。在理想的情況下,持續(xù)集成和持續(xù)部署是軟件交付生命周期中的全自動(dòng)部分。完全自動(dòng)化很難實(shí)現(xiàn)或受到法規(guī)要求等限制。對(duì)于連續(xù)交付,重點(diǎn)是工程方法,團(tuán)隊(duì)可以在短時(shí)間內(nèi)生產(chǎn)軟件,以確??梢噪S時(shí)可靠地發(fā)布軟件。重點(diǎn)似乎發(fā)生了微妙的變化,但實(shí)際上卻有所不同,因?yàn)橹攸c(diǎn)現(xiàn)在已經(jīng)很容易地包含了人為因素和團(tuán)隊(duì)在軟件交付中的關(guān)鍵作用。

Priyanka Sharma:持續(xù)集成,交付和部署都是同一過程的一部分,以加快軟件生命周期。讓我們定義每個(gè)以確保我們理解這些術(shù)語。

持續(xù)集成:這是開發(fā)人員每天定期且有規(guī)律地將代碼合并到master分支中,而不用等待“發(fā)布日”。為了成功做到這一點(diǎn),大多數(shù)組織利用持續(xù)集成管道,通過創(chuàng)建構(gòu)建并針對(duì)該構(gòu)建運(yùn)行自動(dòng)化測(cè)試來驗(yàn)證開發(fā)人員的更改。盡管運(yùn)行自動(dòng)化測(cè)試不是持續(xù)集成管道的前提條件,但這是最佳實(shí)踐。GitLab是持續(xù)集成管道的狂熱用戶(和提供者)。

連續(xù)交付:組織運(yùn)行連續(xù)集成后,他們還可以自動(dòng)化其發(fā)布過程,從而只需單擊一下按鈕即可進(jìn)行部署。對(duì)于希望快速敏捷的公司,但由于法規(guī)或業(yè)務(wù)原因而無法進(jìn)行連續(xù)部署的公司,連續(xù)交付是一個(gè)不錯(cuò)的選擇。GitLab屬于這一類,因?yàn)槲覀冃枰謩?dòng)部署(每天進(jìn)行一次)以滿足合規(guī)性要求。

持續(xù)部署:當(dāng)組織具有持續(xù)集成和交付的功能時(shí),他們可以通過部署來自動(dòng)化整個(gè)過程,而無需人工干預(yù)。持續(xù)部署是軟件開發(fā)人員的必殺技,因?yàn)橥扑偷缴a(chǎn)的提交不會(huì)上線的唯一原因是測(cè)試失敗。對(duì)于許多公司而言,由于合規(guī)性原因,完全自動(dòng)化是不可行的,對(duì)于他們而言,連續(xù)交付是次之。

克拉克·博伊蘭(Clark Boylan):這三個(gè)因素共同作用,并且是運(yùn)轉(zhuǎn)良好的機(jī)器的必要組件。持續(xù)集成是您的第一道防線。在這里,您要盡早發(fā)現(xiàn)問題,最好是在合并代碼提交之前在更改合并之前發(fā)現(xiàn)問題。假設(shè)提交了CI Gates代碼,則您的軟件分支應(yīng)始終處于接近可釋放的狀態(tài)。這有助于持續(xù)交付,因?yàn)槭拱l(fā)布所需的工作量最小化,從而實(shí)現(xiàn)了發(fā)布過程的自動(dòng)化。最后,您的持續(xù)部署自動(dòng)化可以消耗您持續(xù)集成和交付工具的輸出,直接進(jìn)入生產(chǎn)。每層以非?;パa(bǔ)的方式饋入下一層。

Baruch Sadogursky:在這里我要說的是,它們并不是同一事物的不同風(fēng)格。它們是連續(xù)管道的逐漸演變。連續(xù)集成是通過以非??斓乃俣茸詣?dòng)進(jìn)行連續(xù)集成來消除手動(dòng),繁瑣和容易出錯(cuò)的工作的一項(xiàng)。持續(xù)交付通過將發(fā)行版本交付給目標(biāo)服務(wù)器來自動(dòng)化另一個(gè)繁瑣的過程。持續(xù)部署是向前發(fā)展的一步?,F(xiàn)在,我們不僅可以持續(xù)制作發(fā)行版,并且能夠?qū)l(fā)行版交付給目標(biāo)服務(wù)器,而且實(shí)際上,我們每次都可以連續(xù)進(jìn)行發(fā)行,從而省去了另一個(gè)手動(dòng)步驟。

因此,很難回答這個(gè)問題。我最喜歡什么?它們顯然都有價(jià)值,它們都是必需的。有人可以說,持續(xù)部署應(yīng)該代替持續(xù)交付。我傾向于同意。手動(dòng)步驟越少越好。但是持續(xù)集成絕對(duì)不是偏好問題。持續(xù)集成是強(qiáng)制性的;這是持續(xù)交付和持續(xù)部署的一部分。

現(xiàn)在,您在問題中沒有提到另一個(gè)連續(xù)的問題,但是我想提出:連續(xù)更新。這是連續(xù)部署后的下一步發(fā)展步驟。所不同的是,我們現(xiàn)在知道,不僅我們將新軟件部署到服務(wù)器上,而且實(shí)際上將對(duì)現(xiàn)有服務(wù)器的更新部署到任何邊緣設(shè)備上。那可能是您自己在Prem或云中控制的服務(wù)器,也可能是我們無法控制的邊緣設(shè)備,例如移動(dòng)設(shè)備,IoT設(shè)備,基站塔中的計(jì)算代理。

所有這些都是需要更新的方面,并且顯然可以應(yīng)用通常的持續(xù)集成技術(shù),但是您需要超越持續(xù)交付和持續(xù)部署的范圍,并實(shí)際實(shí)施持續(xù)更新。所有這些都是進(jìn)化,并且大多數(shù)都包含在另一個(gè)之中。因此,這實(shí)際上不是個(gè)人喜好或風(fēng)格的問題。

JoonasLehtim?ki:是的,有很多術(shù)語,我經(jīng)常發(fā)現(xiàn)人們感到困惑。我通常喜歡使用整個(gè)CI / CD術(shù)語,因?yàn)槿绻覀儍H談?wù)撨B續(xù)部署,那么它僅涵蓋軟件管道的部署階段。持續(xù)集成執(zhí)行自動(dòng)化測(cè)試,構(gòu)建以及將軟件部署到生產(chǎn)之前所需的任何軟件。

Nir Koren:持續(xù)集成是所有人的基礎(chǔ)。沒有健壯和適當(dāng)?shù)腃I,您將沒有CD(交付/部署)。我最喜歡的方法是“連續(xù)部署”(在其中具有包括生產(chǎn)部署在內(nèi)的全自動(dòng)化流程),因?yàn)樗鼤?huì)迫使您提供更穩(wěn)定,更健壯的環(huán)境和測(cè)試框架,并使生產(chǎn)更加動(dòng)態(tài)。持續(xù)部署使開發(fā)人員具有能力,并使他對(duì)整個(gè)過程負(fù)責(zé)。

克里斯蒂安·烏爾(Christian Uhl):我不會(huì)稱其為不同的樣式,而是更多的概念相互依存–持續(xù)集成是持續(xù)交付的要求,這是持續(xù)部署的基礎(chǔ)。

JAXenter:就交付軟件而言,安全性也是一個(gè)非常重要的主題–我們的應(yīng)用程序不僅應(yīng)盡快可用,而且應(yīng)盡可能安全。關(guān)于如何在CI / CD管道中實(shí)施安全方面,是否有最佳實(shí)踐?

特雷西·米蘭達(dá)(Tracy Miranda):指導(dǎo)原則是“在安全性上左移”,這在《加速》一書(軟件交付的圣經(jīng))中得到了很好的總結(jié),該書討論了將安全性集成到軟件開發(fā)的設(shè)計(jì)和測(cè)試階段。此外,還有許多安全原則可應(yīng)用于您的特定CI / CD管道和環(huán)境。例如,對(duì)于云原生CI / CD管道,Cosmin Cojocar進(jìn)行了精彩的演講,概述了原理,例如建立安全默認(rèn)值,最小化攻擊面–然后通過使用配置作為代碼,隔離集群,給出了使用Jenkins X的特定方法。等等。我強(qiáng)烈建議您先了解一下這些原理,然后研究如何將這些原理應(yīng)用到您的設(shè)置中。

普里揚(yáng)卡·沙瑪(Priyanka Sharma):絕對(duì)!如果我們回想一下新聞中最近發(fā)生的安全漏洞,在大多數(shù)情況下,它們并不是復(fù)雜攻擊的結(jié)果。相反,它們是團(tuán)隊(duì)出于各種原因而無法遵循最佳實(shí)踐的情況。因此,至關(guān)重要的是將安全性納入CI / CD管道中,以便開發(fā)人員可以在常規(guī)部署中檢查問題。這使得安全問題與其他類型的失敗測(cè)試或錯(cuò)誤相差無幾,因?yàn)樗谔峤缓秃喜⒋a時(shí)發(fā)生。

管道中可以包含安全測(cè)試和掃描的許多元素。這是一個(gè)清單:

  1. SAST –靜態(tài)應(yīng)用程序安全測(cè)試–在部署之前掃描應(yīng)用程序源代碼和二進(jìn)制文件以發(fā)現(xiàn)潛在漏洞

  2. DAST –動(dòng)態(tài)應(yīng)用程序安全測(cè)試–通過運(yùn)行實(shí)時(shí)攻擊來分析運(yùn)行中的Web應(yīng)用程序是否存在已知的運(yùn)行時(shí)漏洞

  3. IAST –交互式應(yīng)用程序安全性測(cè)試通過檢測(cè)代碼并檢查錯(cuò)誤條件來檢查應(yīng)用程序的運(yùn)行時(shí)行為

  4. 依賴項(xiàng)掃描會(huì)分析外部依賴項(xiàng)(例如Ruby gems之類的庫(kù)),以了解每次代碼提交時(shí)的已知漏洞

  5. 容器掃描檢查Docker映像中應(yīng)用程序環(huán)境中的已知漏洞

  6. 許可證合規(guī)性根據(jù)代碼提交搜索項(xiàng)目依賴性,以檢查每個(gè)項(xiàng)目的自定義策略定義的已批準(zhǔn)和列入黑名單的許可證

Clark Boylan: CI / CD管道中的安全性必須從CI / CD系統(tǒng)本身的安全性開始。我們看到像Zuul這樣的專用CI / CD工具假定開發(fā)人員不一定值得信任,并以此為基礎(chǔ)建立了安全模型。這有助于確保CI / CD系統(tǒng)不是安全威脅模型中的薄弱環(huán)節(jié)。除此之外,由受信任的人員執(zhí)行的代碼審查和自動(dòng)化工具可以協(xié)同工作,以防止將不安全的更改合并到您的軟件中。

Baruch Sadogursky:保護(hù)應(yīng)用程序安全需要持續(xù)交付,持續(xù)部署和持續(xù)更新。將補(bǔ)丁發(fā)布到設(shè)備的速度越快,您的安全性就越高。另一方面是管道本身的安全性。我們已經(jīng)看到了很多供應(yīng)鏈的示例,這些示例是您連續(xù)不斷的管道中的一部分,受到了攻擊。我們行業(yè)中有一些公司可以保護(hù)您的管道和供應(yīng)鏈。您不能忘記這方面,因?yàn)樗鼘?shí)際上是通過管道將可行的組件帶入產(chǎn)品中。因此,是的,您的供應(yīng)鏈安全是一個(gè)重要的方面,需要考慮,資助和實(shí)施。

JoonasLehtim?ki:從體系結(jié)構(gòu)規(guī)劃到生產(chǎn),都應(yīng)考慮安全性。您可以在管道中快速使用每個(gè)可以快速運(yùn)行和自動(dòng)化的安全工具,例如,使用Clair掃描圖像,然后將其用于登臺(tái)/生產(chǎn)環(huán)境。

Nir Koren:除了顯而易見的手動(dòng)代碼審查和安全檢查之外,我們使用WhiteSource之類的自動(dòng)靜態(tài)代碼分析,并不斷尋求其他方法來保護(hù)我們的產(chǎn)品。

Christian Uhl:可以通過構(gòu)建SAST(靜態(tài)應(yīng)用程序安全測(cè)試)和DAST(動(dòng)態(tài)應(yīng)用程序安全測(cè)試)來很好地抓住成果和明顯的錯(cuò)誤。此外,我們可以(并且確實(shí))包含將在發(fā)布更新后自動(dòng)更新依賴項(xiàng)的服務(wù)。這為我們提供了一個(gè)盡可能最新的系統(tǒng),并且我們不會(huì)錯(cuò)過產(chǎn)品所有級(jí)別的安全補(bǔ)丁。每天部署10次時(shí),更多的依賴關(guān)系更新部署將不再起作用。在代碼檢查過程中包括安全性最佳實(shí)踐也可以幫助我們發(fā)現(xiàn)問題。但是,老實(shí)說,我們?nèi)匀粫?huì)在CI / CD管道之外對(duì)系統(tǒng)/滲透測(cè)試進(jìn)行手動(dòng)安全審核,因?yàn)榭偸谴嬖谖粗膯栴}。

JAXenter:藍(lán)色/綠色部署和滾動(dòng)部署之間有什么區(qū)別?你更傾向哪個(gè)?

特雷西·米蘭達(dá)(Tracy Miranda):我喜歡我的同事Viktor Farcic如何將藍(lán)色/綠色部署描述為“骯臟的”部署策略。在部署前的虛擬機(jī),Docker和Kubernetes時(shí)代,這種策略很有意義,因此最好還是讓舊版本并行運(yùn)行,以防萬一。借助現(xiàn)代應(yīng)用程序和Kubernetes等云原生平臺(tái),滾動(dòng)和Canary部署在成本效益,高可用性,響應(yīng)能力等方面更具意義。有關(guān)為您的用例選擇最佳部署策略的更多信息,我強(qiáng)烈建議您最近使用Viktor在FOSDEM上有關(guān)“選擇正確的部署策略”的演講。

普里揚(yáng)卡·沙爾瑪(Priyanka Sharma):藍(lán)色/綠色和滾動(dòng)部署是組織將新功能發(fā)布到生產(chǎn)中的兩種方法。藍(lán)色/綠色部署意味著應(yīng)用程序有兩個(gè)環(huán)境,其中負(fù)載均衡器用于將流量從一個(gè)環(huán)境路由到另一個(gè)環(huán)境。藍(lán)色環(huán)境是代碼的原始版本,綠色是新版本。一旦綠色環(huán)境通過所有測(cè)試,負(fù)載均衡器便可以將流量從藍(lán)色重定向到綠色,并且如果存在任何錯(cuò)誤或問題,則可以將流量重定向回藍(lán)色環(huán)境。滾動(dòng)部署是指新版本的應(yīng)用程序以增量方式逐漸替換舊版本的應(yīng)用程序。新版本和舊版本共存而不影響功能或用戶體驗(yàn)。通過此過程,可以更輕松地回滾與舊組件不兼容的任何新組件。

Clark Boylan:在我們的世界中,重點(diǎn)是項(xiàng)目門控。這意味著我們?cè)诤喜⒅皺z查每個(gè)提交,以確保它不會(huì)引入回歸和錯(cuò)誤。這個(gè)想法是為了避免生產(chǎn)中的問題。現(xiàn)實(shí)是,仍有一些問題仍會(huì)解決,這在藍(lán)色/綠色或滾動(dòng)部署可能會(huì)有所幫助。在藍(lán)/綠部署中,您將在新環(huán)境和舊環(huán)境之間部署第二個(gè)環(huán)境。一旦測(cè)試表明新環(huán)境正在運(yùn)行,您就可以在生產(chǎn)環(huán)境中切換到新環(huán)境。

通過滾動(dòng)部署,您可以一次更換系統(tǒng)的一小部分,從而可以及早發(fā)現(xiàn)任何錯(cuò)誤,并在必要時(shí)進(jìn)行回滾。在這里,策略的選擇通常取決于所部署的軟件。整體軟件通常更適合藍(lán)/綠色部署,因?yàn)樗鼰o法分解為較小的部分。基于微服務(wù)的可輕松替換的軟件使?jié)L動(dòng)部署成為一個(gè)不錯(cuò)的選擇。

Baruch Sadogursky:向這些平臺(tái)交付將為您帶來新的機(jī)會(huì)。當(dāng)我們談?wù)撊萜骱蜔o服務(wù)器時(shí),我們所談?wù)摰氖禽p量級(jí)更新,這些更新可以替代以前使用的較重的服務(wù)器部署或虛擬機(jī)設(shè)置?,F(xiàn)在,當(dāng)我們需要替換或更新應(yīng)用程序的一部分時(shí),我們實(shí)際上可以實(shí)現(xiàn)連續(xù)更新,而僅實(shí)現(xiàn)系統(tǒng)的一小部分。只有一個(gè)圖像會(huì)縮放到容器,只有一個(gè)lambda會(huì)縮放,這在我們的無服務(wù)器應(yīng)用程序中是微服務(wù)。交付較小的零件可以使我們更快地更新。這就是幫助更快地帶來價(jià)值并幫助應(yīng)用程序更安全的原因。容器,Kubernetes和無服務(wù)器是個(gè)好消息,因?yàn)樗鼈兪刮覀兡軌驈某掷m(xù)部署和持續(xù)交付整體組件到持續(xù)更新微服務(wù)的較小部分。

JoonasLehtim?ki:主要區(qū)別在于,藍(lán)色/綠色部署有兩種環(huán)境,而滾動(dòng)部署只有一種。藍(lán)/綠被認(rèn)為是一種較安全的實(shí)施選擇,但它有一些開銷。在藍(lán)/綠部署中,您將啟動(dòng)一個(gè)較新版本的環(huán)境,然后開始緩慢地負(fù)載平衡該環(huán)境的流量。部署結(jié)束后,將保留或終止舊環(huán)境。然后,滾動(dòng)部署將使用一種環(huán)境,并開始一個(gè)接一個(gè)地殺死和旋轉(zhuǎn)實(shí)例,直到所有實(shí)例都處于最新版本。對(duì)我來說,我更喜歡滾動(dòng)更新,但這全部取決于軟件和SLA的需求。

克里斯蒂安·烏爾(Christian Uhl):簡(jiǎn)短而又不詳盡的解釋是:藍(lán)色/綠色表示并行運(yùn)行部署的舊版本和新版本,使實(shí)例增加一倍。在某些時(shí)候,您需要將某些路由從舊路由切換到新路由。系統(tǒng)的使用者可以看到一個(gè)或另一個(gè)版本。對(duì)于滾動(dòng)式部署,您需要具有多個(gè)部署實(shí)例,并且一次更改/更新一個(gè)實(shí)例–因此,在部署期間,消費(fèi)者有時(shí)會(huì)看到舊版本,有時(shí)會(huì)看到新版本。

兩者都有優(yōu)點(diǎn)和缺點(diǎn):對(duì)于有狀態(tài)服務(wù)(例如數(shù)據(jù)庫(kù)),我更喜歡藍(lán)色/綠色,以避免一致性問題。使用滾動(dòng)部署可以更快地部署無狀態(tài)組件,并減少資源分配。這樣,當(dāng)新系統(tǒng)中發(fā)生太多錯(cuò)誤而所有用戶都沒有受到影響時(shí),就可以放棄部署。