阿里雲服務網格ASM架構技術解析

2020-12-25 科技觀察說

本文整理自阿里雲高級技術專家王夕寧撰寫的《Istio服務網格技術解析與實戰》一書以及阿里雲服務網格產品ASM最新發布內容,針對服務網格的未來發展、服務網格技術帶來的優勢以及對業內首個全託管Istio兼容服務網格產品ASM進行了詳細的介紹。

雲計算已成為企業應用程式的主要範式。隨著企業使其計算和網絡架構現代化,雲原生架構是主要的目標環境。雲原生開源技術圈流行一句話:「infrastructure should be boring」,即IT基礎設施相關技術逐漸趨於穩定。Open Container Initialitive(簡稱OCI)組織的出現,以及以containerd/runc為代表的基礎容器運行時參考實現的廣泛採用,標誌著雲原生時代的第一層基礎設施的穩定化。而Kubernetes在容器編排領域的勝出,則代表了雲原生時代的第二層技術設施的穩定化。

這些底層技術的穩定使得生態系統內的其他廠商有信心在相關技術上繼續投入,同樣也使得終端用戶有信心嘗試和採用雲原生、微服務技術,更為重要的是為雲原生生態內上層技術的繁榮帶來強大的助推作用。

以Kubernetes API為基礎,在CNCF社區中出現了大量Kubernetes-Native的上層技術,包括Service Mesh類的Istio、服務無計算/函數計算類的Knative項目、快速部署管理深度學習框架的KubeFlow項目、複雜應用定義與管理類的Ksonnet、Helm項目等。這些上層技術的出現使得雲原生可以被應用到更為廣泛的場景中,除了常見的無狀態/有狀態應用之外,也包括無伺服器、AI、大數據等多種場景,並反過來推進了Kubernetes等雲原生技術的進一步推廣。

在雲原生行業服務網格Service Mesh計劃的進展中,最值得注意的是,Istio、Envoy和LinkerD將提升這些項目在企業多雲(multi-cloud)計算中的顯著性。到2020年,許多企業將開始把服務網格納入其努力的核心,即在其分布式計算環境中,在容器化本地資源和越來越多的公有和私有雲結構之間搭建靈活的橋梁。雲提供商將加強對託管服務的支持,這些託管服務簡化了通過網格和中心輻條架構對數千個虛擬私有雲和內部網絡的互聯和管理。毫無疑問,服務網格將成為多雲領域中最主要的網絡管理底板。

服務網格與微服務框架

針對「服務網格」這個相對比較新的技術術語,很多人以為它就是一個新的微服務框架,譬如說以當前最為流行的社區開源服務網格Istio為例,它與已經存在的微服務框架如Dubbo、Spring Cloud等相比,服務網格其實是一種不同的架構體系。雖然兩者所解決的問題有些是類似的,譬如都會去解決服務架構中分布式特點帶來的複雜性問題,但是兩者解決這些問題的方式手段是不同的。

具體來說,當前服務網格技術包含了以三個特點:

服務治理能力Sidecar化通過Sidecar機制將服務治理功能標準化、統一化服務治理能力的可擴展性服務治理能力Sidecar化

在服務網格技術使用之前,把一個單體應用程式向分布式的微服務架構進行改造,通常來說,服務治理邏輯的實現往往是以代碼庫的方式構建在應用程式本身中,代碼庫中包括了服務發現、熔斷、限流等功能,在不同的應用程式中的代碼庫的版本也可能不同,不同的情況下也可能會帶來衝突問題。此外,代碼庫的版本一旦變更,即使應用邏輯並沒有任何變化,整個應用也要隨之全部變更。而通過把這些服務治理的能力Sidecar化,就能夠把服務治理的能力與應用程式本身進行解耦,可以較好地支持多種程式語言、並且不需要依賴於某種特定技術框架。一方面,針對Sidecar代理的生命周期管理和針對應用程式本身的生命周期管理可以獨立,提升了應用管理和運維管理的靈活性;另一方面,與傳統的SOA架構相比,這種去中心化的架構,有利於提升系統的可伸縮性。

通過Sidecar機制將服務治理功能標準化、統一化

隨著Sidecar代理功能的增強,原本在代碼庫中包含的功能逐漸地下沉到Sidecar代理中,這些功能包含了服務治理中需要的諸如流量管理、熔斷、重試、客戶端負載均衡的能力、安全以及可觀測性能力等。這些能力的標準化、統一化,可以解決複雜系統中微服務實現面臨的差異大、缺少共性的問題,可以很好地支持不同的程式語言實現應用服務的治理。

與此同時,容器編排技術的更加成熟,加速了Sidecar代理的普及與使用的便捷性。試想一下,如果每一個Sidecar代理都需要手工去維護注入、去管理它的生命周期,那它的價值與帶來的複雜性相比,就顯得比較單薄。Kubernetes是一個出色的容器部署和管理平臺,提供了一系列的API可以支持很自然的擴展,通過這些機制,Sidecar代理可以在應用程式的容器啟動時自動注入到對應的Pod中。

服務治理能力的可擴展性

儘管Sidecar代理已經把服務治理過程中常用的一些功能進行了封裝實現,但它的可擴展能力必須具備,譬如如何與已有的後端系統做對接,如何與日誌系統、監控系統、授權系統對接,如何解決用戶的一些特定需求。這個時候,一個Sidecar代理的可擴展性顯得尤為重要,而且在一定程度上會影響Sidecar代理的普及。

在Istio1.5之前的架構中,對Sidecar能力的擴展主要集中在Mixer組件上。注入了Sidecar代理的每個服務到服務的連接都需要經過Mixer,以進行指標metrics數據的上報和授權檢查,這樣一來會導致服務之間的調用延遲更長,伸縮性也變差。同時,Envoy要求使用代理程序的程式語言C++編寫,然後編譯為代理二進位文件。對於大多Istio用戶而言,這種擴展能力具有一定的挑戰性。

而在採用了新架構之後,Istio使用WebAssembly技術將其擴展模型與Envoy進行了合併。WebAssembly支持幾種不同語言的開發,然後將擴展編譯為可移植字節碼格式。這種擴展方式既簡化了向Istio添加自定義功能的過程,又通過將決策過程轉移到代理中而不是將其種植到Mixer上,減少了延遲。這裡面的一個典型例子就是原本在Mixer telemetry v1中的prometheus擴展插件,在Istio 1.5新的架構下,Istio標準指標由Envoy代理直接導出,遙測組件被實現為Proxy-wasm插件。

服務網格下的控制平面與數據平面

在雲原生模型中,一個應用程式可能會包含數若干個服務,每個服務又有數百個實例構成,那麼這些成百上千應用程式的Sidecar代理如何統一管理,這就是服務網格中定義的控制平面部分要解決的問題。作為代理,Envoy非常適合服務網格的場景,但要發揮Envoy的最大價值,就需要使它很好地與底層基礎設施或組件緊密配合。Envoy構成了服務網格的數據平面,Istio提供的支撐組件則是創建了控制平面。

這些Sidecar代理形成一個網狀的數據平面,通過該數據平面處理和觀測所有服務間的流量,數據平面扮演了一個用來建立、保護和控制通過網格流量的角色。控制平面就是負責數據平面如何執行的管理組件,是服務網格的大腦,並為服務網格使用人員提供公開API,以便較容易地操縱網絡行為。

如何簡化這些複雜的配置管理、支持不同類型的基礎設施?

服務網格技術的確帶來很多優勢,那麼它使用起來的情況如何呢?下圖中描述了Istio的架構和組件關係,無論是從控制平面還是數據平面來說,它的複雜配置是用戶經常遇到的一些挑戰。特別是在支持多集群、如何支持用戶自建的IDC內的集群、如何支持非容器化應用的統一管理,這些基本成為了用戶使用服務網格技術的阻礙。

為了解決這些問題,阿里雲服務網格產品ASM通過全部託管控制平面的組件,來降低用戶使用的複雜度,用戶只需要專注於業務應用的開發部署。在託管模式下,保持與Istio的兼容,支持聲明式API定義靈活的路由規則,支持多個Kubernetes集群的統一流量管理。在安全方面,可以靈活啟用或者禁用雙向TLS認證,整個網格內的安全配置可以動態生效;在多集群模式下,用戶也不需要去自行管理配置,這些事情都會交給託管平臺來管理。

服務網格ASM產品架構

作為業內首個全託管Istio兼容的服務網格產品ASM,一開始從架構上就保持了與社區、業界趨勢的一致性,控制平面的組件託管在阿里雲側,與數據面側的用戶集群獨立。ASM產品是基於社區開源的Istio定製實現的,在託管的控制面側,Istio的核心組件Pilot組件和安全citadel組件繼續保留使用,用於支撐精細化的流量管理和安全管理。Mixer組件由於前面提到的一些性能問題就沒有引入,而是採用了在數據面側直接對接的方式來支持這些能力,這也是跟新的Istio架構吻合的一點。通過託管模式,解耦了Istio組件與所管理的K8s集群的生命周期管理,使得架構更加靈活,提升了系統的可伸縮性。在深入分析服務網格方面,提供了網格診斷能力,把過去一年多來客戶遇到的問題以及如何解決這些問題的手段變成產品能力。

在擴展與集成方面,ASM產品整合阿里雲服務包括可觀測性服務、網絡互連CEN能力等,同時也優化整合了社區開源軟體包括OPA的支持、授權服務的定製化能力等。此外,隨著Isito1.5新架構的優化,將WebAssembly技術引入服務網格,集合WebAssembly技術的優勢,使得ASM架構成為:託管的高可用彈性控制平面 + 可擴展的插件式的數據平面。

在數據平面的支持上,ASM產品可以支持多種不同的計算基礎設施,這包括了阿里雲ACK 集群、後續跟進ASK集群、ECS虛擬機的支持,此外,ASM也很快就推出一個支持多雲混合雲的能力,能夠針對外部的K8s集群進行支持,不論這個集群是在用戶自建的IDC機房,還是在其他的公有雲之上,都可以通過ASM進行統一的服務治理。

更多關於服務網格Istio技術內容,推薦閱讀《Istio服務網格技術解析與實戰》。

作者簡介:

王夕寧 阿里雲高級技術專家,阿里雲服務網格產品ASM及Istio on Kubernetes技術負責人,專注於Kubernetes、雲原生、服務網格等領域。曾在IBM中國開發中心工作,擔任過專利技術評審委員會主席,作為架構師和主要開發人員負責或參與了一系列在SOA中間件、雲計算、IoT等領域的開發工作,擁有40多項相關領域的國際技術專利。

相關焦點

  • 獨立系統且非Android 阿里雲OS全面解析
    獨立系統且非Android 阿里雲OS全面解析    阿里雲OS其實是作業系統與雲服務相併的研發理念,簡單的來說阿里雲OS如下如所示,筆者找到了阿里雲OS的體系架構。    阿里雲OS移動終端部分基於Linux內核以及WebKit, OpenGL和SQLite等開源庫,採用HTML5構建了基於雲計算的運行環境和移動雲應用框架,同時提供了本地應用的運行環境。
  • 從架構深度解析阿里雲自研資料庫POLARDB
    【IT168 評論】本文根據蔡松露老師在2018年5月10日【第九屆中國資料庫技術大會(DTCC)】現場演講內容整理而成。▲蔡松露 阿里云云資料庫資深技術專家、架構師  阿里云云資料庫架構師,主要負責阿里雲POLARDB、NoSQL技術以及阿里雲資料庫整體架構等工作。
  • 阿里技術官架構使用總結:Spring+MyBatis源碼+Tomcat架構解析等
    對於大部分程式設計師來說,阿里一直都是目標,但想要進入大廠工作並非一件容易的事,那麼大廠究竟用哪些技術呢?今天就由阿里一線P8架構師揭秘,對他使用的技術進行了一個總結,這個PDF總結主要涉及到Spring、MyBatis源碼以及Tomcat等,希望能夠幫助到大家,對自己有一定提升。
  • 阿里雲發起成立「金融核心先鋒聯盟」 加速替換傳統IT架構
    北京時間6月9日消息,2020阿里雲峰會上,阿里雲發起成立「金融核心先鋒聯盟」,幫助金融機構核心系統擺脫傳統集中式架構,轉向以雲平臺技術為核心的分布式架構,快速構建應對高並發業務場景的能力,全面擁抱開放金融時代。
  • 將公共雲延伸至本地,阿里雲推出本地化部署服務雲盒Cloud Box
    【天極網IT新聞頻道】9月18日,杭州雲棲大會上,阿里雲宣布推出的本地化部署服務阿里云云盒Cloud Box,基於自研「神龍X-Dragon架構」,融合計算、存儲、網絡三大公共雲前沿技術為用戶提供本地部署軟硬一體的全託管雲服務,為需要將業務部署在本地機房的用戶提供了和公共雲一致的服務體驗,滿足計算離數據更近的用戶需求。
  • 阿里雲POLARDB*:創新的雲託管資料庫
    要跨越這些障礙,可以採用雲計算解決方案,它儼然已經成為了大大小小的組織使用的主流技術。關係型資料庫作為雲託管服務應用廣泛,稱為資料庫即服務(DBaaS)解決方案。但是基於雲的RDBMS可能本身存在難題。因此,雲託管關係型資料庫解決方案必須實現數字轉型。
  • 阿里雲迎來了又一輪「剛需」
    目前,阿里已經形成了從商業到金融、物流、雲計算全方位面向數字經濟時代的基礎設施服務提供商,也就是「阿里巴巴商業作業系統」, 幫助企業在品牌、商品、銷售、營銷、渠道、製造、服務、金融、物流供應鏈、組織、信息技術等11大商業要素實現全面的在線化和數位化。
  • 【觀察】螞蟻金服與阿里雲互助背後,「雙劍合璧」的三重新價值
    那麼,螞蟻金服和阿里雲的「雙劍合璧」,究竟能給金融行業帶來哪些支持呢?歸結起來,就是雙方能夠提供從底層技術架構到上層應用和生態創新的「全鏈路」金融服務能力,我們可以從三個維度來做觀察:更關鍵的是,阿里雲經歷過嚴苛的場景挑戰,有信心保證這套架構能夠實現金融機構對穩定性、業務連續性、安全性的極高要求。」其次,從應用層面看,螞蟻金服通過過去十五年的沉澱,已經能夠向行業提供完整的數字金融解決方案。
  • 使用阿里雲CDN加速OSS訪問
    阿里雲CDN分擔源站壓力,避免網絡擁塞,確保在不同區域、不同場景下加速網站內容的分發,提高資源訪問速度。阿里雲CDN將源站資源緩存至阿里雲遍布全球的加速節點上,當終端用戶請求訪問和獲取該資源時,無需回源,系統自動調用離終端用戶最近的CDN節點上已緩存的資源。
  • 站在巨人肩膀上 啟辰VSA架構技術解析
    站在巨人肩膀上 啟辰VSA架構技術解析 而中國品牌崛起的背後,是多年對外國品牌技術的消化、吸收以及創新。東風啟辰品牌成立於2010年9月8日,經過9年多的造車積澱,基於全新VSA架構的首款車型——啟辰星(參數|詢價)終於落地。啟辰星(參數|詢價)這款具有裡程碑式意義的車型,其背後的VSA架構究竟包含了怎樣的內涵呢?今天我們就來深入了解一下。
  • Serverless爆發,AWS微軟卡位,騰訊雲阿里雲華為雲緊跟
    在Serverless計算最主要的技術方向——函數即服務平臺(FaaS)方面,AWS、微軟兩家企業居於領導者象限,騰訊雲、阿里雲與谷歌雲、Nimbella、IBM、Cloudflare等處於強勁表現者象限,Oracle則處於挑戰者象限。雲計算企業已經習慣了「大投入有大回報」的行業規律。
  • 在雙十一創新技術試驗場上,阿里用了哪些武器? - 軟體與服務...
    那讓我們看看,雙11背後的阿里的那些神秘的技術。1、神龍架構,要將虛擬化之間性能和損耗降為02017年,阿里雲發布了第一代神龍架構。2019年杭州雲棲大會上,阿里雲推出了第三代神龍架構,全面支持ECS虛擬機、裸金屬、雲原生容器等,在IOPS、PPS等方面提升5倍性能。
  • 阿里雲、華為雲、谷歌雲都已入局,盤點13家雲計算廠商的RPA
    阿里雲RPA4.0採用主流C/S架構模式,前端客戶端採用.net平臺,基於Windows系統具有自主研發的SDK及各項功能,後端服務端採用Linux(CentOS)作業系統,提供各類後臺服務和組件。同時本次升級將服務型機器人、有人值守機器人、無人值守機器人的客戶端歸一,使架構更加精簡。
  • 在線教學戰「疫」打響,VIPKID背後是阿里雲
    如此一來,阿里雲核心數據中心分布、骨幹網絡能力解決了VIPKID的全球網絡互通和優化;並通過國內外供應商和節點網絡,增加國內邊緣節點與海外節點的覆蓋,加上阿里雲「邊緣—中心」路由優化技術,優化回源網絡質量;最後,阿里雲SDN方案,能夠全鏈路優化端到端的使用場景。
  • 雲原生生態大會Day2,網易數帆Service Mesh與百勝中國中臺架構實踐
    12月16-17日,由CNCF、網易數帆、VMware、PingCAP和阿里雲聯合主辦2020 Cloud Native Day雲原生生態大會線上召開,來自聯合主辦方及字節跳動、Zilliz、百勝中國等公司的17位重磅演講嘉賓,帶來2天主題分享,解析雲原生領軍企業和組織
  • 繼騰訊、阿里、百度之後,華為圍繞「雲+AI」進行組織架構調整
    張勇在致阿里人的公開信中稱:集團過去幾年在實施中臺戰略過程中構建的智能化能力,包括機器智能的計算平臺、算法能力、資料庫、基礎技術架構平臺、調度平臺等核心能力,將全面和阿里雲相結合,向全社會開放、為全社會服務。
  • 阿里雲電腦無影哪裡購買 阿里雲電腦無影購買地址入口
    阿里雲電腦無影哪裡購買 阿里雲電腦無影購買地址入口 最近,阿里雲正式的推出了一個雲電腦——無影,目前正向企業辦公市場發售
  • 微博宕機復盤:什麼樣的技術架構,可支持80個明星並發出軌?
    微博曾經誇下海口,支持8個明星並發出軌,再一次打臉了,微博技術同學要好好反省、認真反省。話又說回來,為什麼微博總是宕機?從技術上來說,什麼樣的架構能夠應對瞬間億級訪問量?真的能支持8個明星、80個明星的瞬間億級流量?
  • 申通使用阿里雲PolarDB支撐618業務高峰 去O後IT成本降幅超50%
    申通快遞是國內較早經營快遞業務的民營快遞品牌,以往使用傳統IOE架構來支撐業務的運行,但是隨著公司業務的快速發展,原有IT系統遇到了瓶頸。以應對電商大促為例,以往申通要提前幾個月進行相關Oracle硬體和資料庫的擴容,但是大促之後,IT資源的使用率則非常低,投入產出比較低。
  • 阿里組織架構大調整:核心電商高管再次密集變動(信息圖)
    導讀:12月11日,阿里巴巴集團進行了新一輪的組織架構調整。當日,淘寶天貓總裁蔣凡、阿里本地生活服務公司總裁王磊分別發布內部信,宣布新一輪組織架構調整的信息。目前,阿里巴巴內部多名高管職位發生變動。本地生活再獲技術支撐阿里本地生活服務公司總裁王磊發布的內部信中則表示,本地生活不只是一城一地一店一戶的競爭,決勝的關鍵在於誰能更好的參與和推動各行各業的數位化進程,數位化本地生活服務才是餓了麼真正的未來。