資安

阿里雲託管網格服務入門與應用部署實踐(上)

【MVP時間】線上峰會,一鍵收藏

《阿里雲託管網格服務入門與應用部署實踐》精彩直播

查看下篇文章,點擊這裡。

一、服務網格簡介

在雲原生應用的早起,我們大多使用的是單體應用,將所有業務相關的應用部署、打包,然後進行發佈,這種架構下,隨著業務越來越複雜,應用之間越來越不可拆分,不同模塊的可擴展性、伸縮性非常差。為了解決以上問題,我們提出了微服務架構,它是依據功能將服務劃分成不同的應用單元和業務組件,組件之間通過API的方式相互調用,同時相互獨立的組件可以做水平和垂直的擴容,提升了架構的可伸縮性

然而,微服務架構帶來了良好的伸縮性的同時也提升了運維的複雜性,進而誕生了容器與編排架構,容器技術可以自定義軟件運行的基礎環境,方便進行資源的隔離,而容器的編排技術可以將應用編排到不同的機器上,提供用於基於容器應用可擴展性的基本機制。在基於容器部署的軟件環境基礎上,我們需要一個基於容器的、用於服務治理的框架,於是誕生了服務網格。不同的服務有著各自的特點,各自的優劣對比如下圖所示。

image.png

如果不使用網格服務而使用微服務架構,那麼在容器環境下的微服務治理有多難呢?難點主要包括

  • 通信鏈路複雜,難以定位微服務問題;
  • 一些服務功能難以實現,比如服務發現、負載均衡、故障容忍、端到端監測、動態路由等;
  • 服務功能以代碼庫的方式緊耦合在應用程序本身中,容易引發版本衝突問題;
  • 不同編程語言的解決方案差異大、缺少共性。

在服務網格中,通過Sidecar代理處理以上問題,堪稱容器微服務流量管控“神器”,同時將這些功能標準化,應用程序開發人員可以專注於業務邏輯的實現。形象的來講,Sidecar就像下圖所示的摩托車的邊車一樣,服務去哪,Sidecar就去哪,比如在目前非常出名的服務網格Istio中,它的Sidecar就是一個C++編寫的Envoy組件,服務網格通過這種方式,很好的實現了包括服務發現、可觀測性、限流等各種服務功能。

image.png

通過第三方去做服務治理的傳統方式與服務網格的區別如下圖所示。在傳統方式中我們通過Library或者其他方式將服務治理能力集成到應用中,但是如果Library的版本不同或者語言框架不同的時候服務治理能力就會出現參差不同的差異,給版本升級帶來巨大的不便;而在服務網格中,我們用Sidecar代理的方式來解決這個問題,使得服務能力的提升或升級獨立於應用本身。

image.png

此外,由於我們使用了Sidecar代理方式,方便了我們進行統一的管理。比如Istio中的Pilot組件不斷地去讀取用戶提交到數據庫中的規則配置,然後再和每個服務的Sidecar代理進行信息交互,實現整個平臺的統一管理。通過服務網格,我們將這種服務治理的能力統一化、標準化,主要功能服務以及特性如下圖所示。

image.png

二、阿里雲服務網格(ASM)

(一)ASM簡介

服務網格提供了強大的功能同時,也帶來了如下圖所示的更多複雜性,首要的是部署複雜性,而其複雜性也成為了一部分用戶望而卻步的原因。

image.png

為了解決其部署複雜性的問題,阿里雲發佈了相關產品:阿里雲服務網格(Alibaba Cloud Service Mesh,簡稱 ASM)。阿里雲服務網格提供了一個全託管式的服務網格平臺,兼容於社區 Istio 開源服務網格,用於簡化服務的治理,包括服務調用之間的流量路由與拆分管理、服務間通信的認證安全以及網格可觀測性能力,從而極大地減輕開發與運維的工作負擔。從下圖可以看到阿里雲的容器團隊之前已經提供了ACK、ASK和ACR等服務,ASM是這些服務之上的一個流量治理的平臺。

image.png

ASM的架構如下圖所示,它其實是一個託管式的、統一的流量管理和服務治理的平臺,百分百兼容社區的Istio,接入了阿里雲的一些能力,比如安全能力、日誌能力、分佈式追蹤能力等,並且接入了雲企業網,做到了不同網絡之間的相互打通。

image.png

(二)ASM適用場景及優勢

ASM有著強大、便捷的功能,那麼ASM適用於哪些場景呢?當前,ASM適用的場景主要有:

  • 多集群應用統一流量管理:對於部署在多地域、混合雲多雲、不同類型的K8s集群,提供一致的可見性和流量管理。
  • 端到端可觀測性:提供跟蹤、監控和日誌記錄功能的優化整合,幫助用戶深入分析網絡及應用服務的性能表現和運行狀況。
  • 服務安全加固與靈活授權:通過mTLS以漸進方式逐步實現服務之間通信的安全,提供簡單易用、基於角色的訪問權限控制與自定義授權能力,支持所有變更操作可審計追蹤。
  • 應用容器化平滑上雲:將線下環境存量應用遷移上雲,通過部署和配置服務網格,將流量動態路由到線下舊版環境或線上新版環境,處理無狀態服務遷移。

服務網格ASM與ACK Istio addon、雲上自建Istio相比,三種方式在管控平面、用戶成本、安全性等方面的對比如下圖所示:

image.png

(三)ASM流量管理

如下圖所示,ASM首先將數據分成控制面和數據面,數據面支持不同的代理服務,在控制層面可以為用戶託管API Server訪問入口、ETCO、Istio Operator等,實現流量和服務的統一管理。
並且在流量管理的策略上,ASM完全兼容Istio社區API,為用戶提供更加便捷的服務。

image.png

《阿里雲託管網格服務入門與應用部署實踐》精彩直播

查看下篇文章,點擊這裡。

Leave a Reply

Your email address will not be published. Required fields are marked *