云原生集成開發環境——TitanIDE
通過網頁在任何地方更安全、更高效地編碼2022-12-19
739
什么是服務網格(Service Mesh)?
服務網格是您將應用程序添加到的專用基礎架構層。服務網格為您的云原生微服務架構提供集中管理。通過這種方式,您可以在通信、路由、可靠性、安全性和可觀察性等方面優化您的應用程序。
微服務架構面臨哪些挑戰?
將微服務與另一種應用程序風格(單體應用程序)進行比較。單體應用程序通常內置了所有業務邏輯,包括入口規則。當您從單體架構遷移到微服務架構時,您最終會得到許多較小的服務。這些“微”服務中的每一個都執行您應用程序的獨立功能。根據您的單體應用程序的大小,微服務的數量可能非常多,有時達到數百或數千。單體應用解決了流量如何進入應用的問題(南北流量)。相比之下,微服務還相互組合或重用功能(東西向流量)。
如果沒有服務網格,每個微服務不僅需要業務邏輯,還需要連接邏輯。連接性挑戰包括如何發現和連接到其他微服務、如何交換和保護數據以及如何監控網絡活動。此外,微服務無需完全重新部署即可快速更改。它們通常在 Kubernetes 集群中動態移動。您的應用程序甚至可能分布在多個集群、可用性區域或區域中以實現彈性。
因此,微服務架構中的一些最大挑戰包括:
- 跟蹤應用程序之間的變化,尤其是隨著微服務數量的增長。
- 在所有服務和集群中實施安全性和合規性標準。
- 使用一致的策略控制網絡流量。
- 排除網絡錯誤。
讓我們看一下沒有服務網格的微服務架構。除了實現業務邏輯,每個微服務還必須確保它可以與其他微服務通信;確保通訊安全;應用重試、故障轉移和轉移策略;根據請求發送到哪個微服務來操作標頭;捕獲指標和日志;最重要的是跟蹤微服務架構的變化。雖然您可以跨幾個微服務管理這些任務,但隨著您向生態系統中添加更多微服務,復雜性會增加。
服務網格如何解決這些挑戰?
服務網格不會為每個微服務實現通信、安全、指標和其他層。為了抽象服務到服務的通信,服務網格使用代理。代理,也稱為邊車,與您的微服務一起部署。例如,代理可以是與您的應用位于同一 Kubernetes pod 中的容器。代理構成了服務網格的數據平面。通過攔截微服務之間的每一次通信,您可以控制流量。例如,您可以創建規則來轉發、保護或操縱請求。
每個 sidecar 代理的配置包括流量加密、證書和路由規則。服務網格指定并應用跨微服務的代理配置。這樣,您就可以在整個微服務架構中獲得一致的網絡連接、安全性和合規性。所有代理都將網絡流量指標發送回您可以使用 API 訪問的控制平面。然后,您可以確定服務網格的健康狀況。
服務網格有哪些優勢?
- 分離業務和網絡邏輯:
- 設置一次策略并在您需要的任何地方應用它們
- 確保高可用性和容錯能力
- 輕松擴展您的微服務架構
- 監控服務網格的健康狀況和性能
什么是SolarMesh?
雖然服務網格有這么多優勢,并且直到今天已經有很多的用戶將服務網格使用在自己的業務系統中,但是對于很多的常見的用戶而言使用和運維這樣的一套系統還是過于復雜,在通常的使用中,可能我們只需要做一次灰度發布,這時候就涉及不同規則的配置,非常容易出錯,如何定義好應用的VirtualService、DestinationRule等規則對于大部分使用者而言都需要很高的學習成本,為了減少使用的成本和運維難度,SolarMesh通過高度的產品化能力將服務網格的能力推出,只需要按照常見的思路去操作控制臺,即可輕松的完成比如灰度發布、故障注入、熔斷限流等能力。
什么是SolarMesh?SolarMesh是基于服務網格構建的微服務監管平臺。SolarMesh基于 Istio 及容器技術,提供微服務流量監控和管理,提供完善的非侵入式服務治理解決方案,在提供Istio流量管理等基礎能力外,還提供多集群納管、監控告警、Wasm插件、注冊中心、虛擬機、接口流量、訪問日志、Istio組件金絲雀升級等能力,幫助企業在紛繁復雜的微服務調度中快速定位問題,提高研發效率。
Solarmesh的特點
SolarMesh 有如下四大特點:
輕量:組件包含控制端1個服務、業務端1個服務,資源占用低,維護簡單
直觀:通過流量視圖直觀掌控單集群、多集群服務狀態
便捷:安裝便捷(solarctl)、配置Istio規則便捷、查看微服務狀態便捷
規范: SolarMesh使用標準的istio規范操作,支持多版本istio接入
SolarMesh支持哪些應用場景?
1.云上應用故障的可視化排查
SolarMesh提供流量視圖來體現服務的可觀察性。流量視圖頁面顯示網格內服務和工作負載的拓撲,并通過實時的網絡流量、延遲、吞吐量等對其進行展示。加上SolarMesh接口流量能力,可以將線上故障精確到接口,能快速排查故障。
2.流量管理
通過SolarMesh,可以輕松實現基于配置的流量管理:將流量管理與基礎設施管理分隔開來,并提供了許多獨立于應用代碼之外的流量管理功能,在部署規模逐步擴大的過程中幫助簡化流量管理。
3.業務可觀測
通過SolarMesh,可以輕松實現服務之間的可觀測性,借助強大可靠且易于使用的監控功能,快速有效地檢測和修復問題。SolarMesh提供服務、負載、容器、接口級別全方位的監控能力,提高診斷效率。
4.服務安全
通過SolarMesh,可以輕松實現服務之間的雙向TLS認證:雙向TLS認證在實現過程中不需要更改服務代碼,可以為每個服務提供基于角色的強大身份認證機制,以實現跨集群、跨云端的交互操作。
SolarMesh有哪些基本功能?
- 多集群納管
- 流量管理
- 接口流量
- Wasm
- 虛擬機
- 注冊中心
- 監控告警
- ……