在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

微服務的4種部署策略,你都清楚嗎?

jf_ro2CN3Fa ? 來源:cnblogs.com ? 2023-07-09 15:58 ? 次閱讀

藍綠發布

藍綠發布特點

藍綠發布注意事項

滾動發布

滾動發布特點

滾定發布注意事項

灰度發布

A/B測試

在項目迭代的過程中,不可避免需要”上線“。上線對應著部署,或者重新部署;部署對應著修改;修改則意味著風險。目前有很多部署發布的技術, 這兒將常見的做一個總結。

上面所說難免有些抽象, 舉一個情景例子, 加入你是微博項目負責人員, 現在新版本較原來的老版本有很大的改變, 這設計到服務架構、前端UI等等, 經過測試功能沒有障礙, 那么這時候如何讓用戶切換到新的版本呢?

顯而易見, 第一次發布的應用是沒有所謂的這個問題的, 這種如何發布的思考只會出現在后面的版本迭代中。

藍綠發布

藍綠部署中,一共有兩套系統:一套是正在提供服務系統(也就是上面說的舊版),標記為“綠色”;另一套是準備發布的系統,標記為“藍色”。兩套系統都是功能完善的,并且正在運行的系統,只是系統版本和對外服務情況不同。正在對外提供服務的老系統是綠色系統,新部署的系統是藍色系統。

a1006eb4-1e05-11ee-962d-dac502259ad0.png

藍色系統不對外提供服務,用來做啥?

用來做發布前測試,測試過程中發現任何問題,可以直接在藍色系統上修改,不干擾用戶正在使用的系統。

藍色系統經過反復的測試、修改、驗證,確定達到上線標準之后,直接將用戶切換到藍色系統, 切換后的一段時間內,依舊是藍綠兩套系統并存,但是用戶訪問的已經是藍色系統。這段時間內觀察藍色系統(新系統)工作狀態,如果出現問題,直接切換回綠色系統。

當確信對外提供服務的藍色系統工作正常,不對外提供服務的綠色系統已經不再需要的時候,藍色系統正式成為對外提供服務系統,成為新的綠色系統。原先的綠色系統可以銷毀,將資源釋放出來,用于部署下一個藍色系統。

藍綠發布特點

藍綠部署的目的是減少發布時的中斷時間、能夠快速撤回發布。

兩套系統沒有耦合的時候才能百分百保證不干擾

藍綠發布注意事項

藍綠部署只是上線策略中的一種,它不是可以應對所有情況的萬能方案。藍綠部署能夠簡單快捷實施的前提假設是目標系統是非常內聚的,如果目標系統相當復雜,那么如何切換、兩套系統的數據是否需要以及如何同步等,都需要仔細考慮。

當你切換到藍色環境時,需要妥當處理未完成的業務和新的業務。如果你的數據庫后端無法處理,會是一個比較麻煩的問題;

可能會出現需要同時處理“微服務架構應用”和“傳統架構應用”的情況,如果在藍綠部署中協調不好這兩者,還是有可能會導致服務停止。

需要提前考慮數據庫與應用部署同步遷移 /回滾的問題。

藍綠部署需要有基礎設施支持。

在非隔離基礎架構( VM 、 Docker 等)上執行藍綠部署,藍色環境和綠色環境有被摧毀的風險。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

滾動發布

一般是取出一個或者多個服務器停止服務,執行更新,并重新將其投入使用。周而復始,直到集群中所有的實例都更新成新版本。

a1150888-1e05-11ee-962d-dac502259ad0.png

發布流程:

相對于藍綠發布需要一套完備的機器不同, 滾動發布只需要一臺機器(這兒這是為了理解, 實際可能是多臺), 我們只需要將部分功能部署在這臺機器上, 然后去替換正在運行的機器, 如上圖, 將更新后的功能部署在Server1 上, 然后Server1去替換正在運行的Server, 替換下來的物理機又可以繼續部署Server2的新版本, 然后去替換正在工作的Server2 , 以此類推, 直到替換完所有的服務器, 至此 ,服務更新完成。

滾動發布特點

這種部署方式相對于藍綠部署,更加節約資源——它不需要運行兩個集群、兩倍的實例數。我們可以部分部署,例如每次只取出集群的20%進行升級。

回滾困難

滾定發布注意事項

滾動發布沒有一個確定可行的環境。使用藍綠部署,我們能夠清晰地知道老版本是可行的,而使用滾動發布,我們無法確定。

修改了現有的環境。

回滾困難。舉個例子,在某一次發布中,我們需要更新100個實例,每次更新10個實例,每次部署需要5分鐘。當滾動發布到第80個實例時,發現了問題,需要回滾,這個回滾卻是一個痛苦,并且漫長的過程。

有的時候,我們還可能對系統進行動態伸縮,如果部署期間,系統自動擴容/縮容了,我們還需判斷到底哪個節點使用的是哪個代碼。盡管有一些自動化的運維工具,但是依然令人心驚膽戰。

因為是逐步更新,那么我們在上線代碼的時候,就會短暫出現新老版本不一致的情況,如果對上線要求較高的場景,那么就需要考慮如何做好兼容的問題。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

灰度發布

灰度發布, 也叫金絲雀發布。是指在黑與白之間,能夠平滑過渡的一種發布方式。AB test就是一種灰度發布方式,讓一部分用戶繼續用A,一部分用戶開始用B,如果用戶對B沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到B上面來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度,而我們平常所說的金絲雀部署也就是灰度發布的一種方式。

具體到服務器上, 實際操作中還可以做更多控制,譬如說,給最初更新的10臺服務器設置較低的權重、控制發送給這10臺服務器的請求數,然后逐漸提高權重、增加請求數。一種平滑過渡的思路, 這個控制叫做“流量切分”。

17世紀,英國礦井工人發現,金絲雀對瓦斯這種氣體十分敏感。空氣中哪怕有極其微量的瓦斯,金絲雀也會停止歌唱;而當瓦斯含量超過一定限度時,雖然魯鈍的人類毫無察覺,金絲雀卻早已毒發身亡。當時在采礦設備相對簡陋的條件下,工人們每次下井都會帶上一只金絲雀作為“瓦斯檢測指標”,以便在危險狀況下緊急撤離。

a136d6a2-1e05-11ee-962d-dac502259ad0.png

準備好部署各個階段的工件,包括:構建工件,測試腳本,配置文件和部署清單文件。

將“金絲雀”服務器部署進服務器中, 測試。

從負載均衡列表中移除掉“金絲雀”服務器。

升級“金絲雀”應用(排掉原有流量并進行部署)。

對應用進行自動化測試。

將“金絲雀”服務器重新添加到負載均衡列表中(連通性和健康檢查)。

如果“金絲雀”在線使用測試成功,升級剩余的其他服務器。(否則就回滾)

A/B測試

A/B測試和藍綠發布、滾動發布以及金絲雀發布,完全是兩回事。

藍綠發布、滾動發布和金絲雀是發布策略,目標是確保新上線的系統穩定,關注的是新系統的BUG、隱患。

A/B測試是效果測試,同一時間有多個版本的服務對外服務,這些服務都是經過足夠測試,達到了上線標準的服務,有差異但是沒有新舊之分(它們上線時可能采用了藍綠部署的方式)。

A/B測試關注的是不同版本的服務的實際效果,譬如說轉化率、訂單情況等。

A/B測試時,線上同時運行多個版本的服務,這些服務通常會有一些體驗上的差異,譬如說頁面樣式、顏色、操作流程不同。相關人員通過分析各個版本服務的實際效果,選出效果最好的版本。

a158c9ce-1e05-11ee-962d-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微服務
    +關注

    關注

    0

    文章

    139

    瀏覽量

    7371
  • 系統
    +關注

    關注

    1

    文章

    1018

    瀏覽量

    21379

原文標題:微服務的4種部署策略,你都清楚嗎?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何用ACM簡化的Spring Cloud微服務環境配置管理

    服務的基本行為,或者不同環境之間的配置差異很大,那么可能就只能在一套環境中發現某個特定的問題,這是極其痛苦的事情。 所以,如果存在不同環境之間的配置差異,應該如何在部署流程中對其進行處理呢?一
    發表于 02-02 14:18

    微服務架構下分布式事務解決方案 —— 阿里GTS

    策略。為了滿足一致性的要求,confirm和cancel接口必須實現冪等。上述原因導致TCC方案大多被研發實力較強、有迫切需求的大公司所采用。微服務倡導服務的輕量化、易部署,而TCC
    發表于 03-16 11:14

    使用阿里云ACM簡化的Spring Cloud微服務環境配置管理

    的配置管理面臨的挑戰》 里有長篇幅的側面論述。如果測試、生產因為配置打出來的包不一樣,如何保證的測試是有效的?關注微服務的開發者一定拜讀過下面這本微服務圣經在上書中的第6.7及6.8小節對于環境和配置
    發表于 07-04 17:16

    微服務架構和CQRS架構基本概念介紹

    微服務架構現在很熱,到處可以看到各大互聯網公司的微服務實踐的分享總結。但是,我今天的分享和微服務沒有關系,希望可以帶給大家一些新的東西。如果一定要說微服務和CQRS架構的關系,那我覺得
    發表于 05-22 09:03

    運維是如何看待微服務和容器的

    微服務在帶來良好的設計和架構理念的同時,也帶來了運維上的額外復雜性,尤其是在服務部署服務監控上。那么,運維是如何看待微服務和容器的呢?傳統的單體應用又該如何完成
    發表于 09-30 17:24 ?0次下載
    運維是如何看待<b class='flag-5'>微服務</b>和容器的

    什么是微服務_微服務知識點全面總結

    微服務是一個新興的軟件架構,就是把一個大型的單個應用程序和服務拆分為數十個的支持微服務。一個微服務策略可以讓工作變得更為簡便,它可擴展單個
    的頭像 發表于 02-07 16:06 ?1.6w次閱讀

    微服務優勢_微服務架構的好處與不足

    微服務是用一組小服務的方式來構建一個應用,服務獨立運行在不同的進程中,服務之間通過輕量的通訊機制(如RESTful接口)來交互,并且服務可以
    發表于 02-23 11:24 ?4402次閱讀

    什么是微服務和容器?微服務和容器的作用是什么

    微服務是將應用程序拆分為多個服務的一架構類型,這些服務具備構成整個應用程序的細粒度功能。每個微服務將具備針對您的應用程序的不同邏輯功能。與
    的頭像 發表于 01-13 10:54 ?3.2w次閱讀
    什么是<b class='flag-5'>微服務</b>和容器?<b class='flag-5'>微服務</b>和容器的作用是什么

    微服務架構的特點_微服務架構適用場景

     微服務架構是一項在云中部署應用和服務的新技術。
    的頭像 發表于 05-17 17:28 ?5184次閱讀

    微服務架構簡介和優勢

    微服務是小型的獨立服務,可以獨立演進并單獨部署,以支持持續集成和持續交付。微服務架構促進開發和部署由獨立、自主、模塊化、自包含單元組成的應用
    的頭像 發表于 11-30 15:41 ?1679次閱讀
    <b class='flag-5'>微服務</b>架構簡介和優勢

    什么是微服務架構?

    在Medium,我們的技術堆棧始于2012年的單片Node.js應用程序。我們已經構建了幾個衛星服務,但我們還沒有制定一個系統地采用微服務架構的策略。隨著系統變得越來越復雜并且團隊不斷發展,我們在2018年初轉向了
    的頭像 發表于 02-24 11:15 ?1363次閱讀
    什么是<b class='flag-5'>微服務</b>架構?

    微服務架構下的3部署策略

    不知道大家有了解過你們公司的軟件產品是如何部署的么?采用的什么部署策略?其實在軟件開發生命周期中,部署是非常關鍵的一環,需要考慮多方面的因
    的頭像 發表于 04-07 15:26 ?882次閱讀

    springcloud微服務架構

    和可擴展的微服務應用。 微服務架構通過將一個大型應用拆分成一系列小型的、獨立可部署服務來提供解決方案。每個服務都有自己的數據存儲、業務邏輯
    的頭像 發表于 11-23 09:24 ?1400次閱讀

    設計微服務架構的原則

    微服務是一軟件架構策略,有利于改善整體性能和可擴展性。可能會想,我的團隊需不需要采用微服務,設計微服
    的頭像 發表于 11-26 08:05 ?614次閱讀
    設計<b class='flag-5'>微服務</b>架構的原則

    入門級攻略:如何容器化部署微服務

    第一步理解容器化基礎,第二步創建Dockerfile,第三步構建推送鏡像,第四步部署微服務,第五步管理微服務、第六步優化更新。容器化部署微服務
    的頭像 發表于 10-09 10:08 ?175次閱讀
    主站蜘蛛池模板: 国产午夜视频在线观看网站 | a站在线观看| 韩国在线a免费观看网站| 色多多在线播放| 中文字幕第8页| 亚洲视屏一区| 欧美性受视频| 大片免费看| 日木69xxxhd| 最新欧美伦理网| ggg成人| 免费的黄视频| 性色综合| 亚洲黄色激情网| 四虎永久在线精品免费观看地址| 亚洲地址一地址二地址三| 午夜看片福利| 欧美特级黄| 中年艳妇乱小玩| 色之综综| 综合精品视频| 黄色毛片免费看| 91精品久久国产青草| 天天插天天干天天射| 一级午夜| 国产黄页| www天堂在线观看| 69天堂| 日本加勒比视频在线观看| 天天操夜夜摸| vip免费观看| 99草在线视频| 日本一区二区三区不卡在线看| 4438x成人网全国最大| 一区二区三区视频| 一级做a爰片久久毛片一| 亚洲网在线观看| 五月婷婷六月色| 免费爱爱网址| 午夜视频在线观看国产| 91久久福利国产成人精品|