看完Istio的這些特性,只想說DevOps人員有福了

一、前言


根據InfoQ文章說明,自從2018年至今,Service Mesh的熱度不斷飆升,隨著Kubernetes生態體系的逐漸建立和完善,基於Kubernetes應用程序的規模和複雜性將會增加,Service Mesh將成為有效管理那些應用程序所必需的一切,企業對其需求將會快速增長。

從長遠來看,在Service Mesh領域也會出現類似Kubernetes的情況,最後出現一個贏家,然後公司標準化這個贏家。目前來看,Istio作為控制平面的一種技術實現在Service Mesh領域扮演了核心角色。另外,由於背靠Google公司的內部工程實踐,以及對工程實踐的再思考和重新提煉,Istio獲得了業界廣泛的關注,並且正在圍繞Istio建立生態,Istio似乎最有可能成為事實上的Service Mesh。2020年將成為Service Mesh技術的普及年

看完Istio的這些特性,只想說DevOps人員有福了

Istio


二、什麼是Istio?

在介紹Istio之前,先來說說什麼是服務網格?當單體應用向分佈式微服務架構過渡時,開發人員和運維人員都會面臨一些複雜性挑戰。服務網格就是用於描述這些應用程序的微服務網絡及其之間的交互。隨著服務網格的大小和複雜性的增長,它變得越來越難以理解和管理。它需要包括服務發現、負載均衡、故障恢復、指標監控,同時,它通常也需要具有更復雜的運維要求,如A/B測試、金絲雀發佈、速率限制、訪問控制和端到端身份驗證。而這些作為服務網格具體實現的Istio解決了這些問題。


Istio是一個開放平臺,提供了統一的方式來集成微服務,管理

跨微服務調用的流量、執行策略和彙總監測數據。Istio的控制平面在底層集群管理平臺(如Kubernetes,Mesos等)上提供了一個抽象層。


看完Istio的這些特性,只想說DevOps人員有福了

DevOps


三、為什麼要使用Istio?

Istio可以輕鬆的為已部署的服務創建帶有負載均衡、端到端的身份驗證、監視等功能的網絡。實現這些功能,服務只需要很少的改動或者不需要改動。通過在整個環境中部署一個特殊的sidecar代理來攔截微服務之間的所有網絡通信,然後使用其控制平面功能配置和管理Istio,可以為服務添加Istio支持,包括:

  • HTTP,gRPC,WebSocket和TCP通信的自動負載平衡。
  • 通過豐富的路由規則,重試,故障轉移和故障注入對流量行為進行細粒度控制。
  • 可插拔的策略層和配置API,支持訪問控制,速率限制和配額。
  • 集群內所有流量的自動度量,日誌和跟蹤,包括集群的入口和出口。
  • 通過強大的基於身份的驗證和授權,在群集中進行安全的服務間通信。
看完Istio的這些特性,只想說DevOps人員有福了


四、核心特性

Istio在服務網格中統一提供了許多關鍵的特性:

流量控制

Istio通過簡單規則配置流量路由可以控制服務之間的流量和API調用的流量。Istio簡化了諸如斷路器、超時和重試之類的服務級別屬性的配置,並可以輕鬆的設置一些重要任務,如A/B測試、金絲雀發佈和基於百分比的流量拆分的分階段部署。

藉助對流量的更好的可見性和開箱即用的故障恢復特性,無論遇到什麼情況,都可以在問題發生之前及時發現問題,使得服務間通信更加可靠,健壯。

安全

Istio的安全功能使開發人員可以將精力集中在應用程序級別的安全上。Istio提供基礎安全通信通道,並大規模管理服務通信的

身份驗證、授權和加密。藉助Istio,默認情況下,服務間通信是安全的,可以在各種協議和運行時之間一致性的實施策略。這些操作幾乎不需要更改應該程序。

儘管Istio是獨立於平臺的,但將其與Kubernetes(或基礎架構)網絡策略配合使用,其好處會更大,包括能夠在網絡和應用程序層保護Pod到Pod或服務到服務的通信的能力。

策略

Istio允許為應用程序配置自定義策略,以在運行時強制執行規則,例如:

  • 速率限制以動態限制服務流量
  • 拒絕、白名單和黑名單,以限制對服務的訪問
  • Header的重新和重定向

Istio還允許創建自己的策略適配器

,以添加自己定義的授權行為。

可觀察性

Istio強大的跟蹤、監視和日誌記錄功能可以深入瞭解服務網格的部署。藉助Istio的監視功能,可以真正瞭解服務性能如何影響上游和下游,而其自定義儀表盤可以提供對所有服務性能的可視化,並讓您瞭解性能如何影響其他流程。

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

所有這些功能使您可以更有效的設置,監視和實施服務上的SLO(Service Level Objectives,服務等級目標),但最重要的是可以快速、有效的檢測和修復問題

平臺支撐

Istio是獨立於平臺的,可以在多種環境中運行,包括跨Cloud、本地、Kubernetes和Mesos等。可以在Kubernetes或Consul的Nomad上部署Istio。Istio當前支持:

  • 部署在Kubernetes上的服務
  • 註冊在Consul上的服務
  • 運行在虛機上的服務


集成和定製

Istio的策略增強組件可以擴展和定製,以與現有的ACL、日誌記錄、監控、配額、審核等解決方案集成。

看完Istio的這些特性,只想說DevOps人員有福了

五、總結


隨著雲計算的發展,使用雲平臺的組織的確享受到了很多好處,但是,不可否認的是,採用雲平臺對DevOps團隊有一定的壓力,因為開發人員必須使用微服務架構來構建具有可移植性的服務,同時運營商也需要管理超大型的混合和多雲的服務部署。

Istio可以連接、保護、控制和觀察這些服務。從較高的角度來看,Istio有助於降低這些部署的複雜性,並減輕開發團隊的負擔。Istio是一個完全開源的服務網格,可以透明的集成到現有的分佈式應用程序上。它也是一個平臺,通過API可以將其集成到任何日誌記錄平臺,監控和策略系統。Istio的功能多樣性使得可以成功、高效運行分佈式微服務架構,並提供一種統一的方式來保護、連接和監視微服務


看完Istio的這些特性,只想說DevOps人員有福了

奔向雲原生


分享到:


相關文章: