歡迎光臨
每天分享高質量文章

大家都在說的Service Mesh,你何時需要它?

 

在對應用程式進行重構和更新的過程中,往往會出現一些挑戰。更新應用程式的頻率越高,複雜性就越是會增加。讓應用程式在容器平臺上運行,並且它們之間可以互相通信和連接,是通向模塊化的、靈活的微服務架構的必經之路。但是微服務的這種靈活性也讓其變得更加複雜。這時就輪到Service Mesh發揮作用了!
Service Mesh向企業提供了他們所需要的中心化控制面板,同時依然能夠使用靈活的、基於雲的應用程式開發方式。我們可以把Service Mesh看成是用於微服務API的專門的第7層網格,它提供身份驗證、授權、安全和性能服務來優化服務之間的“east/west”流量。更重要的是,它能為你提供應用到這些策略的中心點,而不需要直接將所有這些編碼到應用程式的業務邏輯中。

 

簡單的Service Mesh類比

 

Service Mesh就像是城市的水管網絡。你的團隊控制著這些管道,根據需要連接它們並設置它們之間所有的流控制。無論是何種型別或用途,又或是Service Mesh所支持的應用程式的需求在不斷變化,資料都可以通過你的系統進行傳遞。
這種流量控制可以在中心位置進行,也正是在中心位置構建規則,來管理那些相互連接的資料流。這就像是在天上的巨大控制室一樣,你可以在農作物需要額外資源時,給加利福尼亞州的土地澆水,又或是邁阿密那邊濕的太透了,你可以排乾它們。最重要的一點是,這些操作都是可以自動執行並且動態調整的。

 

Service Mesh增強了可靠性和可視化能力

 

Service Mesh提供從網絡或服務故障處自動恢復過來的智慧流量路由功能,這樣就可以追蹤到整個堆棧的問題,甚至能追蹤到服務間的中斷。
如果服務器沒有響應,你的服務網格將會把它從單個服務、或者是活躍的、負載均衡的服務池中剔除掉,轉移到另一個池中,該池經常會檢查是否可運行。當該服務器在合理的時間範圍內開始響應時,它又會被自動push回活躍的負載均衡池中。
通過提供服務層系統各個方面的可視化,Service Mesh還可以用來debug和優化系統。這樣微服務中的髒水問題(murky water)就解決了。隨著時間推移,系統可以進行調整來擴展功能,滿足性能和穩定性的需求。

 

Service Mesh保護服務間通信

 

當你的團隊推出應用程式的新版本,或是要將應用程式托管的集群遷移到新的資料中心時,安全團隊通常需要重新頒發證書並授權給系統中新的服務器。這會花費大量的時間和精力,是推動生產改進的阻礙。
有了服務網格,將服務間通信的安全性交給網格處理,這些關註點從應用程式本身抽象了出來,由服務網格處理所有這些限制,比如哪些服務可以相互通信、哪些系統可以訪問哪些服務,以及哪些用戶可以訪問哪些服務。因此,升級網格中的應用程式不需要重新分配安全資源。
這樣一來,還可以讓圍繞網絡和服務間通信的安全問題能從任何內部開發的業務邏輯中獨立出來。如果網絡組建出現安全漏洞,服務網格會去處理圍繞安全更新的更改,而不是重新架構每個應用程式。這就消除了在進行安全更改和更新相關工作時出現的大量停機時間。

 

研究大型微服務環境下的服務網格

 

不過服務網格有一個(巨大的)潛在的缺點。它添加了額外的容器,事實上,它讓容器規模加倍了。大多數服務網格的實現使用了sidecar代理,將一個代理實體和每個容器系結的微服務耦合在一起。這樣一來,它所帶來的好處大於運營成本,這也意味著服務網格對於小型環境來說通常過於龐大了。
但是,如果你正在管理數十個甚至數百個獨立的微服務,不妨考慮服務網格。有了服務網格,你的團隊可以更好的跟蹤問題,確保服務的可用性,維護路由表的正確分佈。對這些大型環境,無論是在公共雲、在你的企業資料中心、還是在混合雲的實現上,它們是雲應用程式難題的最後一塊拼圖,也是將你的整個產業聯繫在一起的關鍵部分。


    已同步到看一看
    赞(0)

    分享創造快樂