1. 程式人生 > >Istio概念原理&&為什麽要使用 Istio?

Istio概念原理&&為什麽要使用 Istio?

實施 可擴展 分布式應用 通信 程序 只需要 團隊 同時 通過

使用雲平臺可以為組織提供豐富的好處。然而,不可否認的是,采用雲可能會給 DevOps 團隊帶來壓力。開發人員必須使用微服務以滿足應用的可移植性,同時運營商管理了極其龐大的混合和多雲部署。Istio 允許您連接、保護、控制和觀測服務。

在較高的層次上,Istio 有助於降低這些部署的復雜性,並減輕開發團隊的壓力。它是一個完全開源的服務網格,可以透明地分層到現有的分布式應用程序上。它也是一個平臺,包括允許它集成到任何日誌記錄平臺、遙測或策略系統的 API。Istio 的多樣化功能集使您能夠成功高效地運行分布式微服務架構,並提供保護、連接和監控微服務的統一方法。

Istio 提供一種簡單的方式來為已部署的服務建立網絡,該網絡具有負載均衡、服務間認證、監控等功能,只需要對服務的代碼進行一點或不需要做任何改動。想要讓服務支持 Istio,只需要在您的環境中部署一個特殊的 sidecar 代理,使用 Istio 控制平面功能配置和管理代理,攔截微服務之間的所有網絡通信:

HTTP、gRPC、WebSocket 和 TCP 流量的自動負載均衡。

通過豐富的路由規則、重試、故障轉移和故障註入,可以對流量行為進行細粒度控制。

可插入的策略層和配置 API,支持訪問控制、速率限制和配額。

對出入集群入口和出口中所有流量的自動度量指標、日誌記錄和追蹤。

通過強大的基於身份的驗證和授權,在集群中實現安全的服務間通信。

Istio 旨在實現可擴展性,滿足各種部署需求。

核心功能:
Istio 在服務網絡中統一提供了許多關鍵功能:

流量管理
通過簡單的規則配置和流量路由,您可以控制服務之間的流量和 API 調用。Istio 簡化了斷路器、超時和重試等服務級別屬性的配置,並且可以輕松設置 A/B測試、金絲雀部署和基於百分比的流量分割的分階段部署等重要任務。

通過更好地了解您的流量和開箱即用的故障恢復功能,您可以在問題出現之前先發現問題,使調用更可靠,並且使您的網絡更加強大——無論您面臨什麽條件。

安全
Istio 的安全功能使開發人員可以專註於應用程序級別的安全性。Istio 提供底層安全通信信道,並大規模管理服務通信的認證、授權和加密。使用Istio,服務通信在默認情況下是安全的,它允許您跨多種協議和運行時一致地實施策略——所有這些都很少或根本不需要應用程序更改。

雖然 Istio 與平臺無關,但將其與 Kubernetes(或基礎架構)網絡策略結合使用,其優勢會更大,包括在網絡和應用層保護 pod 間或服務間通信的能力。

可觀察性
Istio 強大的追蹤、監控和日誌記錄可讓您深入了解服務網格部署。通過 Istio 的監控功能,可以真正了解服務性能如何影響上遊和下遊的功能,而其自定義儀表板可以提供對所有服務性能的可視性,並讓您了解該性能如何影響您的其他進程。

Istio 的 Mixer 組件負責策略控制和遙測收集。它提供後端抽象和中介,將 Istio 的其余部分與各個基礎架構後端的實現細節隔離開來,並為運維提供對網格和基礎架構後端之間所有交互的細粒度控制。

所有這些功能可以讓您可以更有效地設置、監控和實施服務上的 SLO。當然,最重要的是,您可以快速有效地檢測和修復問題。

平臺支持
Istio 是獨立於平臺的,旨在運行在各種環境中,包括跨雲、內部部署、Kubernetes、Mesos 等。您可以在 Kubernetes 上部署 Istio 或具有 Consul 的 Nomad 上部署。Istio 目前支持:

在 Kubernetes 上部署的服務

使用 Consul 註冊的服務

在虛擬機上部署的服務

集成和定制
策略執行組件可以擴展和定制,以便與現有的 ACL、日誌、監控、配額、審計等方案集成。

Istio概念原理&&為什麽要使用 Istio?