當前位置:
首頁 > 最新 > Google、IBM和Lyft開源其大型微服務系統管理工具Istio

Google、IBM和Lyft開源其大型微服務系統管理工具Istio

作者|Istio 團隊

編輯|Alice

谷歌、IBM 與 Lyft 三方已經共同公布了 Istio 項目的首次公開發行版。Istio 是一個開源項目,旨在提供一種統一化的微服務連接、安全保障、管理與監控方式。我們目前的發行版主要面向 Kubernetes 環境 ; 當然,在後續的升級當中,我們還將逐步實現對虛擬機以及 Cloud Foundry 等其它環境的支持能力。

Istio 項目能夠為微服務架構提供流量管理機制,同時亦為其它增值功能(包括安全性、監控、路由、連接管理與策略等)創造了基礎。這款軟體利用久經考驗的 Lyft Envoy 代理進行構建,可在無需對應用程序代碼作出任何發動的前提下實現可視性與控制能力。Istio 項目是一款強大的工具,可幫助 CTO/CIO 們立足企業內部實施整體性安全、政策與合規性要求。

項目背景

編寫具備高可靠性、鬆散耦合的微服務式生產級應用程序往往存在一定程度的挑戰。隨著整體式應用程序被拆分為微服務,軟體團隊必須面臨並應對在分布式系統當中實現服務集成所帶來的諸多難題:其必須考慮服務發現、負載均衡、容錯性、端到端監控、面向功能實驗的動態路由以及最為重要的兩大前提——合規性與安全性。

目前行業中處理上述挑戰的方法多種多樣,往往由各類庫、腳本乃至 Stack Overflow 片段拼湊而成,這直接導致其包含大量不同編程語言與運行時,功能可觀察性差且往往會令最終安全性受到負面影響。

其中一類解決方案在於立足常規 RPC 庫(例如 rRPC)實施標準化調整,但其全面採用會給企業帶來高昂成本,同時亦會迫使其放棄部分根本無法變更的舊有應用程序。很明顯,運營人員需要一套靈活的工具包,確保其微服務始終具備安全性、兼容性、可追蹤性以及高可用性 ; 與此同時,開發人員則需要能夠在生產環境中嘗試不同功能或者部署金絲雀版本(canary releases),並保證其不會影響到整體系統。

解決方案:服務網格

想像一下,如果我們能夠以透明化方式在服務與網路之間插入一個基礎設施層,藉此為運營人員提供必要的控制能力,同時幫助開發人員不必在其代碼當中引入分布式系統帶來的專用解決方案,那麼前面提到的諸多挑戰將迎刃而解。正如微服務架構能夠幫助各功能團隊實現彼此解耦,服務網格則能夠幫助運營人員從應用程序功能開發與發布流程當中解耦出來。Istio 項目即因此而生,它能夠以系統化方式將代理機制接入至網路路徑當中,從而將不同微服務轉化為綜合性服務網格。

谷歌、IBM 與 Lyft 三方聯手開發出的 Istio 項目基於我們為內部及企業客戶構建及運營大規模微服務架構中積累起的豐富經驗,旨在為微服務架構的開發與維護工作提供可靠基礎。谷歌與 IBM 雙方長久以來一直在在內部應用程序中採用此類大規模微服務架構,同時亦具備豐富的高敏感度 / 監管環境企業客戶服務經驗。而 Lyft 則開發出 Envoy 以解決其內部可操作性挑戰。Lyft 在經過一年的成功使用之後,決定將 Envoy 推向開源,其能夠管理超過 100 項服務、跨越上萬套虛擬機且每秒可處理 200 萬條請求。

Istio 的優勢

集群規模可視性:在故障狀況出現時,運營人員需要利用多種工具以始終關注集群運行狀況並分析微服務狀態圖表。Istio 項目能夠監控與應用程序及網路活動相關的數據,利用 Prometheus 與 Grafana 對這部分數據加以渲染,而後將相關指標與日誌記錄發送至任何收集、聚合與查詢系統當中以實現功能擴展。Istio 項目亦利用 Zipkin 追蹤分析性能熱點並對分布式故障模式加以診斷。

彈性與效率:在開發微服務時,運營人員需要假設網路本身處於不可靠狀態。運營人員能夠利用重試、負載均衡、流量控制(HTTP/2)以及斷路補償等方式解決由網路可靠性低下所造成的各類常見故障模式。Istio 項目則提供一種統一方法以配置上述功能,使得運營人員能夠更為輕鬆地運作高彈性水平服務網格。

開發人員生產力:Istio 項目能夠確保開發人員專註於利用已選擇的編程語言構建服務功能,從而極大提升其生產能力。另外,Istio 項目則負責以統一化方式處理彈性與網路挑戰。開發人員無需將解決方案的分布式系統問題解決機制引入編寫的代碼當中。Istio 項目還能夠支持 A/B 測試、金絲雀部署以及故障注入等常用功能,旨在進一步提高生產效率。

政策驅動型運營:Istio 項目能夠授權具有不同職能的團隊以實現獨立運作。其將集群運營人員與功能開發人員進行周期性剝離,從而在無需更改代碼的前提下提升安全性、監控能力、擴展性與服務拓撲水平。運營人員能夠精確控制生產流量中各個子集的路由方式,從而匹配新的服務版本。另外,運營人員還能夠在流量中注入故障或者提高延遲水平,用以測試服務見長的彈性 ; 同時設置速率限制以防止服務過載。Istio 項目還可用於強制執行合規性要求,例如在服務之間定義 CL 以確保僅具備授權的服務間可相互通信。

默認安全:分布式計算當中經常存在著大量網路安全問題。Istio 項目允許運營人員利用 TLS 連接以認證並保護各服務之間的所有通信,而不會給開發人員或者運營人員帶來由證書管理造成的額外負擔。我們的安全框架與新的 SPIFFE 規範保持一致,事實上谷歌公司一直在內部廣泛使用類似的保障性系統。

增量化採用:我們在設計 Istio 項目時充分考慮到網路內所運行各服務的透明性,允許團隊隨著時間推移逐步採用 Istio 提供的各項功能。採用方可以先從啟用集群範圍內可視性起步,並在 Istio 在環境中的表現感到滿意後根據實際需要啟用其它功能。

加入我們共同開啟新的旅程

Istio 屬於完全開源之項目。今天,我們發布了其 0.1 版本,適用於 Kubernetes 集群。未來我們計劃每三個月進行一次主要版本更新,其中包括支持其它環境。我們的目標是幫助開發人員與運營人員以敏捷性、底層網路全面可視性以及立足一切環境的統一化控制與安全保障能力為前提,發布並運營屬於您自己的微服務體系。我們期待著與您在 Istio 社區中並肩協作,並以合作夥伴的角度共同實現各項發展目標。如果您有興趣,請以下鏈接查看我們的發展路線圖。

https://istio.io/docs/reference/release-roadmap.html

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 聊聊架構 的精彩文章:

TAG:聊聊架構 |

您可能感興趣

NET Core微服務之基於Ocelot+IdentityServer實現統一驗證與授權
微服務監控之Spring Boot Admin
Servlet+MyBatis項目轉Spring Cloud微服務,多數據配置修改建議
SpringBoot+Dubbo搭建微服務
使用Spring Cloud和Reactor在微服務中實現Event Sourcing
Crunch團隊分享SpringCloud微服務的使用經驗
微服務網關終結者?Spring Cloud推出新成員Spring Cloud Gateway
談談微服務架構中的基礎設施:Service Mesh與Istio
微服務運維減負:Istio Service Mesh原理+實戰
微服務斷路器Istio與Hystrix比較
如何使用Spring Boot構建微服務
如何在微服務或Tomcat中配置使用Listener
微軟開源旗下的Service Fabric微服務平台
Spring security + oauth2.0 + redis + mybatis plus 搭建微服務
Nacos發布 v0.2 版本,支持 Spring Cloud 微服務高可用集群模式
天啦嚕!看國外大神如何用Docker+Jenkins&CI/CD打造微服務架構?
開源PaaS Rainbond v3.6.0:提供service mesh微服務架構開箱即用
微服務網關哪家強?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差異
基於SpringCloud的某支付產品微服務構架拆解
華為消費者雲的ServiceComb 微服務之旅