您當前的位置是:  首頁 > 資訊 > 文章精選 >
 首頁 > 資訊 > 文章精選 >

分布式系統(tǒng)架構與云原生—阿里云《云原生架構白皮書》導讀

2020-08-05 10:48:11   作者:朱祺 國際電氣電子工程師協(xié)會IEEE高級會員、阿里云全球MVP   來源:CTI論壇   評論:0  點擊:


  1 云原生與分布式系統(tǒng)架構的關系
  1.1 云原生架構的定義
  《云原生架構白皮書》中對于云原生架構的定義為“基于云原生技術的一組架構原則和設計模式的集合,旨在將云應用中的非業(yè)務代碼部分進行最大化的剝離,從而讓云設施接管應用中原有的大量非功能特性(如彈性、韌性、安全、可觀測性、灰度等),使業(yè)務不再有非功能性業(yè)務中斷困擾的同時,具備輕量、敏捷、高度自動化的特點。”
  1.2 分布式系統(tǒng)架構的定義
  此處定義參考百度百科為“在一個分布式系統(tǒng)中,一組獨立的計算機展現(xiàn)給用戶的是一個統(tǒng)一的整體,就好像是一個系統(tǒng)似的。系統(tǒng)擁有多種通用的物理和邏輯資源,可以動態(tài)的分配任務,分散的物理和邏輯資源通過計算機網(wǎng)絡實現(xiàn)信息交換。系統(tǒng)中存在一個以全局的方式管理計算機資源的分布式操作系統(tǒng)。通常,對用戶來說,分布式系統(tǒng)只有一個模型或范型。在操作系統(tǒng)之上有一層軟件中間件負責實現(xiàn)這個模型。”
  1.3 云原生與分布式系統(tǒng)架構的關系
  分布式架構的重點在于解決計算力的保障問題以及為了提高計算力并同時確保系統(tǒng)的可靠性、可用性和安全性而產生的諸如彈性伸縮、負載均衡、分布式存儲等問題,其目標是在于構建一個分布式的安全可靠的計算力基礎平臺。通常來說,對于信息系統(tǒng)的架構方式的進化和改變即是伴隨著接入數(shù)據(jù)和所提供的業(yè)務由少變多的過程,目前為止信息系統(tǒng)的架構經(jīng)歷了單機架構、集群架構、分布式架構、分布式多活數(shù)據(jù)中心架構幾個階段,同時伴隨著業(yè)務系統(tǒng)架構一同演變的還有各種外圍系統(tǒng)和存儲系統(tǒng),比如關系數(shù)據(jù)庫的分庫分表改造、從本地緩存過渡到分布式緩存等。
  要理清分布式架構和云原生的關系,先來歸納一下分布式架構與云之間的關系,云一般指的是一個提供資源的平臺,云計算的本質是按需分配資源和彈性計算,而針對目前數(shù)據(jù)井噴并隨著物聯(lián)網(wǎng)應用的推進仍然接入量在呈指數(shù)上升的現(xiàn)狀下,分布式架構是最能夠滿足構建一個合格的云平臺所應具有特質的架構方式。云原生應用即專門為在云平臺部署和運行而設計的應用,采用云原生的設計模式可以優(yōu)化和改進傳統(tǒng)應用模式,使應用更加適合在云平臺上運行,因此云原生發(fā)展的本質需求來自于SAAS層面設計理念的改進,由于SAAS層的設計理念的改進而進一步從北向往南向推動了PAAS層特別是中間件的升級從而確保整個云平臺的架構能夠更好的服務于云原生架構的改變。
  因此,云原生和分布式架構的升級和迭代是一個滾動的過程,為了更好的發(fā)揮云平臺的特點而有了云原生的需求和設計模式改變,而在這個過程中云原生也反過來促進了下層架構的升級。這個迭代的過程充分的反應了互聯(lián)網(wǎng)或者說數(shù)據(jù)時代開發(fā)理念的特征,即滾動而非單向。
  1.3 《云原生架構白皮書》章節(jié)導讀
  通過《云原生架構白皮書》的第1章和第2章內容可以充分的理解云原生的本質和云原生架構的特點,在閱讀這兩章的內容時推薦參考分布式架構的相關書籍,因為云原生和分布式架構密切相關,但是升級迭代的著力點又有所區(qū)別,所以能夠結合在一起進行閱讀是最好的。
  2 云原生主要架構原則和技術分析
  2.1 微服務和小系統(tǒng)服務
  微服務架構,從宏觀上來看,無非就是細化了服務拆分過程中的粒度,粒度越細,業(yè)務耦合越小,容錯性就越好,并且后期擴展也會越容易。但是顆粒度過細,又會帶來另外一些麻煩比如提升了維護成本、影響排查問題時的效率、業(yè)務開發(fā)人員很難梳理清楚服務之間的依賴關系等。
  因此《云原生架構白皮書》在微服務相關章節(jié)中又提到了小系統(tǒng)服務的概念,即是一個顆粒度的中間狀態(tài),其實核心就是一個服務拆分顆粒度的問題,白皮書中的第3章中有專門章節(jié)對于云原生微服務特別是微服務設計過程中的約束做了詳細介紹,根本目的就是使微服務的發(fā)展處于一個受約束的狀態(tài),而不是因為有了微服務的理念就是服務拆分的顆粒度越細越好。
  2.2 容器技術與云原生的關系
  從白皮書中提供的對比圖可以清楚的發(fā)現(xiàn),云原生在代碼方面,對于代碼通常所包含的三部分:業(yè)務代碼、三方軟件和處理非功能特性的代碼進行剝離,最終想實現(xiàn)的理想狀態(tài)是把所有非功能性代碼(即除業(yè)務代碼部分)從SAAS層剝離到PAAS層和IAAS層中去,當然目前還是沒有完全做到。剝離非功能代碼仍然是一個設計模式理念的變化,而在這個理念的落地過程中容器技術成為了最好的工具。
  在白皮書中這張對比圖的基礎上,根據(jù)其他一些公開資料能夠更清晰的反映出容器技術應用之后,云原生架構所產生的變化。
  單機架構
  注:以上圖片來源于《超大流量分布式系統(tǒng)架構解決方案:人人都是架構師2.0》高翔龍著 電子工業(yè)出版社
 
  集群架構
  注:以上圖片來源于《超大流量分布式系統(tǒng)架構解決方案:人人都是架構師2.0》高翔龍著 電子工業(yè)出版社
  服務化架構
  注:以上圖片來源于《超大流量分布式系統(tǒng)架構解決方案:人人都是架構師2.0》高翔龍著 電子工業(yè)出版社
  在這種架構方式下以被廣泛應用的Kubernetes為例,K8S中的大部分概念如Node(除了集群控制節(jié)點Master外K8S集群中的其他機器)、Pod(容器)等可以被看作資源對象,幾乎所有資源對象都可以通過K8S提供的kubectl工具執(zhí)行增、刪、改、查等操作并將其保存在etcd中持久化存儲,也就是說容器服務包括DOCKER、K8S等的全新設計模式天生就適合于分布式服務架構。當然相比集群架構來說,在開發(fā)運維自動化水平的要求上也自然較高以確保對于容器能夠進行有序而全局化的管理防止系統(tǒng)出現(xiàn)不可控制的狀態(tài)。
  2.2 《云原生架構白皮書》章節(jié)導讀
  白皮書的第3章和第4章主要介紹的就是主要的云原生技術和阿里云原生架構設計的內容,其實核心的技術就是容器技術,在這個基礎上包括微服務的理念、Serverless和Service Mesh等才能夠被順利的付諸于實踐,而在容器技術中自動化水平又是一個重中之重,所以白皮書中數(shù)次提到的所有過程自動化原則就是能否發(fā)揮云原生技術優(yōu)勢的核心因素。
  3 小結:云原生的未來發(fā)展方向
  云原生畢竟是一個很大的概念,理論上所有從設計和開發(fā)之始就以部署在云上的設計理念都能夠稱為云原生,而微服務則是云原生在服務維度典型的表現(xiàn)形式,而容器服務即是能夠將微服務成功落地的核心技術。Serverless是一個技術也可以從字面意思理解為未來的發(fā)展方向,核心理念仍然是將非業(yè)務部分的功能下沉至基礎設施,從這點上來說,理想中的Serverless甚至不必包含目前K8S中的集群容量規(guī)劃、安全維護和故障診斷等功能,將這些集中考慮為云基礎設施所應該具有的功能,而功能模塊只需考慮自身的業(yè)務,充分體現(xiàn)出的是輕量,通過事件驅動將輕量的服務和服務間以及輕量服務和云平臺之間連接起來,整個體系相比集群化部署來說,與其說是一個系統(tǒng),不如說是云基礎設施基礎上各類微服務形成的生態(tài)。
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題

CTI論壇會員企業(yè)