# Service與Istio 的簡介 由於使用OpenShift平台建立許多應用服務,為了加強各種非功能性需求應用,針對如何安裝OSSM(OpenShift Service Mesh) 做相關教學與紀錄 ## 什麼是Service Mesh 在網路應用服務越來越多倡導使用RestFul API進行服務串接的世代中,使用相關API服務為了可靠性,加強了許多「非功能性需求」像是:流量管理、路由控制、retry、熔斷等相關處理,會要求開發人員在API使用上加強控制,開發人員為了implement這些需求下往往會面臨許多問題,像: * 侵入性強:增加許多控制程式與第三方套件 * 監控不易:許多監控項目需要整合(ex: Spring Cloud全家桶套餐) * 整合困難:需要掌握許多基礎知識建立相關指標 * 升級成本高:升級Spring相關套件是惡夢 ## 為什麼需要使用Istio 為了讓開發人員更專注在業務程式上,使用非直接與業務程式的整合方式來降低架構耦合度,主要特點如下: * 流量管理: 包含router流量管理、跨cluster溝通整合、熔斷、timeout、retry、A/B testing、金絲雀部署 * 監控: 透過log整合、指標、Open tracing功能,釐清程式在網路上呈現服務行為與監控行為,大大加強了服務問題處理與維運監控上的難題 * 安全性: 可以提供認證、授權、mtls等相關服務,是implement零信任網路架構的利器[『Istio與ZTA介紹』](https://events.istio.io/istiocon-2022/sessions/zero-trust-istio/) ### 參考文獻 * [redhat說明文件](https://docs.openshift.com/container-platform/4.11/service_mesh/v2x/ossm-create-smcp.html) * [istio說明文件](https://istio.io/latest/docs/examples/bookinfo/) * [學會 Kubernetes 然後呢?由 Istio 進入 DevOps 偉大航路](https://ithelp.ithome.com.tw/articles/10291030)