容器、服務網格和API閘道器:它始於邊緣
儘管服務網格技術可能在一夜之間突然出現,但現實情況是,許多公司一直在使用我們現在才認定為服務網格的技術已經相當一段時間(包括Verizon,eBay和Facebook)。比如Lyft,這是一家年收入10億美元的美國乘車分享服務公司。Lyft也恰好是開源Envoy代理的創造者,該代理為服務網格的許多開發提供動力,例如Kubernetes原生Istio控制平面和Ambassador API閘道器。
SOA網路狀態
Envoy Proxy的創造者之一Matt Klein在在去年的一次演講中,認為除錯很困難或者幾乎不可能,每個應用程式都有不同的統計資訊和日誌記錄,無法跟蹤整個請求/響應的服務呼叫路徑。基礎架構元件(如託管負載平衡器,快取和網路拓撲)的可見性(可管理性)也很有限。
“這很痛苦,”他說。“我認為大多數公司和大多陣列織都知道SOA(微服務)是未來,但除錯是困難的。“
保持分散式網路應用程式的可靠性和高可用性是大型公司的核心挑戰。具有挑戰性的方案通常包括重試邏輯的實現、超時、速率限制和斷路等。許多定製的或開源解決方案都使用了特定語言(甚至可能是特定於框架的)解決方案,這意味著工程師無意中將自己鎖定在“基本上永遠”的技術堆疊中(banq注,大概指的是Spring Cloud)。Klein和他在Lyft的團隊認為必須有更好的方法。最終,Envoy代理專案被認為是更好的方式。(banq注:Istio/Envoy與Spring cloud是互補關係?)
在微容器外部工作:邊緣代理的好處
雖然Envoy Proxy專案的開源版本使得Klein和Lyft工程團隊在2016年9月看起來像是一夜之間取得成功,但現實情況是,這一過程在微服務和服務網路系統之間充滿了挑戰。在最近一次關於2017年微服務實踐者虛擬峰會的演講中,Klein談到了從面向技術轉向服務網狀網路拓撲的商業價值和相關挑戰。
Klein第一個珍貴建議是“從邊緣代理開始”。基於微服務的Web應用程式需要邊緣反向代理以避免內部業務服務介面的暴露(因為這會違反松耦合的原則),也避免透過獨立的URI或RPC端點暴露每項服務的高運營開銷。現有的雲產品在這個邊緣代理或閘道器領域“不太友好”,或者作為潛在令人困惑的不同產品呈現給工程師。相反,Klein建議在邊緣開始實施現代代理技術,這會提供了改進的可觀察性、負載平衡和動態路由的等業務價值。
邊緣的演變:從代理到API閘道器
AppDirect是用於管理基於雲的產品,並估計有5000萬$年收入的端到端的電子商務平臺,實現了類似Lyft方式,他們在最近的一篇部落格強調,為了透過微服務的組合實現提供的業務功能,在暴露公共端點方面充滿了挑戰。
AppDirect工程團隊採取了一系列措施來解決這些挑戰:首先將配置的核心部分設定為靜態(例如暴露的服務埠)並將負載平衡器放置在每個應用程式的前端。他們的第二次迭代使用HashiCorp的Consul分散式金鑰/值儲存和HAProxy反向代理來支援更多動態,該代理支援在執行時更改配置的“熱重新載入”。然而,最終團隊熱衷於利用功能更加全面的API閘道器提供的更豐富的功能。
“我們使用API閘道器的目標是讓暴露的公共API不可接觸但是可訪問,這樣可透過”注入“逐個替換舊的元件,逐步發展壯大。” 。
在評估了一系列開源和商業產品之後,AppDirect團隊部署了基於Envoy代理構建的Kubernetes的API閘道器:
“完全依賴於Kubernetes原生API - 我們瞭解並且喜歡 - Ambassador是輕量級,無狀態的,並且不使用外部資料儲存。Ambassador專門利用Kubernetes註釋來驅動主動路由配置(即它是Envoy資料皮膚的控制皮膚),“該小組在部落格文章中指出。
雖然AppDirect尚未完全實施內部通訊的服務網格,但該公司已經瞭解Envoy代理等技術的好處,並且至關重要的是,如何在生產環境中處理這種部署。
讓所有人都感覺到它
在雲應用實施和遷移中採用服務網格技術才剛剛開始,但已經有可能確定該技術填補了當前技術與現代基於容器的應用程式平臺(如Kubernetes)的差距。服務網格的所有優點(如速率限制,斷路和可觀察性)也可以在系統邊緣獲得並利用。如果你想探索和了解這項技術,從系統的邊緣開始並努力工作可能是一種有效的策略。這也可以使該技術比試圖徹底解決問題更早顯示價值,例如提高可觀察性和彈性。
相關文章
- 服務網格入門從閘道器開始 - Christian Posta
- 服務網格Service Mesh、API閘道器和訊息佇列的對比 - Wolfram HempelAPI佇列
- SpringCloud系列之API閘道器(Gateway)服務ZuulSpringGCCloudAPIGatewayZuul
- 使用邊緣計算閘道器分析CAN報文
- 基於邊緣計算閘道器的校園環境和能耗監測系統
- 服務閘道器過濾器過濾器
- 高效能API閘道器(1)、微服務API閘道器架構設計API微服務架構
- springcloud服務閘道器-gatewaySpringGCCloudGateway
- Spring Cloud Zuul API服務閘道器之請求路由SpringCloudZuulAPI路由
- 淺談服務閘道器和聯邦雲
- 微服務(七)Gateway服務閘道器微服務Gateway
- Ocelot整合Consul實現api閘道器與服務發現API
- Spring Cloud入門教程(五):API服務閘道器(Zuul) 上SpringCloudAPIZuul
- RestCloud API閘道器,輕量級ESB服務匯流排RESTCloudAPI
- 構建SpringCloud閘道器服務SpringGCCloud
- 基於邊緣計算閘道器組建的農村汙水處理物聯網系統
- API 閘道器 KongAPI
- API閘道器:第8層網路API
- Uber的API生命週期管理平臺邊緣閘道器(Edge Gateway)的設計實踐APIGateway
- .NET Core API閘道器Ocelot(一)【概覽,開始】API
- .net core自定義高效能的Web API服務閘道器WebAPI
- .NET 8 跨平臺高效能邊緣採集閘道器
- 微服務實踐分享(2)api閘道器微服務API
- 微服務基礎——厲害了!API閘道器微服務API
- 工業物聯網核心裝置(邊緣計算閘道器)有什麼功能
- 邊緣計算閘道器如何助力工業機器人執行監控和智慧管理機器人
- api閘道器設計API
- 【杭州活動】API 閘道器與高效能服務最佳實踐API
- 隨行付微服務之基於Zuul自研服務閘道器微服務Zuul
- 基於gRPC、API閘道器和身份驗證的Go微服務原始碼專案RPCAPIGo微服務原始碼
- 開放API閘道器實踐(一) ——設計一個API閘道器API
- 邊緣計算閘道器在智慧儲能中的能效管理
- 從製造到智造,邊緣計算閘道器做了什麼?
- 微服務架構基礎之API閘道器微服務架構API
- .NET Core 微服務—API閘道器(Ocelot) 教程 [四]微服務API
- 微服務設計中的API閘道器模式微服務API模式
- .NET Core 微服務—API閘道器(Ocelot) 教程 [一]微服務API
- 閘道器服務免登入、免檢