乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      微服務(wù) | 推薦幾種最佳「發(fā)布」實(shí)踐方式

       測試開發(fā)技術(shù) 2022-06-18 發(fā)布于廣東
      閱讀全文大概需要 6分鐘。

      在上一篇中,介紹了開源實(shí)戰(zhàn)項(xiàng)目STP-智慧測試平臺:十分鐘了解:開源實(shí)戰(zhàn)項(xiàng)目STP-智慧測試平臺,本文聊一聊產(chǎn)品研發(fā)生產(chǎn)必備環(huán)節(jié)之一:發(fā)布。

      在項(xiàng)目研發(fā)迭代的過程中,不可避免需要對“應(yīng)用服務(wù)部署上線”。而對于應(yīng)用程序升級面臨最大挑戰(zhàn)是新舊業(yè)務(wù)切換的同時還要保證系統(tǒng)不間斷提供服務(wù)。特別是微服務(wù)盛行的今天,對服務(wù)發(fā)布的粒度、發(fā)布策略控制更佳尤為重要。

      最近幾年,市面上流行了很多與顏色相關(guān)的部署、發(fā)布方法,常見的比如有:藍(lán)綠部署、紅黑部署、灰度發(fā)布(金絲雀發(fā)布)、滾動發(fā)布等。接下來,就和大家聊一聊這幾種帶“色”的發(fā)布方法以及他們之間的區(qū)別和優(yōu)缺點(diǎn)。

      從部署到發(fā)布的幾個階段


      部署、發(fā)布、上線這幾個名詞,其實(shí)區(qū)分不太明顯,我們平時在討論服務(wù)部署上線時,也經(jīng)常會混用。在這里,先給大家明確區(qū)分一下這幾個階段。

      • 部署(deploy),指的是我們把一個代碼包拷貝到服務(wù)器上運(yùn)行,但并不把它暴露給用戶,也就是并不給用戶提供服務(wù)。這個階段比較耗時,但因?yàn)檫€沒有面向用戶,所以風(fēng)險(xiǎn)很小。

      • 發(fā)布(release),是把部署好的服務(wù)暴露給用戶的過程,也就是開始真正上線服務(wù)用戶了。這個過程可以通過負(fù)載均衡的切換很快實(shí)現(xiàn),但風(fēng)險(xiǎn)很大,一旦出現(xiàn)問題損失就會比較大。

      • 發(fā)布后(post-release),指的是服務(wù)完全上線以后的階段。因?yàn)楫a(chǎn)品已經(jīng)完全上線,我們的主要工作不再是預(yù)防,而是變成了監(jiān)控和降低損失。

      幾種帶“色”的部署方式定義


      我們再來看看藍(lán)綠部署(Blue-green Deployment)、紅黑部署(Red-black Deployment)和灰度發(fā)布(Gray Release ,或 Dark Launch)、滾動發(fā)布(Rolling Update)的定義和流程。

      1、藍(lán)綠部署

      藍(lán)綠部署,是采用兩個分開的集群對軟件版本進(jìn)行升級的一種方式。它的部署模型中包括一個藍(lán)色集群 A 和一個綠色集群 B,在沒有新版本上線的情況下,兩個集群上運(yùn)行的版本是一致的,同時對外提供服務(wù)。

      系統(tǒng)升級時,藍(lán)綠部署的流程是:

      • 首先,從負(fù)載均衡器列表中刪除集群 A,讓集群 B 單獨(dú)提供服務(wù)。

      • 然后,在集群 A 上部署新版本。


      • 接下來,集群 A 升級完畢后,把負(fù)載均衡列表全部指向 A,并刪除集群 B,由 A 單獨(dú)提供服務(wù)。


      • 在集群 B 上部署完新版本后,再把它添加回負(fù)載均衡列表中。

      這樣,我們就完成了兩個集群上所有機(jī)器的版本升級。

      細(xì)心的讀者,從上述的部署流程中,也能發(fā)現(xiàn),藍(lán)綠部署它的優(yōu)點(diǎn)在于發(fā)布策略簡單、對于用戶來說無感知,可以實(shí)現(xiàn)升級平滑過渡。但它的缺點(diǎn)也很明顯:需要準(zhǔn)備正常業(yè)務(wù)使用資源的兩倍以上服務(wù)器,需要投入較大的資源成本。當(dāng)然對于不差錢、追求服務(wù)穩(wěn)定性的公司而言,較為推薦這種部署模式。

      2、紅黑部署

      紅黑部署是Netflix采用的部署手段,Netflix的主要基礎(chǔ)設(shè)施是在AWS上,它與藍(lán)綠部署類似,紅黑部署也是通過兩個集群完成軟件版本的升級。

      當(dāng)前提供服務(wù)的所有機(jī)器都運(yùn)行在紅色集群 A 中,當(dāng)需要發(fā)布新版本的時候,具體流程是這樣的:

      • 先在云上申請一個黑色集群 B,在 B 上部署新版本的服務(wù);

      • 等到 B 升級完成后,我們一次性地把負(fù)載均衡全部指向 B;

      • 把 A 集群從負(fù)載均衡列表中刪除,并釋放集群 A 中所有機(jī)器。

      這樣就完成了一個版本的升級。

      可以看到,與藍(lán)綠部署相比,紅黑部署只不過是充分利用了云計(jì)算的彈性伸縮優(yōu)勢,從而獲得了兩個收益:一是,簡化了流程;二是,避免了在升級的過程中,由于只有一半的服務(wù)器提供服務(wù),而可能導(dǎo)致的系統(tǒng)過載問題。

      3、灰度發(fā)布

      灰度發(fā)布,也被叫作金絲雀發(fā)布。與藍(lán)綠部署、紅黑部署不同的是,灰度發(fā)布屬于增量發(fā)布方法。也就是說,服務(wù)升級的過程中,新舊版本會同時為用戶提供服務(wù)。

      灰度發(fā)布的具體流程是這樣的:在集群的一小部分機(jī)器上部署新版本,給一部分用戶使用,以測試新版本的功能和性能;確認(rèn)沒有問題之后,再對整個集群進(jìn)行升級。簡單地說,灰度發(fā)布就是把部署好的服務(wù)分批次、逐步暴露給越來越多的用戶,直到最終完全上線。

      之所以叫作灰度發(fā)布,是因?yàn)樗橛诤谂c白之間,并不是版本之間的直接切換,而是一個平滑過渡的過程。

      AB Test就是一種灰度發(fā)布方式,讓一部分用戶繼續(xù)用A,一部分用戶開始用B,如果用戶對B沒有什么反對意見,那么逐步擴(kuò)大范圍,把所有用戶都遷移到B上面來?;叶劝l(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度,而我們平常所說的金絲雀部署也就是灰度發(fā)布的一種方式。

      之所以又被叫作金絲雀發(fā)布,是因?yàn)榻鸾z雀對瓦斯極其敏感,17 世紀(jì)時英國礦井工人會攜帶金絲雀下井,以便及時發(fā)現(xiàn)危險(xiǎn)。這就與灰色發(fā)布過程中,先發(fā)布給一部分用戶來測試相似,因而得名。

      對于灰度發(fā)布來說,它的優(yōu)點(diǎn)在于如果前期出問題影響范圍很小,相對用戶體驗(yàn)也少;可以做到及時發(fā)現(xiàn)、及時調(diào)整問題,影響范圍可控。但是采取這種模式對自動化以及運(yùn)維監(jiān)控能力的要求非常高。

      4、滾動發(fā)布

      滾動發(fā)布是指每次只升級一個或多個服務(wù),升級完成后加入生產(chǎn)環(huán)境,不斷執(zhí)行這個過程,直到集群中的全部舊版本升級新版本。 

      • 紅色:正在更新的實(shí)例

      • 藍(lán)色:更新完成并加入集群的實(shí)例

      • 綠色:正在運(yùn)行的實(shí)例

      這種部署方式相對于藍(lán)綠部署,更加節(jié)約資源——它不需要運(yùn)行兩個集群、兩倍的實(shí)例數(shù)。我們可以部分部署,例如每次只取出集群的20%進(jìn)行升級,比較節(jié)約資源,但同時缺點(diǎn)也很明顯:采用滾動發(fā)布方式部署時,沒有一個確定OK的環(huán)境。如果使用藍(lán)綠部署,我們能夠清晰地知道老版本是OK的,而使用滾動發(fā)布,我們無法確定。并且一旦發(fā)布過程出現(xiàn)問題,需要回滾,回滾過程非常困難。

      在實(shí)際工作當(dāng)中,升級過程中需要保持服務(wù)的連續(xù)性、穩(wěn)定,對外界無感知是幾個基本的要求。在生產(chǎn)上選擇哪種部署方法最合適?這取決于哪種方法最適合你的業(yè)務(wù)和技術(shù)需求。

      如果你們運(yùn)維自動化能力儲備不夠,肯定是越簡單越好,建議藍(lán)綠發(fā)布,如果業(yè)務(wù)對用戶依賴很強(qiáng),建議灰度發(fā)布。如果是K8S平臺,滾動更新是現(xiàn)成的方案,建議先直接使用。

      好了,以上就是當(dāng)前市面常見的幾種有顏色的部署發(fā)布方式。

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多