在企業組織中採用服務網格的挑戰:從API閘道器到微服務通訊逐步引入 – Christian Posta
最近,我為DZone及其遷移到微服務報告撰寫了一篇文章,介紹了在企業組織中採用服務網格的挑戰。在那篇文章中,我們要解決的第一件事是“無論您是否應該採用服務網格”,這就是我所說的:
首先回答“否”。如果您剛剛開始使用微服務和少量服務,請確保首先準備好基礎部分。微服務及其關聯的基礎架構是一項最佳化,使您可以更快地對應用程式進行更改。在沒有服務網格的情況下,您可以邁出一大步。您甚至可能想要服務網格帶來的一些好處,而沒有所有的複雜性。看看類似Gloo的東西,它是基於Envoy代理構建的API閘道器。
我認為這是目前非常重要的考慮因素,原因有兩個:
- 通常,服務網格實現尚未準備好投入生產
- 在服務網格上全押的複雜性仍然很高
這並不意味著會有團隊成功使用服務網格,或者您應該遠離它。我確實認為您應該做好準備,以便在準備就緒並從中受益時最終引入網格。例如,在報告中,我列出了您可能要使用服務網格的以下原因:
- 跨多個叢集大規模部署微服務
- 容器/ k8和VM的混合部署
- 用於構建服務的語言的異構部署
- 網路可觀察性的觀點不完整且不一致
即使這樣,您仍將面臨以下挑戰:
- 選擇哪一個?
- 誰來支援它?
- 單個叢集中的多租戶問題
- 沒有管理多個群集的好方法
- 適應現有服務(邊車生命週期,比賽條件等)
- 開發人員和運維實施之間的區別是什麼
- 非容器環境/混合環境
- 集中與分散
透過過去兩年多來我在Red Hat和Solo.io的工作,我一直在幫助人們解決這些難題(順便說一句,如果您想在這些方面進行聊天/需要幫助,請聯絡@christianposta),但是我一直在我們的客戶/使用者中觀察到並且建議過一段時間的一件事是,您對服務網格的採用應該始終以某種程度的隔離(即,獨立地)採用資料平面技術開始。瞭解其工作原理,如何操作,除錯等。
例如,在我最近的一次演講中,我說過從Envoy開始(Envoy是許多服務網格實現的基礎資料平面技術)。
當然,如果要使用Envoy,我建議從Gloo開始,後者基本上是Enterprise Envoy發行版,具有邊緣和API閘道器功能,可以很好地插入服務網格中。一旦有了適當的位置,對它感到滿意,就可以準備使用它,甚至可以透過代理分層來引入一些隔離。
下一個連續的方法是將閘道器向下推送到您的應用程式體系結構中。我們看到我們的使用者也採用了針對每個應用程式邊界的閘道器方法,這種方法開始給人以“網格的感覺”,但給應用程式帶來了一些結構(例如,API閘道器模式)。我已經開始將其稱為“路標”架構。就像飛行員使用航路點來指導其飛行計劃一樣,這些閘道器為您的體系結構增加了結構,同時解決了南北向交通問題,例如安全性和API解耦問題,同時為成功採用服務網格奠定了基礎。
最後,您可以開始在不受邊界限制的應用程式中引入服務網格代理,以解決服務網格最適合的棘手的服務到服務通訊挑戰。
這裡的重要部分是閘道器仍然起著非常有用的作用!它們在為您的體系結構新增結構和航點的同時,在需要時將其餘的實現細節與其他服務分離和隱藏。在許多方面,這都遵循DDD有界上下文模型,其中閘道器提供了“反腐敗”層。否則,如果您將所有服務都視為對等方,那麼您將開始向死亡之星堅定前進。
希望引入服務網格可以從小處開始,緩慢地擴充套件有意義的地方,從而為成功實現服務網格奠定基礎,並在您能夠消費並從中獲得價值的同時,將網格的全部功能帶給您的應用程式。否則,您可能會冒險一次引入太多的複雜性,而這將超出您實現應用程式和基礎架構現代化的意圖。
相關文章
- 服務網格入門從閘道器開始 - Christian Posta
- 為微服務構建服務網格的Istio自身卻走向微服務的反面單體架構 – Christian Posta微服務架構
- 服務網格社群爭吵最近新動向! - Christian Posta
- 微服務6:通訊之閘道器微服務
- 企業API閘道器適用業務場景API
- 微服務設計中的API閘道器模式微服務API模式
- 微服務(七)Gateway服務閘道器微服務Gateway
- 微服務中的閘道器微服務
- SpringCloud Alibaba實戰(11:引入服務閘道器Gateway)SpringGCCloudGateway
- Hystrix斷路器在微服務閘道器中的應用微服務
- 容器、服務網格和API閘道器:它始於邊緣API
- 微服務閘道器微服務
- 使用服務網格提高安全性:Christian Posta帶你探索Istio的新功能
- 服務網格Service Mesh、API閘道器和訊息佇列的對比 - Wolfram HempelAPI佇列
- 微服務閘道器Spring Cloud Gateway的應用實戰微服務SpringCloudGateway
- 微服務實踐分享(2)api閘道器微服務API
- 微服務基礎——厲害了!API閘道器微服務API
- 高效能API閘道器(1)、微服務API閘道器架構設計API微服務架構
- RestCloud企業級API閘道器,可與原有微服務框架無縫整合RESTCloudAPI微服務框架
- 微服務閘道器- Nginx微服務Nginx
- 微服務閘道器實戰——Spring Cloud Gateway微服務SpringCloudGateway
- 使用API閘道器幫助單體到微服務的平滑過渡API微服務
- 微服務架構基礎之API閘道器微服務架構API
- .NET Core 微服務—API閘道器(Ocelot) 教程 [四]微服務API
- .NET Core 微服務—API閘道器(Ocelot) 教程 [一]微服務API
- Spring Cloud構建微服務架構-服務閘道器SpringCloud微服務架構
- 從社交+到 AI Agent,融雲在全球本土化挑戰下的通訊服務革新AI
- 微服務實戰(八)整合Sentinel閘道器服務限流功能 SpringCloud GateWay + Sentinel + Nacos微服務SpringGCCloudGateway
- SpringCloud微服務專案實戰 - API閘道器Gateway詳解實現SpringGCCloud微服務APIGateway
- Gateway服務閘道器 (入門到使用)Gateway
- SpringCloud系列之API閘道器(Gateway)服務ZuulSpringGCCloudAPIGatewayZuul
- 長連線閘道器技術專題(八):B站基於微服務的API閘道器從0到1的演進之路微服務API
- go-kit微服務:一個簡單的API閘道器Go微服務API
- Spring Cloud構建微服務架構—服務閘道器過濾器SpringCloud微服務架構過濾器
- RestCloud API閘道器,無縫與原微服務框架整合RESTCloudAPI微服務框架
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- SpringCloud 微服務閘道器 Gateway 元件SpringGCCloud微服務Gateway元件
- 《springcloud 二》微服務動態閘道器,閘道器叢集SpringGCCloud微服務