1. 程式人生 > >what is Istio?

what is Istio?

ted src ber invisible 故障 了解 處理 完整 golang

Learn how a service mesh can help to manage your microservice deployments.

One of the key metrics or performance indicator of a microservices software architecture and environment is lead time (the amount of time it takes to get from idea to production). Many things have an impact on lead time, such as decision-making time, how quickly the code can be implemented, testing, continuous integration, etc.

介紹Istio

Istio 是創建和管理微服務時所需的特性和功能的邊車容器實現。監控,跟蹤,斷路器,路由,負載平衡,故障註入,重試,超時,鏡像,訪問控制,速率限制等都是其中的一部分。雖然現在所有這些特性和功能都可以通過在代碼中使用大量庫來實現,但Istio與眾不同之處在於,您可以在不更改源代碼的情況下獲得這些優勢。

通過使用邊車模型,Istio在您的Kubernetes吊艙中的Linux容器中運行(非常類似於摩托車旁邊的側車)並根據您的配置註入和提取功能和信息。再次(強調),這是您的代碼之外的配置。這立即減少了代碼復雜性和重量。

它(也很重要)將操作方面從代碼開發轉移到操作領域。為什麽開發人員要承受斷路器和故障註入的負擔?他們應該對它們做出回應嗎?

是的,但是要處理和/或創建它們?從代碼中解脫出來,讓代碼專註於底層業務領域。使代碼更小,更簡單

服務網

Istio在源代碼之外運行的功能引入了Service Mesh的概念。這是由一個或多個二進制文件組成的協調組,構成網絡功能的網格。如果您還沒有,那麽在接下來的幾個月裏,您將會聽到很多關於Service Mesh的消息。

快速概述

這是一個30,000英尺的視圖,了解一個邊車容器如何與 KubernetesMinishift一起工作:一旦你開始你的Minishift實例,你就為Istio創建了一個項目(我們稱之為“istio-system”),然後安裝並啟動所有與Istio相關的組件。

從那裏,當您創建項目和窗格時,您將配置信息添加到部署中,並且您的窗格將使用Istio。下圖是一個簡單的概述。

istio_basic_flow

技術分享圖片

在此之後,您可以開始更改Istio設置以調用故障註入或支持 Canary部署或Istio支持的任何其他內容 - 所有這些都不會觸及您的應用程序源代碼。

例如,假設您要將來自最大客戶(Foo Corporation)的用戶的所有網絡流量定向到您網站的新版本。您可以通過創建一個在其用戶ID中搜索@ foocorporation.com並正確指導它們的Istio路徑規則來決定這樣做。對世界其他地方而言,這是透明的。同時,您可以測試新軟件。這不需要開發人員才能實現。

這個很貴嗎?

不,Istio非常快。它是用Go編寫的, 為您的系統增加了很小的開銷。此外,您應該通過提高開發人員的效率和速度來支付在線性能可能會失去的成本。至少這是理論。不要忽視開發人員很貴的事實。

至於軟件,Istio是開源的,所以你可以抓住它並立即開始使用它。

自己做

想親眼看看?紅帽開發人員體驗團隊開發了一個深入的實踐 教程 ,您可以使用它來了解有關Istio的更多信息。它支持Linux,macOS和Windows,代碼為Java或Node.js.

學到更多

除了這個快速介紹之外,我們還創建了更多更深入的有關Istio的信息,包括有關斷路器,路由規則,跟蹤和監控等的帖子。查看完整系列:

https://opensource.com/article/18/9/what-istio

what is Istio?