日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是獨立環境

  • 獨立環境,在環境內的http請求,rpc,mq消息等都在該環境內,不會訪問到其它環境的機器。常見的獨立環境如:測試環境,線上環境。
阿里巴巴的獨立環境是如何實現的

 

為什么需要獨立環境

  • 第一個階段:你還是一個在校學生,接到一個設計作業,然后你在自己的電腦上開發,在自己的電腦上運行代碼,連接的是自己電腦的數據庫,等老師檢查時候,你只要在自己電腦上操作一通就夠了。
  • 第二個階段:你去幫學校社團的一個小項目做功能補充,這個小項目已經運行在社團自己租的服務器上了,你直接連接線上數據庫開發也肯定是不行的,你還是在自己電腦上搞好,然后再部署到服務器上,這個時候你的開發環境和服務器就是兩套環境。
  • 第三個階段:你去一個小公司實習了,你本地是開發環境,線上環境在專門的服務器上,但是公司畢竟是商業公司,不敢讓你把開發好的東西直接放到線上,會有專門的測試測試,測試如果利用你本地來測試,那效率太低,一般都會拉出來一套測試環境,部署好你們提測的代碼進行整體測試。
  • 第四個階段:公司發展很快,開發和測試都越來越多,并行的需求也越來越多,雖然大多時候每次提測會把眾多需求合并一起部署,但是零零碎碎的需求接踵而至,一個測試環境實在是扛不住了,公司搞了多套測試環境。
  • 第五個階段:一些公司技術上采用了微服務架構,項目方式從瀑布開發轉變為了敏捷開發,經常會有個一個一兩天開發完成的需求,涉及到三四個服務的改動,開發很難在本地實現測試也需要對應的環境去測試。如果共用測試環境,就會需要多個開發分支反復合并,環境大多時間處于部署中,影響測試進度。所以需要的測試環境也會越來越多,當然這些環境必須類似測試環境和線上環境一樣相互隔離(數據庫層面除外),否則你測試一個需求,跑到了其它需求實現的分支上,測試結果根本不能保障。

獨立環境如何實現

在引入阿里巴巴獨立環境實現方式之前,首先引入我之前兩個公司的獨立環境方案,希望通過對比能讓大家更清楚每種方案的適用場景。

  • 三套測試環境,采取瀑布方式的開發模式,每一個環境往往有一個測試組所有,空余一套環境在一些緊急環境下便于適用。
阿里巴巴的獨立環境是如何實現的

 

優點:實現簡單,三套環境往往只需要通過在三個網段之中,每個環境有自己獨立的注冊中心。

缺點:適用于瀑布式開發模式,如果需求變更頻繁,或者有很多小需求,環境將會處在相互爭用的情況下。

  • 每個人一臺測試機,自己可以把自己涉及的服務拉取到自己的測試機器上,測試環境服務間通過host指定掉用本機,自己測試時候可以通過fidder配置代理,讓請求打到對應的機器上。
阿里巴巴的獨立環境是如何實現的

 

優點:操作時候相對方便,一開始fidder配置完成后,后續只需要進行host配置即可,如 fangwendeyuming.com 1.1.1.1(我機器的ip)

缺點:在業務更加復雜的情況下,涉及到的服務會更多,往往一個業務請求鏈路上有很多各個bu的服務,你不一定有權限部署對應服務,甚至你連對應的服務是什么都不知道。

在阿里巴巴現在很多業務情況下,一個你從前端進行的操作,可能會需要經過十幾個服務的處理才會到達你代碼變更的服務中。鑒于業務的復雜,阿里巴巴內部會有很多方式可以實現獨立環境,我們選取重要的和不涉及技術隱私的方面進行講述。

首先,最頂層的也是通過常規的多套注冊中心的方式進行隔離,通過這種方式區分出了,測試環境,預上線環境,線上環境。

在這個基礎上,測試環境和預上線環境往往都需要多套環境,因為實現方式類似,我們主要選取測試環境來講述。

阿里巴巴的測試環境,允許你給任何一個服務部署為一個獨立服務,這個獨立服務可以是自身一個,也可以將其它獨立服務聯合起來部署為一個整體的獨立服務,還可以拉取其他的普通服務聯合(這時后續流程將不再隔離)

如果你的服務包括整個鏈路的源頭,那么非常簡單,你只需要配置對應的host,讓請求在你的獨立環境上,那么后續流程就會一直在你的獨立環境中流轉。

那如果源頭不是你的獨立環境呢,這時候我們先想下上面的流程中,源頭進入了獨立環境是怎么保證后續的處理都在你對應機器中呢?類似與traceid,請求的鏈路中,會攜帶一個projectName的參數,每次路由服務之時,會根據這個name去匹配你之前申請獨立環境時候給你配置的name。這樣就保證了整個請求在你的獨立環境之中。所以,需要你做的就是讓程序明白你當前的訪問需要去對應的獨立環境。

這里阿里巴巴有一個實現的tips。在你部署獨立環境時候,有一個路由到本獨立環境的配置,如果你勾選了,那么會保存你本機(你自己電腦ip)和對應項目名稱的映射,然后當請求鏈路進行過程中,traceid會攜帶請求的源頭ip,如果這個源頭ip 和你本機ip一致,那么就會路由到你的隔離環境中。

阿里巴巴的獨立環境是如何實現的

 


這個時候,我們再引申一下,如果我想把我獨立環境上部署的功能,交給測試測試怎么辦呢,他機器的ip和我的肯定是不一樣的吧。這時候我們在去細想上面提到的實現方案,如果我們在最初的請求中,添加對應的請求頭如下圖中所示。

 

阿里巴巴的獨立環境是如何實現的

 

路由中間件會根據如圖的key值去在每次路由時候尋找是否有獨立的環境存在,有的話就將對應的流量路由過去。

結語

為了讓大家了解獨立環境的必要所以在講述實現方式之前,一步步的延伸了獨立環境的必要性。如果有一天大家有幸感受過一個服務上部署七八個分支的情況,一定會更加理解獨立環境的必要。

注:本文主要講述獨立環境相關,需要自身對traceId實現有大致了解,可以更加容易理解。

 

原文:https://juejin.im/post/5decbc92e51d45583c1cb408

作者:七岱

來源:微信公眾號

分享到:
標簽:獨立 環境
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定