服務網格只是另一種形式的虛擬化

banq發表於2018-12-25

當我在2000年初開始使用VMware ESX時,我知道這是一個非常酷的技術; 而且不僅是我,每個人都知道它有一些特別之處。
但是,我還沒有完全掌握這門技術的全部價值,在那一點上,我只看到了面前的“伺服器整合”。
當vMotion出現時,我們意識到物理已經改變了我們的伺服器,我們不再依賴於執行伺服器的硬體。無名硬體抽象允許我們做我們以前無法做的事情。比如修復硬體問題或修補它沒有停機時間,透過在我們需要時部署VM並更好地監控基礎設施的健康狀況,甚至自我修復,可以更好,更快地擴充套件。我們從未見過一個令人興奮的新的敏捷世界。
由於上述與自動化的結合,管理伺服器的工作量已經降低,管理伺服器組的人員也更少。

這跟你問的服務網格有什麼關係?
最近我開始專注於服務網格,主要是Istio,在實驗室中測試它,學習技術並再次感受到魔力。雖然這項技術很酷,但我試圖理解的商業價值不僅僅是分散式,負載平衡,可觀察性等等熱門話題。但是,在某些時候,我意識到我看錯了。

從網路運營角度看:服務網格其實是一種虛擬化形式

我認為Service mesh與虛擬化有很多相同之處。
在單體的應用程式世界中,編譯應用程式或服務的許多不同程式碼片段都在一小組伺服器上執行,因此在程式碼中編寫有關該元件如何與應用程式的其他部分互動的決策。
這意味著,對於區分應用程式所服務的業務的每一段有意義的程式碼,需要有很多非差異化的程式碼。(banq注:中介軟體功能)
這些功能包括諸如伺服器和客戶端通訊,服務查詢,錯誤檢測和響應,遙測,安全性之類的事情。

隨著微服務(以及為此目的使用容器)的興起,每個容器現在執行一段差異化程式碼(每個微服務都和其他伺服器上微服務不同,有自己的負載平衡等),監控和解決問題帶來了新的挑戰。

服務網和Istio做的是將非差異化工作外包給Envoy的sidecars,其中每個k8s pod現在都有一個代理,負責與其他代理和網外通訊。(Envoy可以使用超過k8s的pod,它甚至可以與VM或Pivotal PAS AI一起使用!)

現在我們已經抽象出了非差異化程式碼(banq:其實是新的中介軟體功能)。與透過虛擬機器管理程式虛擬化硬體並新增控制皮膚所獲得的效果類似,我們透過新增Istio形式的控制皮膚獲得代理操作。

下面這張圖說明不同抽象層。

服務網格只是另一種形式的虛擬化

即時更改平臺功能而不是更改我們的程式碼,這樣可以節省開發人員花費的大量精力,能夠實現動態更改策略而不更改任何程式碼,可以應用安全性和身份驗證交易,能更好地瞭解應用程式執行狀況。自我修復現在變成了現實。

服務網格是非差異化程式碼(中介軟體)的虛擬化
Docker等容器是對OS的虛擬化
VM是對硬體裝置的虛擬化。
 

相關文章