做者:Christian Posta 譯者:羅廣明 原文:https://blog.christianposta.com/challenges-of-adopting-service-mesh-in-enterprise-organizations/api
本文做者介紹了企業組織採用服務網格面臨的哪些挑戰,建議企業應該從數據平面開始逐步推動,從瞭解它、熟悉它、再到擴大規模使用它,而且以介紹其演講的幻燈片爲切入點介紹了架構演進的步驟。安全
最近,我寫了一篇關於在企業組織中採用服務網格的具備哪些挑戰的文章,這篇文章是爲DZone及其遷移到微服務的報告撰寫的。在這篇文章中,咱們首先要解決的問題之一是「你是否應該沿着採用服務網格的道路走下去」,我是這麼說的:網絡
首先回答「不」。若是您剛剛開始使用微服務架構和少許的服務,請確保您首先準備好了基礎部分。微服務及其相關的基礎設施是一種優化方式,可讓您更快的變動應用程序。在沒有服務網格的狀況下,您能夠朝着更快的方向前進。你甚至可能想要一些服務網格帶來的好處,而不是去關注它全部的複雜性。那麼,請看看相似Gloo的產品,一個創建在Envoy代理上的API網關。架構
我認爲在當前時刻,這是一個很是重要的考慮,有如下兩大緣由:less
這並不意味着沒有團隊成功地使用了服務網格,或者您應該遠離它。可是,我確實認爲您應該創建這樣的能力,當您真正準備好了而且能夠從中獲益的時候,最終能成功地將服務網格引入。例如,在報告中,我列出了您可能想要使用服務網格的緣由:運維
即便有了以上這些理由,你依然會面臨這些挑戰:ide
經過我在Red Hat和如今Solo.io加起來兩年以上的工做,我一直在幫助人們解決那些棘手的問題(順便說一句,若是你想交談/須要這些方面的幫助,能夠經過@christianposta聯繫我)。但有一件我從咱們的客戶/用戶一直觀察到,而且持續一段時間提出建議,那就是你採用服務網格的第一步,應該老是先使用在必定程度上(自行)隔離的數據平面技術,要了解它是如何工做的,如何實施,如何調試等等。微服務
例如,在我最近作的一次演講中,我說過要從Envoy(Envoy是許多服務網格實現的底層數據平面技術)開始。PPT以下:post
從架構的角度來看,它多是這樣的:優化
固然,若是你要使用Envoy,我建議從Gloo開始,這基本上是一個具備edge與API網關能力的企業版Envoy,而且很好地植入了服務網格。一旦你有了它,對它熟練使用,那麼你就會準備好增長它的使用,甚至可能經過代理的分層引入一些隔離:
接下來的方法是將網關推入到應用架構中。咱們看到咱們的用戶在每一個應用程序邊界採用一個網關的方法,開始有了一個網格的「感受」,但在應用程序引入了一些結構(例如,API網關模式)。我開始稱之爲「waypoints」架構。就像飛行員使用航路點(waypoints)來指導他們的飛行計劃同樣,這些網關爲您的應用架構增長告終構,同時解決了諸如安全性和API解耦的南北通訊問題,同時爲成功採用服務網格奠基了基礎。
最後,您能夠開始在應用程序中引入獨立於邊界的服務網格代理,以解決棘手的但偏偏是服務網格技術最擅長解決的service-to-service通訊挑戰:
這裏重要的部分是網關,而且仍然有很是有用的用途!它們嚮應用架構中添加結構和路徑點,同時在須要的地方將某些實現細節與其餘服務分離並隱藏起來。在不少方面,這都遵循了DDD有界上下文模型,網關提供了一個「反腐敗」層。不然,若是你只是把全部的服務都看成「夥伴」,你就會開始堅決地邁向死星:
但願這篇文章有助於您奠基一個成功的方法,經過小範圍使用服務網格,而後逐漸緩慢擴展有意義的各個地方,而且你的應用程序能夠從服務網格架構中獲益。不然,您將承擔同時引入太多複雜性的風險,這將違背您實現應用程序和基礎設施現代化的意圖。
ServiceMesher 社區是由一羣擁有相同價值觀和理念的志願者們共同發起,於 2018 年 4 月正式成立。
社區關注領域有:容器、微服務、Service Mesh、Serverless,擁抱開源和雲原生,致力於推進 Service Mesh 在中國的蓬勃發展。