最近參與了 公有云微服務項目
,已經有一段時間未公開發表。經過此次改造公有云微服務項目的實踐過程,分享一下公有云微服務網絡架構,及服務部署方案。
每一個平臺的網絡架構圖都相似,但細節根據自有服務有組件又各不同,別人的架構拿過來不一致適合你的架構,那麼首先要了解每層架構及每一個服務的職責,以及服務與服務之間的交互邏輯。咱們根據私有云的架構遷移過來,保持了部分架構,補充了原來在私有云部署中公共組件部分。遷移到公有云後,一些公共組件由咱們本身搭建並運維。整理總覽圖請看下圖:web
外網層也是網絡架構中最上一層,是指服務報露在互聯網中使用的,經過IP或域名的方式訪問服務。訪問的域名經過解析服務器,解析到指定的互聯網機器。
互聯網機器通常是使用雲服務的方式構建。sql
雲計算按照服務類型大體能夠分爲三類:數據庫
按照雲計算服務的部署方式和服務對象的範圍能夠將雲計算分爲三類,即公共雲、私有云和混合雲。緩存
雲服務是基於互聯網的相關服務的增長和使用,一般涉及互聯網動態易擴展且常常是虛擬化的資源。雲是網絡、互聯網的一種比喻說法。
雲服務指經過網絡以按需、易擴展的方式得到所需服務。這種服務能夠是IT和軟件、互聯網相關,也但是其餘服務。它意味着計算能力也可做爲一種商品經過互聯網進行流通。
安全
這一層咱們使用雲服務提供的WAF防火牆
,用來於外網與租戶區之間作了安全防禦。WAF防火牆中增長一個vip
來管理租戶區的應用服務。服務器
租戶區是經過雲服務購買的ECS服務器
、雲數據庫RDS Mysql版
、雲數據庫Redis版
、對象存儲OSS
、雲通訊-短信服務
、彈性公網IP
等資源。微信
根據以上資源根據咱們的服務劃分兩類:網絡
應用服務的入口是Nginx,應用服務又分三層:統一網關層
、Web應用服務層
、原子化服務層
。架構
由防火牆的VIP打到應用服務的Nginx
上面,Nginx代理到應用網關
,全部網絡流量都通過網關,由網關統一服務轉發。轉發只能轉發到Web應用服務
,不能轉發到中臺服務。Web應用服務與中臺服務或中臺服務之間訪問採用RPC遠程調用
。
應用服務須要調用基礎組件時根據可擴展方案,訪問須要通過VIP。應用服務訪問的基礎組件都不是真實的機器 ,而是VIP(Virtual IP Address)。運維
是根據業務需求,實現業務邏輯。組合中臺服務,達到實現業務需求的目地。
在圖中根據本身的業務劃分本身的服務,這裏只是簡單羅列了一下幾個服務做爲表明。但不侷限於這幾個服務
互聯網電商行業,根據業務需求不斷變動,服務要求不斷穩定。不一業務需求變動,而形成服務的不穩定性。那麼根據職責模塊劃分爲多個原子化服務,並根據職責劃分到各個系統中。從而達到中臺服務負責基礎數據及穩定業務服務,多變或可定製化服務由Web應用服務提供。
在圖中根據本身的業務劃分本身的服務,這裏只是簡單羅列了一下幾個服務做爲表明。但不侷限於這幾個服務
在高可用方案中,爲了保證最低高可用每一個系統均分配兩臺ECS,保證高可用。
基礎組件的入口是LVS,在應用服務中提到LVS中須要分配VIP。
VIP(虛擬IP)是比較常見的一個用例就是在系統高可用性(High Availability HA)方面的應用,一般一個系劃外的狀況而發統會由於平常維護或者非計生宕機,爲了提升系統對外服務的高可用性,就會採用主備模式進行高可用性的配置。當提供服務的主機M宕機後,服務會切換到備用主機S繼續對外提供服務。而這一切用戶是感受不到的,在這種狀況下系統對客戶端提供服務的IP地址就會是一個虛擬IP,當主機M宕機後,虛擬IP便會漂浮到備機上,繼續提供服務。
在這種狀況下,虛擬IP就不是與特定計算主機或者特定某個物理網卡對應的了,而是一種虛擬或者是說邏輯的概念,它是能夠自由移動自由漂浮的,這樣一來既對外屏蔽了系統內部的細節,又爲系統內部的可維護性和擴展性提供了方便。
LVS屬於四層代理, 在組件中採用TCP協議的由:
除此以外,基礎組件中,還包括:配置中心 zookeeper
、搜索服務 Solr
這兩個服務不通過LVS代理,直接由應用服務訪問。
因每一個組件的實現原理不同,使用的機器數量也不同。他們每一個服務的高可用後臺單獨爲每一個組件詳細描述。
最後,根據以上描述畫出總體網絡架構圖:
致此,講解了咱們在這些公有云微服務項目的實踐及部署方案,總體網絡架構圖以下:
以上是根據我的在這個項目中的實踐和理解,若你有更好的方案或想法可關注 微信公衆號"猿碼"
,發表你的見解。或在文章底部留言,建議咱們對技術的熱愛~~~~
你的關注會繼續發表相關話題,及相關技術。
再次感謝您已看徹底文,歡迎關注微信公衆號猿碼
,您的關注我會持續更新文章!