Istio 作為 Service Mesh 熱門的解決方案,到底提供哪些功能,以及專案引用 Istio 時要考慮哪些點,本篇就來帶大家了解一下。
Istio 是一個開源軟體,讓你可以輕鬆導入 Service Mesh 到專案裡,藉由負載平衡、路由管理、認證等機制,滿足 Microservices 的各種需求,以下為 Istio 提供的幾項功能
在專案使用 Istio,無須修改程式碼,就能控管服務之間的網路行為
而 Istio 核心功能主要可分為三類
Istio 能配置簡單的規則來控制服務之間的流量以及 API 呼叫,並能輕鬆執行重要任務如 Canary Deployment
、A/B Testing
等等。
Istio 提供對服務行為的可觀測性,透過Log aggregation
、Metric
、Tracing
功能,結合視覺化軟體,增強對專案的 troubleshooting 能力。
Istio 提供底層的安全通信管道,並管理認證、授權、加密,讓開發者只需專注於應用程式的安全。
Istio 由 Control Plane 及 Data Plane 所組成, Data Plane 使用 Envoy Proxy,以 Sidecar 模式注入到每個服務,攔截 Microservices 之間的所有網路流量。Control Plane 使用者可依專案採取不同的設定,當配置改變時,就會動態對 Data Plane 下達規則。
導入 Istio 前,無法根據流量的類型(來源、去向)做出任何決定
導入 Istio 後,使用者能對 Control Plane 採取不同配置,並將規則下達至 Data Plane,藉此控管網路行為
完整介紹可參考 The Istio Service Mesh
看到這大家應該都了解 Istio 是個有強大功能的工具,但也不是所有的情境都適合導入 Istio,還是要根據團隊、專案的情況而定,以下整理該不該採用 Istio 的理由
Canary Deployment
、A/B Testing
經過這幾篇的介紹,應該對 Microservices、Service Mesh 及 Istio 有一定的認識了,但只看文章還是會有點抽象。所以接下來我們就會進入實戰篇,實際使用 Istio 來玩轉 DevOps。
掌握
Programming is king
原則,實際上手才能學好技術