Service Mesh終極指南(第二版):次世代微服務開發

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在過去的幾年裏,服務網格(Service Mesh)技術取得了長足的進步。服務網格在不同組織採用雲本地的過程中扮演着重要的角色。通過提供連接性、可靠性、可觀察性和安全性這四種主要類型的功能,服務網格已經成爲IT組織的技術和基礎設施現代化工作的核心組件。服務網格使開發和運維團隊能夠在基礎設施級別實現這些功能,因此在涉及到非功能需求切面時,應用程序團隊不需要付出重複性勞動。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自本文"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/service-mesh-ultimate-guide\/","title":"","type":null},"content":[{"type":"text","text":"第一版"}]},{"type":"text","text":"於2020年2月發表以來,服務網格技術經歷了重大創新,並出現了一些新的架構趨勢、技術能力,在不斷髮展的服務網格領域也不斷湧現出新的服務網格項目。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在過去的一年裏,服務網格產品的發展已經遠遠超過了Kubernetes-only解決方案,之前那些不在Kubernetes平臺上託管的應用無法利用服務網格。並不是所有的組織都將他們的業務和IT應用程序轉移到Kubernetes雲平臺。因此,自服務網格誕生以來,這種技術就需要能夠應用於不同的IT基礎設施環境中。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着微服務架構的日益普及,應用系統在雲提供商、基礎設施(Kubernetes、虛擬機、裸機服務器)、地理位置,甚至在服務網格集成環境中管理的工作負載類型等方面都已變得松耦合和分佈式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"讓我們先來回顧一下服務網格是如何誕生的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2016年前後,“服務網格”一詞出現在微服務、雲計算和DevOps領域。2016年,Buoyant 團隊用"},{"type":"link","attrs":{"href":"https:\/\/twitter.com\/wm\/status\/1383061764938469377?s=20","title":"","type":null},"content":[{"type":"text","text":"這個詞"}]},{"type":"text","text":"來解釋他們的產品Linkerd。與計算機的許多概念一樣,相關的模式和技術實際上有很長的歷史。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格的到來很大程度上是由於IT領域的一場完美風暴。開發人員開始使用多語言方法構建分佈式系統,並需要動態的服務發現。運營開始使用臨時基礎設施,並希望可以優雅地處理那些不可避免的通信故障,以及實施網絡策略。平臺團隊開始採用Kubernetes之類的容器編排系統,並希望使用現代API驅動的網絡代理(如Envoy)動態地將流量路由到系統內部或周圍。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"本文旨在回答針對軟件架構師和技術領導者的相關問題,例如:什麼是服務網格?我需要服務網嗎?我如何評估不同的服務網供應?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"您可以使用頁面底部的導航目錄來快速瀏覽本指南。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格模式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格模式專注於管理分佈式軟件系統中服務到服務的所有通信。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"上下文"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"該模式的上下文有兩個方面:第一,工程師已經採用了微服務體系結構模式,並且正在通過組合多個(理想情況下是單一用途和獨立部署的)服務來構建他們的應用程序。第二,組織已經接受了雲原生平臺技術,如容器(如Docker)、協調器(如Kubernetes)和網關。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"意圖"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格模式試圖解決的問題包括:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"無需將特定於語言的通信庫編譯爲單個服務來處理服務發現、路由和應用程序級(第7層)非功能性通信需求。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"外化服務通信配置,包括外部服務的網絡位置、安全憑據和服務質量目標。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供其他服務的被動和主動監視。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在分佈式系統中分散政策的執行。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供可觀察性默認值並標準化相關數據的收集。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"啓用請求日誌記錄"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置分佈式跟蹤"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"收集度量指標"}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"結構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格模式主要關注處理傳統上稱爲“東-西”的基於遠程過程調用(RPC)的流量:即起源於數據中心內部,並在服務到服務之間傳播的請求\/響應類型的通信。這與API網關或邊緣代理相反,API網關或邊緣代理的設計目的是處理“南-北”流量:即從外部發出並進入數據中心內端點或服務的通信。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格的特性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一個服務網格實現通常會提供以下一個或多個特性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"規範命名並添加邏輯路由(例如,將代碼級名稱“user-service”映射到特定於平平臺的位置“AWS-us-east-1a\/prod\/users\/v4”)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供通訊成形和通訊變換"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"維持負載平衡,通常使用可配置的算法"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供服務釋放控制(例如,金絲雀發佈和流量分割)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供請求級路由(例如,流量跟蹤、故障注入和調試重路由)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"添加基線可靠性,如運行狀況檢查、超時\/截止日期、電路斷開和重試(預算)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過透明的雙向傳輸層安全(TLS)和訪問控制列表(ACL)等策略提高安全性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提供額外的可觀察性和監視性,例如頂級指標(請求量、成功率和延遲)、對分佈式跟蹤的支持,以及“tap”和檢查實時服務到服務通信的能力"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"允許平臺團隊配置“穩健的默認值”,以保護系統不會受到不良通信的影響"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格功能可以分爲以下四個方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"連通性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可靠性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"安全性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可觀察性"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"讓我們看看服務網格技術在這些領域中可以提供哪些特性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"連通性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量控制(路由、分割)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"網關(入口、出口)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務發現"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"A \/ B測試,金絲雀"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務超時,重試"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"可靠性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"斷路器"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"故障注入\/混沌測試"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"安全性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務到服務的身份驗證(MTL)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"證書管理"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶身份驗證(JWT)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶授權(RBAC)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"加密"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"可觀測性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"監控"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"遙測、儀表、度量"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"分佈式跟蹤"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務圖"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格架構:引擎蓋下的祕密"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格由兩個高層次組件組成:數據面板和控制面板。"},{"type":"link","attrs":{"href":"https:\/\/www.envoyproxy.io\/","title":"","type":null},"content":[{"type":"text","text":"Envoy Proxy"}]},{"type":"text","text":"的創建者馬特·克萊因(Matt Klein)對“"},{"type":"link","attrs":{"href":"https:\/\/blog.envoyproxy.io\/service-mesh-data-plane-vs-control-plane-2774e720f7fc","title":"","type":null},"content":[{"type":"text","text":"服務網格數據面板與控制面板"}]},{"type":"text","text":"”的主題進行了非常深入的研究。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"廣義地說,數據面板“完成工作”,並負責“有條件地轉換、轉發和觀察進出(網絡端點)的每個網絡數據包”。在現代系統中,數據面板通常被實現爲代理(如Envoy、HAProxy或MOSN),它與每個服務一起作爲“邊車”在進程外運行。Linkerd使用了一種針對服務網格邊車用例進行優化的"},{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/2020\/12\/03\/why-linkerd-doesnt-use-envoy\/","title":"","type":null},"content":[{"type":"text","text":"微代理"}]},{"type":"text","text":"方法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"控制面板“監督工作”,並獲取數據面板的所有獨立實例(一組孤立的無狀態邊車代理),並將它們轉換爲分佈式系統。控制面板不接觸系統中的任何數據包\/請求,但它允許運維人員爲網格中所有運行的數據面板提供策略和配置。控制面板還可以收集和集中數據面板遙測數據,供運維人員使用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"控制面板和數據面板的結合提供了兩方面的優勢,因爲可以集中定義和管理策略,同時可以在Kubernetes集羣的每個pod中以分佈式方式執行相同的策略。策略可以關聯到安全、路由、斷路器或監控。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面的圖表摘自Istio體系結構文檔,儘管提到的技術是特定於Istio的,但組件對於所有服務網格實現都是通用的。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/db\/42\/db361e888845d1e02942179566b51c42.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Istio架構,演示了控制面板和代理數據面板如何交互(由"},{"type":"link","attrs":{"href":"https:\/\/istio.io\/docs\/","title":"","type":null},"content":[{"type":"text","text":"Istio官方文檔"}]},{"type":"text","marks":[{"type":"strong"}],"text":"提供)"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"用例"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格可以啓用或支持各種用例。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"動態服務發現和路由"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格提供動態服務發現和流量管理,包括用於測試的流量鏡像(traffic shadowing),以及用於金絲雀發佈和A\/B類型試驗的流量切分。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在服務網格中使用的代理通常是“應用層”感知的(在OSI網絡堆棧的第7層操作)。這意味着流量路由決策和指標的標記可以利用HTTP頭或其他應用層協議元數據中的數據。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務到服務的通信可靠性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格支持橫切如請求重試、超時、速率限制和斷路等可靠性需求的實現和實施。服務網格通常用於針對"},{"type":"link","attrs":{"href":"https:\/\/en.wikipedia.org\/wiki\/Fallacies_of_distributed_computing","title":"","type":null},"content":[{"type":"text","text":"分佈式計算的八種謬誤"}]},{"type":"text","text":"進行補償(或封裝)處理。需要注意的是,服務網格只能提供連接級的可靠性支持(比如重試HTTP請求),最終應該由服務負責所有業務相關的影響,比如避免多個(非冪等的)HTTP POST請求。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"流量的可觀測性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由於服務網格位於系統正在處理的每個請求的關鍵路徑上,因此它還可以提供額外的“可觀察性”,例如對請求的分佈式跟蹤、HTTP錯誤碼的頻率以及全局和服務到服務的延遲。儘管這是一個在企業中被過度使用的詞,但服務網格經常被提議作爲一種捕獲所有必要數據的方法,以實現整個系統內流量的“單窗格”視圖。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"通信安全"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格還支持橫切安全需求的實現和實施,例如提供服務身份(通過x509證書),支持應用程序級服務\/網絡分段(例如,“服務A”可以與“服務B”通信,而不是“服務C”),確保所有通信都是加密的(通過TLS),並確保持有有效的用戶級身份令牌或“"},{"type":"link","attrs":{"href":"https:\/\/qconsf.com\/sf2019\/presentation\/user-device-identity-microservices-netflix-scale","title":"","type":null},"content":[{"type":"text","text":"護照"}]},{"type":"text","text":"”。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"反模式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"反模式應用的出現,通常是技術成熟的標誌。服務網格也不例外。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"太多的流量管理層級(一路龜行)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果開發人員沒有與平臺或運維團隊協調流通,直接在代碼中複製現有的通信處理邏輯(現在正在通過服務網格實現),就會出現此反模式。例如,除了服務網格配置提供的線路級重試策略外,應用程序還在代碼中實現重試策略。此反模式可能會導致重複事務等問題。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"將服務網格視作銀彈"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在IT領域沒有所謂的“銀彈”,但供應商有時會忍不住給新技術貼上這個標籤。服務網格不能解決微服務、Kubernetes之類的容器協調器或雲網絡的所有通信問題。服務網格的目的只是促進服務到服務(東-西)的通信,部署和運行服務網格有明確的運維成本。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"企業服務總線(ESB) 2.0"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在前微服務面向服務體系結構(SOA)時代,企業服務總線(ESB)實現了軟件組件之間的通信系統。有些人擔心,在使用服務網格時,ESB時代的許多錯誤會重複出現。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"很顯然,通過ESB提供的通信集中控制是有價值的。然而,這些技術的開發是由供應商驅動的,這導致了許多問題,例如:ESB之間缺乏互操作性、行業標準的定製擴展(例如,將特定於供應商的配置添加到兼容WS-*的模式中)和高成本。ESB供應商未做什麼去防止業務邏輯與通信總線的集成和緊密耦合。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"大爆炸式部署"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"IT界普遍存在一種誘惑,認爲大規模部署方法是最容易管理的方法,但根據"},{"type":"link","attrs":{"href":"https:\/\/itrevolution.com\/book\/accelerate\/","title":"","type":null},"content":[{"type":"text","text":"Accelerate"}]},{"type":"text","text":"和"},{"type":"link","attrs":{"href":"https:\/\/puppet.com\/resources\/report\/state-of-devops-report\/","title":"","type":null},"content":[{"type":"text","text":"DevOps State報告"}]},{"type":"text","text":"的研究,情況並非如此。由於服務網格的全面推出意味着該技術處於處理所有終端用戶請求的關鍵路徑上,因此大爆炸部署風險很高。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"死星架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當組織採用微服務體系結構,開發團隊開始創建新的微服務或在其應用程序中利用現有服務時,服務到服務的通信就成爲體系結構的關鍵部分。如果沒有良好的治理模型,這可能導致不同服務之間的緊密耦合。當整個系統在生產中出現問題時,這也很難確定哪個服務出現了問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"缺乏服務通信策略和治理模型,該體系結構就變成了所謂的“死星架構”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"有關此體系結構反模式的更多信息,請參閱關於採用雲本地體系結構的第"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part1\/","title":"","type":null},"content":[{"type":"text","text":"1"}]},{"type":"text","text":"、"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part2\/","title":"","type":null},"content":[{"type":"text","text":"2"}]},{"type":"text","text":"和"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part3\/","title":"","type":null},"content":[{"type":"text","text":"3"}]},{"type":"text","text":"部分文章。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"特定領域的服務網格"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"局部實現和過度優化服務網格有時會導致服務網格部署的範圍過窄。開發人員可能更喜歡特定於他們自己業務領域的服務網格實例,但這種方法弊大於利。我們不想實現一個過於細粒度的服務網格範圍,就像爲組織中的每個業務或功能領域(例如,財務、人力資源、會計等)實現一個專用的服務網格。這與爲企業級服務發現或跨域服務路由等功能使用公共服務編制解決方案(如服務網格)的目的不符。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格的實現和產品"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以下是當前服務網格實現的非詳盡列表:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/","title":"","type":null},"content":[{"type":"text","text":"Linkerd"}]},{"type":"text","text":"(CNCF畢業項目)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/istio.io\/","title":"","type":null},"content":[{"type":"text","text":"Istio"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.consul.io\/","title":"","type":null},"content":[{"type":"text","text":"Consul"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/kuma.io\/","title":"","type":null},"content":[{"type":"text","text":"Kuma"}]},{"type":"text","text":" (CNCF沙盒項目)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/aws.amazon.com\/app-mesh\/","title":"","type":null},"content":[{"type":"text","text":"AWS App Mesh"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.nginx.com\/products\/nginx-service-mesh\/","title":"","type":null},"content":[{"type":"text","text":"NGINX 服務網格"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/aspenmesh.io\/","title":"","type":null},"content":[{"type":"text","text":"AspenMesh"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/konghq.com\/kong-mesh\/","title":"","type":null},"content":[{"type":"text","text":"Kong"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.solo.io\/products\/gloo-mesh\/","title":"","type":null},"content":[{"type":"text","text":"Solo Gloo Mesh"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.tetrate.io\/tetrate-service-bridge\/","title":"","type":null},"content":[{"type":"text","text":"Tetrate Service Bridge"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"http:\/\/traefik.io\/traefik-mesh","title":"","type":null},"content":[{"type":"text","text":"Traefik Mesh"}]},{"type":"text","text":" (formerly Maesh)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"http:\/\/layer5.io\/meshery","title":"","type":null},"content":[{"type":"text","text":"Meshery"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"http:\/\/openservicemesh.io\/","title":"","type":null},"content":[{"type":"text","text":"Open 服務網格"}]},{"type":"text","text":"  (CNCF沙箱項目)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外,"},{"type":"link","attrs":{"href":"https:\/\/www.datadoghq.com\/blog\/tag\/service-mesh\/","title":"","type":null},"content":[{"type":"text","text":"DataDog"}]},{"type":"text","text":"等其他產品也開始提供與Linkerd、Istio、Consul Connect和AWS App mesh等服務網格技術的集成。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格比較:選擇哪款服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格領域的發展速度非常快,因此嘗試做出的任何比較可能很快都會過時。但儘管如此,還是有人做了一些比較。要注意比較之間存在的偏差(如果有的話)和比較時的日期。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/layer5.io\/landscape","title":"","type":null},"content":[{"type":"text","text":"https:\/\/layer5.io\/landscape"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/kubedex.com\/istio-vs-linkerd-vs-linkerd2-vs-consul\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/kubedex.com\/istio-vs-linkerd-vs-linkerd2-vs-consul\/"}]},{"type":"text","text":" (截至2021年8月)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/platform9.com\/blog\/kubernetes-service-mesh-a-comparison-of-istio-linkerd-and-consul\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/platform9.com\/blog\/kubernetes-service-mesh-a-comparison-of-istio-linkerd-and-consul\/"}]},{"type":"text","text":"(截至2019年10月)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/servicemesh.es\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/servicemesh.es\/"}]},{"type":"text","text":" (最近的發佈是2021年8月)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格採用者自己對每個產品進行審慎的調查和試驗是InfoQ一直不變的建議。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格教程"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於想要嘗試多種服務網格的工程師或架構師來說,可以考慮以下教程、實訓場和工具:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/layer5.io\/meshery","title":"","type":null},"content":[{"type":"text","text":"Layer 5 Meshery"}]},{"type":"text","text":"—一款多服務網格管理面板"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/github.com\/solo-io\/supergloo","title":"","type":null},"content":[{"type":"text","text":"Solo’s Gloo Mesh"}]},{"type":"text","text":"—一個服務網格編排平臺"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.katacoda.com\/courses\/istio\/deploy-istio-on-kubernetes","title":"","type":null},"content":[{"type":"text","text":"KataCoda Istio 教程"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/learn.hashicorp.com\/consul","title":"","type":null},"content":[{"type":"text","text":"Consul 服務網格教程"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/2\/getting-started\/","title":"","type":null},"content":[{"type":"text","text":"Linkerd 教程"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/docs.nginx.com\/nginx-service-mesh\/tutorials\/","title":"","type":null},"content":[{"type":"text","text":"NGINX 服務網格教程"}]}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格的歷史"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自2013年末Airbnb發佈"},{"type":"link","attrs":{"href":"https:\/\/medium.com\/airbnb-engineering\/smartstack-service-discovery-in-the-cloud-4b8a080de619","title":"","type":null},"content":[{"type":"text","text":"SmartStack"}]},{"type":"text","text":"以來,InfoQ一直在跟進我們現在稱之爲"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/servicemesh\/","title":"","type":null},"content":[{"type":"text","text":"服務網格"}]},{"type":"text","text":"的話題,SmartStack爲新興的“"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/microservices\/","title":"","type":null},"content":[{"type":"text","text":"微服務"}]},{"type":"text","text":"”風格架構提供了一種進程外服務發現機制(使用"},{"type":"link","attrs":{"href":"http:\/\/www.haproxy.org\/","title":"","type":null},"content":[{"type":"text","text":"HAProxy"}]},{"type":"text","text":")。在此之前,許多先前被稱爲“獨角獸”的組織都在從事類似的技術。從21世紀初開始,谷歌就在開發它的"},{"type":"link","attrs":{"href":"https:\/\/grpc.io\/blog\/principles\/","title":"","type":null},"content":[{"type":"text","text":"Stubby "}]},{"type":"text","text":"RPC框架,並發展成爲"},{"type":"link","attrs":{"href":"https:\/\/cloud.google.com\/blog\/products\/gcp\/grpc-a-true-internet-scale-rpc-framework-is-now-1-and-ready-for-production-deployments","title":"","type":null},"content":[{"type":"text","text":"gRPC"}]},{"type":"text","text":",以及"},{"type":"link","attrs":{"href":"https:\/\/landing.google.com\/sre\/sre-book\/chapters\/production-environment\/","title":"","type":null},"content":[{"type":"text","text":"Google Frontend (GFE)"}]},{"type":"text","text":"和Global Software Load Balancer (GSLB),在"},{"type":"link","attrs":{"href":"https:\/\/istio.io\/","title":"","type":null},"content":[{"type":"text","text":"Istio"}]},{"type":"text","text":"中可以看到這些特點。在2010年代早期,Twitter開始開發基於Scala的"},{"type":"link","attrs":{"href":"https:\/\/twitter.github.io\/finagle\/","title":"","type":null},"content":[{"type":"text","text":"Finagle"}]},{"type":"text","text":", "},{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/","title":"","type":null},"content":[{"type":"text","text":"Linkerd"}]},{"type":"text","text":"服務網絡由此誕生。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2014年底,Netflix發佈了一整套"},{"type":"link","attrs":{"href":"https:\/\/netflix.github.io\/","title":"","type":null},"content":[{"type":"text","text":"基於JVM"}]},{"type":"text","text":"的實用程序,其中包括"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2014\/12\/netflix-prana\/","title":"","type":null},"content":[{"type":"text","text":"Prana"}]},{"type":"text","text":",這是一個“邊車”進程,允許用任何語言編寫的應用程序服務通過HTTP與庫的獨立實例通信。2016年,NGINX團隊開始討論“"},{"type":"link","attrs":{"href":"https:\/\/www.nginx.com\/blog\/microservices-reference-architecture-nginx-fabric-model\/","title":"","type":null},"content":[{"type":"text","text":"Fabric模型"}]},{"type":"text","text":"”,它非常類似於服務網格,但需要使用他們的商業NGINX Plus產品來實現。此外,Linkerd v0.2是在2016年2月"},{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/2016\/02\/18\/linkerd-twitter-style-operability-for-microservices\/","title":"","type":null},"content":[{"type":"text","text":"發佈"}]},{"type":"text","text":"的,儘管團隊後來纔開始稱其爲服務網格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格歷史上的其他亮點包括2017年5月發佈的"},{"type":"link","attrs":{"href":"https:\/\/istio.io\/","title":"","type":null},"content":[{"type":"text","text":"Istio"}]},{"type":"text","text":", 2018年7月發佈的"},{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/2018\/09\/18\/announcing-linkerd-2-0\/","title":"","type":null},"content":[{"type":"text","text":"Linkerd 2.0"}]},{"type":"text","text":", 2018年11月發佈的"},{"type":"link","attrs":{"href":"https:\/\/www.hashicorp.com\/products\/consul\/service-mesh","title":"","type":null},"content":[{"type":"text","text":"Consul Connect"}]},{"type":"text","text":"和"},{"type":"link","attrs":{"href":"https:\/\/github.com\/solo-io\/supergloo","title":"","type":null},"content":[{"type":"text","text":"Gloo mesh"}]},{"type":"text","text":", 2019年5月發佈的"},{"type":"link","attrs":{"href":"https:\/\/smi-spec.io\/","title":"","type":null},"content":[{"type":"text","text":"服務網格接口(SMI)"}]},{"type":"text","text":",以及2019年9月發佈的Maesh(現在稱爲Traefik mesh)和Kuma。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"即使是在獨角獸之外出現的服務網格,如HashiCorp的"},{"type":"link","attrs":{"href":"https:\/\/www.consul.io\/","title":"","type":null},"content":[{"type":"text","text":"Consul"}]},{"type":"text","text":",也從上述技術中獲得的靈感,通常旨在實現CoreOS創造的“"},{"type":"link","attrs":{"href":"https:\/\/github.com\/linearregression\/GIFEE","title":"","type":null},"content":[{"type":"text","text":"GIFEE"}]},{"type":"text","text":"”概念;針對其他所有人的谷歌基礎設施。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了深入瞭解現代服務網格概念的發展歷史,"},{"type":"link","attrs":{"href":"https:\/\/philcalcado.com\/","title":"","type":null},"content":[{"type":"text","text":"Phil Calçado"}]},{"type":"text","text":"寫了一篇全面的文章“"},{"type":"link","attrs":{"href":"https:\/\/philcalcado.com\/2017\/08\/03\/pattern_service_mesh.html","title":"","type":null},"content":[{"type":"text","text":"模式:服務網格"}]},{"type":"text","text":"”。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格的標準"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"儘管服務網格技術在過去幾年裏經歷了年復一年的重大變革,但服務網格的標準並沒有跟上創新的步伐。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使用服務網格解決方案的主要標準是服務網格接口(SMI)。服務網格接口是Kubernetes上運行的服務網格的規範。它本身並沒有實現服務網格,而是定義了一個可以由各種服務網格提供者實現的公共標準。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SMI API的目標是提供一組公共的、可移植的服務網格 API, Kubernetes用戶可以以不可知的方式使用這些API。通過這種方式,人們可以定義使用服務網格技術的應用程序,而無需與任何特定的實現緊密綁定。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SMI基本上是Kubernetes自定義資源定義(CRD)和擴展API服務器的集合。這些API可以安裝到任何Kubernetes集羣上,並使用標準工具進行運維。要激活這些API,需要在Kubernetes集羣中運行SMI provider 。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SMI規範既允許終端用戶的標準化,也允許服務網格技術提供商的創新。SMI支持靈活性和互操作性,並涵蓋了最常見的服務網格功能。當前的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec\/tree\/main\/apis","title":"","type":null},"content":[{"type":"text","text":"規範組件"}]},{"type":"text","text":"主要關注服務網格功能的連接性方面。API規範包括以下內容:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量訪問控制"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量指標"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量規格"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量分割"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當前的SMI"},{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec","title":"","type":null},"content":[{"type":"text","text":"生態系統"}]},{"type":"text","text":"廣泛包括Istio, Linkerd, Consul Connect, Gloo mesh等服務網格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SMI規範接受"},{"type":"link","attrs":{"href":"http:\/\/www.apache.org\/licenses\/","title":"","type":null},"content":[{"type":"text","text":"Apache License Version 2.0"}]},{"type":"text","text":"的許可。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果您想了解更多關於SMI規範及其API的細節,請查看以下鏈接。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec\/blob\/main\/SPEC_LATEST_STABLE.md","title":"","type":null},"content":[{"type":"text","text":"核心規範"}]},{"type":"text","text":"(當前版本:0.6.0)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec","title":"","type":null},"content":[{"type":"text","text":"規範Github"}]},{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec","title":"","type":null},"content":[{"type":"text","text":"項目"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/github.com\/servicemeshinterface\/smi-spec\/blob\/main\/CONTRIBUTING.md","title":"","type":null},"content":[{"type":"text","text":"如何做出貢獻"}]}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"服務網格基準"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/smp-spec.io\/","title":"","type":null},"content":[{"type":"text","text":"服務網格性能"}]},{"type":"text","text":"是一個用於捕獲基礎設施容量、服務Mesh配置和工作負載元數據細節的標準。SMP規範用於捕獲以下細節:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"環境和基礎設施細節"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"節點的數量和大小,協調器"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格及其配置"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"工作負載\/應用程序細節"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"描述性能的統計分析"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"來自Linkerd團隊的William Morgan"},{"type":"link","attrs":{"href":"https:\/\/linkerd.io\/2021\/05\/27\/linkerd-vs-istio-benchmarks\/","title":"","type":null},"content":[{"type":"text","text":"寫了一篇"}]},{"type":"text","text":"關於對Linkerd和Istio性能進行基準測試的文章。還有一篇2019年的"},{"type":"link","attrs":{"href":"https:\/\/istio.io\/latest\/blog\/2019\/performance-best-practices\/","title":"","type":null},"content":[{"type":"text","text":"文章"}]},{"type":"text","text":"是關於Istio對服務網格性能進行基準測試的最佳實踐。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"重點是要記住,就像任何其他性能基準一樣,您不應該把太多的精力放在任何外部發布的文章上,特別是產品供應商發佈的。您應該在服務器環境中設計並執行自己的性能測試,以驗證哪些特定產品適合你的應用程序的業務和非功能性需求。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"探索服務網格(可能)的未來"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/profile\/Kasun-Indrasiri\/","title":"","type":null},"content":[{"type":"text","text":"Kasun Indrasiri"}]},{"type":"text","text":"探討了“"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/service-mesh-event-driven-messaging\/","title":"","type":null},"content":[{"type":"text","text":"使用服務網格進行事件驅動消息傳遞的潛力"}]},{"type":"text","text":"”,其中他討論了在服務網格中實現消息傳遞支持的兩種主要體系結構模式:協議代理邊車和HTTP橋接邊車。在服務網格社區中,這是一個活躍的開發領域,"},{"type":"link","attrs":{"href":"https:\/\/github.com\/envoyproxy\/envoy\/issues\/2852","title":"","type":null},"content":[{"type":"text","text":"Envoy致力於支持Apache Kafka"}]},{"type":"text","text":"的努力吸引了相當多的關注。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Christian Posta之前曾在“"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/service-mesh-api-federating\/","title":"","type":null},"content":[{"type":"text","text":"統一標準的服務網格API"}]},{"type":"text","text":"”中寫過關於服務網格使用標準化的嘗試。本文還討論了2019年由微軟和KubeCon EU合作伙伴宣佈的"},{"type":"link","attrs":{"href":"https:\/\/cloudblogs.microsoft.com\/opensource\/2019\/05\/21\/service-mesh-interface-smi-release\/","title":"","type":null},"content":[{"type":"text","text":"服務網格接口(SMI)"}]},{"type":"text","text":"。SMI定義了一組通用和可移植的API,旨在爲開發人員提供跨不同服務網格技術(包括Istio、Linkerd和Consul Connect)的互操作性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"將服務網格與平臺結構集成的主題可以進一步分爲兩個子主題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一個,正在進行的工作是減少由服務網格數據面板引入的網絡開銷。這包括"},{"type":"link","attrs":{"href":"https:\/\/www.dpdk.org\/","title":"","type":null},"content":[{"type":"text","text":"數據面板開發工具包"}]},{"type":"text","text":"(DPDK),它是一個"},{"type":"link","attrs":{"href":"https:\/\/www.linuxjournal.com\/content\/userspace-networking-dpdk","title":"","type":null},"content":[{"type":"text","text":"用戶空間應用程序"}]},{"type":"text","text":",“繞過Linux內核網絡堆棧的厚重層次,直接與網絡硬件對話。”"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2018\/03\/cilium-linux-bpf\/","title":"","type":null},"content":[{"type":"text","text":"Cilium團隊"}]},{"type":"text","text":"也有一個基於Linux的BPF解決方案,它在Linux內核中利用了擴展的"},{"type":"link","attrs":{"href":"https:\/\/cilium.io\/blog\/istio\/","title":"","type":null},"content":[{"type":"text","text":"伯克利包過濾(eBPF)功能"}]},{"type":"text","text":",以實現“非常高效的網絡、策略執行和負載平衡功能”。另一個團隊正在用"},{"type":"link","attrs":{"href":"https:\/\/github.com\/networkservicemesh\/networkservicemesh\/","title":"","type":null},"content":[{"type":"text","text":"網絡服務網格"}]},{"type":"text","text":"將服務網格的概念映射到L2\/L3有效負載,試圖“以雲本地的方式重新想象網絡功能虛擬化(NFV)”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個,將服務網格與公共雲平臺更緊密地集成的多個舉措,如"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2019\/01\/aws-app-mesh\/","title":"","type":null},"content":[{"type":"text","text":"AWS App Mesh"}]},{"type":"text","text":"、"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2019\/04\/google-traffic-director\/","title":"","type":null},"content":[{"type":"text","text":"GCP Traffic Director"}]},{"type":"text","text":"和"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/azure-service-fabric-mesh\/","title":"","type":null},"content":[{"type":"text","text":"Azure service Fabric Mesh"}]},{"type":"text","text":"的引入。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Buoyant團隊正在爲服務網格技術開發有效的以人爲中心的控制面板。他們最近發佈了 "},{"type":"link","attrs":{"href":"https:\/\/buoyant.io\/cloud\/","title":"","type":null},"content":[{"type":"text","text":"Buoyant Cloud"}]},{"type":"text","text":",這是一款基於saas的“團隊控制平臺”,面向運維Kubernetes的平臺團隊。下面一節將對此產品進行更詳細的討論。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自去年以來,在服務網格領域也出現了一些創新。讓我們來看看這些創新。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"多雲、多集羣、多租戶服務網格"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近年來,不同組織對雲的採用已經從單一的雲解決方案(私有或公有)轉變爲基於多個不同供應商(AWS、谷歌、Microsoft Azure等)支持的多雲(私有、公有和混合)的新基礎設施。此外,支持不同工作負載(事務性、批處理和流)的需求對於實現統一的雲架構至關重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這些業務和非功能需求反過來又導致需要在異構基礎設施(裸機、虛擬機和Kubernetes)中部署服務網格解決方案。服務網格體系結構需要進行相應的轉換,以支持這些不同的工作負載和基礎設施。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[Kuma](http:\/\/ Buoyant Cloud)等技術支持多網格控制面板,使業務應用程序能夠在多集羣和多雲服務網格環境中工作。這些解決方案抽象了跨多個區域的服務網格策略的同步以及跨這些區域的服務連接(和服務發現)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多集羣服務網格技術的另一個新興趨勢是需要從邊緣計算層(物聯網設備)到網格層的應用\/服務連接。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"媒體服務網格"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由思科系統公司開發的"},{"type":"link","attrs":{"href":"https:\/\/www.ciscotechblog.com\/blog\/introducing-media-streaming-mesh\/","title":"","type":null},"content":[{"type":"text","text":"媒體流網格"}]},{"type":"text","text":"或媒體服務網格,在Kubernetes雲平臺上使用服務網格技術,用於編排實時應用程序,如多人遊戲、多方視頻會議或CCTV流媒體。這些應用程序正越來越多地從單片應用程序轉向微服務體系結構。服務網格可以通過提供負載平衡、加密和可觀察性等功能來幫助應用程序。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"混沌網格"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/chaos-mesh.org\/","title":"","type":null},"content":[{"type":"text","text":"混沌網格"}]},{"type":"text","text":"是"},{"type":"link","attrs":{"href":"https:\/\/community.cncf.io\/chaos-mesh-community\/","title":"","type":null},"content":[{"type":"text","text":"一個由CNCF託管的項目"}]},{"type":"text","text":",是一個用於Kubernetes託管應用程序的開源雲原生混沌工程平臺。雖然混沌網格不是一個直接的服務網格實現,但它通過將錯誤注入行爲編排到應用程序中來實現混沌工程實驗。故障注入是服務網格技術的關鍵功能之一。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"混沌網格隱藏了底層的實現細節,因此應用程序開發人員可以專注於實際的混沌實驗。混沌網格可以與服務網格一起使用。檢出這個"},{"type":"link","attrs":{"href":"https:\/\/github.com\/sergioarmgpl\/operating-systems-usac-course\/blob\/master\/lang\/en\/projects\/project1v3\/project1.md","title":"","type":null},"content":[{"type":"text","text":"用例"}]},{"type":"text","text":",看看團隊是如何使用Linkerd和混沌來爲他們的項目進行混沌實驗的。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格即服務"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一些服務網格供應商,如Buoyant,正在提供託管服務網格或“服務網格即服務”解決方案。今年早些時候,Buoyant"},{"type":"link","attrs":{"href":"https:\/\/buoyant.io\/newsroom\/buoyant-cloud-offers-managed-service-mesh\/","title":"","type":null},"content":[{"type":"text","text":"發佈"}]},{"type":"text","text":"了一個名爲"},{"type":"link","attrs":{"href":"http:\/\/buoyant.io\/cloud","title":"","type":null},"content":[{"type":"text","text":"Buoyant Cloud"}]},{"type":"text","text":"的SaaS應用的公開測試版,該應用允許客戶組織利用託管服務網格和Linkerd服務網格的隨需支持特性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Buoyant Cloud解決方案提供的一些功能包括:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Linkerd數據面板和控制面板健康的自動跟蹤"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"管理Kubernetes平臺上跨pod、代理和集羣的服務網格生命週期和版本"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以SRE爲重點的工具,包括服務水平目標(SLO)、工作負載黃金度量跟蹤和變更跟蹤"}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"網絡服務網格(NSM),"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"網絡服務網格("},{"type":"link","attrs":{"href":"https:\/\/networkservicemesh.io\/","title":"","type":null},"content":[{"type":"text","text":"NSM"}]},{"type":"text","text":"),另一個雲本地計算基礎沙箱項目,提供了一個混合的、多雲的IP服務網格。NSM支持諸如網絡服務連接性、安全性和可觀察性等功能,這些都是服務網格的核心特性。NSM與現有的容器網絡接口("},{"type":"link","attrs":{"href":"https:\/\/github.com\/containernetworking\/cni","title":"","type":null},"content":[{"type":"text","text":"CNI"}]},{"type":"text","text":")實現一起工作。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格擴展"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格擴展是另一個有很多創新的領域。近期服務網格擴展的發展包括:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"增強的身份管理,以保護微服務連接,包括自定義證書頒發插件"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自適應路由特性,以提高服務的可用性和可伸縮性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"加強邊車代理"}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格運維"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採用服務網格的另一個重要領域是服務網格生命週期的運維端。運維方面——比如配置多集羣功能和將Kubernetes工作負載連接到虛擬機基礎架構上的服務器,以及用於管理多集羣服務網格安裝中的所有特性和API的開發者門戶,將在服務網格解決方案的總體部署和生產支持中發揮重要作用。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"常見問題解答"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"什麼是服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格是一種管理分佈式(潛在的基於微服務的)軟件系統中所有服務到服務(東-西)流量的技術。它既提供以業務爲中心的功能性操作(如路由),也提供非功能性支持(如執行安全策略、服務質量和速率限制)。它通常(儘管不是唯一的)使用邊車代理實現,所有服務都通過邊車代理進行通信。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格與API網關有何不同?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務網格的有關定義,請參見上文。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另一方面,API網關管理進入集羣的所有入口(南-北)流量,併爲跨功能通信需求提供額外支持。它充當進入系統的單一入口點,並允許多個API或服務內聚,向用戶提供一致的體驗。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"如果我正在部署微服務,我是否需要服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不一定。服務網格增加了技術棧的運維複雜性,因此通常只在組織在擴展服務到服務通信方面遇到困難,或者有特定的用例需要解決時才部署。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"我是否需要服務網格來實現微服務的服務發現?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不用。服務網格提供的是一種實現服務發現的方法。還有包括特定於語言的庫(如Ribbon和Eureka或Finagle)的其他解決方案。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格是否增加了服務到服務通信的開銷\/延遲?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"是的,當服務與另一個服務通信時,服務網格至少會增加兩個額外的網絡跳數(第一個是來自處理源出站連接的代理,第二個是來自處理目的地入站連接的代理)。但是,這種額外的網絡跳通常發生在"},{"type":"link","attrs":{"href":"https:\/\/en.wikipedia.org\/wiki\/Localhost","title":"","type":null},"content":[{"type":"text","text":"本地主機或環回網絡接口"}]},{"type":"text","text":"上,並且只增加少量延遲(量級爲毫秒)。對服務網格進行分析和評估時,應試驗和理解這對於目標用例來說是否構成問題。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"服務網格不應該是Kubernetes或部署應用程序的“雲本地平臺”的一部分吧?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"很可能。對於在雲本地平臺組件中保持關注點分離(例如,Kubernetes負責提供容器編排,而服務網格負責服務到服務的通信)存在爭議。然而,將服務網狀功能推進到現代的平臺即服務(PaaS)產品中的工作正在進行中。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"如何實現、部署或推出服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最好的方法是分析各種服務網格產品(見上文),並遵循特定於所選網格的實現指南。一般來說,最好是與所有涉衆一起協作,並將所有新技術逐步部署到生產中。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"我可以建立自己的服務網格嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然,但更重要的問題是,你應該這樣做嗎?建立服務網是您組織的核心競爭力嗎?你能否以更有效的方式爲客戶提供價值?您是否也致力於維護自己的網格,爲安全問題打補丁,並不斷更新它以利用新技術?隨着開放源碼和商業服務網格產品的出現,使用現有的解決方案可能會更有效。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"在軟件交付組織中,哪個團隊擁有服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通常情況下,平臺或運營團隊擁有服務網格,以及Kubernetes和連續交付管道基礎設施。然而,將由開發人員配置服務網格參數,因此兩個團隊應該緊密合作。許多組織都在效仿雲計算先鋒,如Netflix、Spotify和谷歌,並創建內部平臺團隊,爲"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2018\/06\/netflix-full-cycle-developers\/","title":"","type":null},"content":[{"type":"text","text":"全週期產品開發團隊"}]},{"type":"text","text":"提供工具和服務。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Envoy是服務網格嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不。Envoy是一個雲原生代理,最初是由Lyft團隊設計和構建的。Envoy通常被用作使用服務網格的數據面板。然而,爲了被認爲是服務網格,Envoy必須與一個控制面板結合使用,以使這一系列技術成爲服務網格。控制面板可以像集中式配置文件存儲庫和度量收集器那樣簡單,也可以像Istio那樣全面\/複雜。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"“Istio”和“服務網格”可以互換使用嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"不行。Istio是一種服務網格。由於Istio的流行,當服務網格類別出現時,一些地方會把Istio和服務網格相提並論。這種問題並不是服務網格所獨有的,Docker和容器技術也面臨同樣的挑戰。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"我應該使用哪種服務網格?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個問題沒有唯一解。工程師必須瞭解他們當前的需求,以及他們的實現團隊可用的技能、資源和時間。你可以先看看上面所列的服務網格比較鏈接,它們是你開啓探索的一個良好的起點,但我們強烈建議組織至少試驗兩個網格,以便了解哪些產品、技術和工作流最適合他們。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"我可以使用Kubernetes之外的服務網格嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然。許多服務網格允許在各種基礎設施上安裝和管理數據面板代理和相關的控制面板。最著名的例子是"},{"type":"link","attrs":{"href":"https:\/\/www.hashicorp.com\/resources\/consul-service-mesh-kubernetes-and-beyond","title":"","type":null},"content":[{"type":"text","text":"HashiCorp的Consul"}]},{"type":"text","text":",Istio也被用於Cloud Foundry。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"額外的資源"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/servicemesh\/","title":"","type":null},"content":[{"type":"text","text":"InfoQ 服務網格主頁"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/minibooks\/service-mesh","title":"","type":null},"content":[{"type":"text","text":"InfoQ eMag-"}]},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/minibooks\/service-mesh","title":"","type":null},"content":[{"type":"text","text":"服務網格:"}]},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/minibooks\/service-mesh","title":"","type":null},"content":[{"type":"text","text":"過去、現在和未來"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/servicemesh.io","title":"","type":null},"content":[{"type":"text","text":"服務網格"}]},{"type":"link","attrs":{"href":"https:\/\/servicemesh.io","title":"","type":null},"content":[{"type":"text","text":":"}]},{"type":"link","attrs":{"href":"https:\/\/servicemesh.io","title":"","type":null},"content":[{"type":"text","text":"關於這項世界上最被過度炒作的技術,每個軟件工程師都需要知道什麼"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/servicemesh.es\/","title":"","type":null},"content":[{"type":"text","text":"服務網格比較"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/softwareengineeringdaily.com\/2020\/01\/07\/service-meshes\/","title":"","type":null},"content":[{"type":"text","text":"服務網格"}]}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part3","title":"","type":null},"content":[{"type":"text","text":"雲本地架構採用,第3部分"}]},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part3","title":"","type":null},"content":[{"type":"text","text":":"}]},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/cloud-native-architecture-adoption-part3","title":"","type":null},"content":[{"type":"text","text":"服務編排和服務網格"}]}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"術語表"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"API網關"},{"type":"text","text":":管理進入集羣的所有入口(南-北)流量,併爲跨功能通信需求提供額外支持。它充當進入系統的單一入口點,並允許多個API或服務內聚並向用戶提供統一的體驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Consul:"},{"type":"text","text":" HashiCorp的基於Go的服務網格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"容器化"},{"type":"text","text":":容器是一個標準的軟件單元,它將代碼及其所有依賴項打包,以便在一個計算環境運行的應用程序快速可靠地到另一個環境中運行。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"控制面板"},{"type":"text","text":":獲取數據面板(代理)的所有單獨實例,並將它們轉換爲一個可由運維人員可視化和控制的分佈式系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"斷路器"},{"type":"text","text":":處理連接到遠程服務時的故障或超時。有助於提高應用程序的穩定性和彈性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"數據面板"},{"type":"text","text":":一個代理,有條件地轉換、轉發和觀察每個來自服務網絡端點的網絡數據包。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Docker"},{"type":"text","text":": Docker容器映像是一個輕量級的、獨立的、可執行的軟件包,包含了運行應用程序所需的所有東西:代碼、運行環境、系統工具、系統庫和設置。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"東-西流量"},{"type":"text","text":":數據中心、網絡或Kubernetes集羣內的網絡流量。傳統的網絡圖是由服務到服務(數據中心間)流量從左到右(東到西)繪製的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Envoy Proxy"},{"type":"text","text":":開源邊緣和服務代理,專爲雲本地應用設計。Envoy通常用作服務網格實現中的數據面板。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"入口流量"},{"type":"text","text":":來自數據中心、網絡或Kubernetes集羣外部的網絡流量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Istio"},{"type":"text","text":":基於c++(數據面板)和Go(控制面板)的服務網格,最初由谷歌和IBM與Lyft的Envoy團隊合作創建。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Kubernetes"},{"type":"text","text":":起源於谷歌的由cncf託管的容器編排和調度框架。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Kuma"},{"type":"text","text":":一款來自於Kong的基於Go的服務網格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Linkerd"},{"type":"text","text":":一個由Rust(數據面板)和Go(控制面板)驅動的服務網格,源自Twitter早期基於jvm的通信框架。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Maesh"},{"type":"text","text":": A Go-based 服務網格 from Containous, the maintainers of the Traefik API gateway."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Maesh"},{"type":"text","text":":來自Containous的基於go的服務網格,它是Traefik API網關的維護者。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"MOSN:螞蟻金服團隊的基於Go的代理,實現了(Envoy) xDS API。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"南-北流量"},{"type":"text","text":":進入數據中心、網絡或Kubernetes集羣的網絡流量。傳統的網絡圖是這樣繪製的:入口流量由頁面的頂部進入數據中心,然後向下(從北到南)進入網絡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"代理"},{"type":"text","text":":在端點組件之間充當中介的軟件系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"分段"},{"type":"text","text":":將一個網絡或集羣劃分爲多個子網絡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"服務網格"},{"type":"text","text":":管理分佈式(潛在的基於微服務的)軟件系統中所有服務到服務(東-西)的流量。它既提供功能性操作(如路由),也提供非功能性支持(如執行安全策略、服務質量和速率限制)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"服務網格接口(SMI)"},{"type":"text","text":":部署到Kubernetes上的服務網格的標準接口。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"服務網格策略"},{"type":"text","text":":一個關於一組服務\/端點如何相互之間以及如何與其他網絡端點通信的規範。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"邊車"},{"type":"text","text":": 一種部署模式,在這種模式中,附加的流程、服務或容器與現有的服務一起部署(想象一下摩托車的跨鬥)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Single pane of glass"},{"type":"text","text":":一個UI或管理控制檯,在一個統一的視圖中顯示來自於多個來源的數據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"流量整形"},{"type":"text","text":":修改網絡中的流量,如限速、減載等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"流量遷移"},{"type":"text","text":":將流量從一個位置遷移到另一個位置。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"流量分割:允許用戶在各種服務之間增量地分配流量百分比。由客戶端(如入口控制器或服務網格邊車)使用,將出站流量分割到不同的目的地。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現代軟件架構師的角色在不斷變化。訂閱InfoQ的《"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/architects-newsletter\/?utm_source=text&utm_medium=end&utm_campaign=pillarpage","title":"","type":null},"content":[{"type":"text","text":"軟件架構師通訊"}]},{"type":"text","text":"》吧,保持在時代的前沿。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"作者簡介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Srini Penchikala"},{"type":"text","text":"是德克薩斯州奧斯汀市的一位高級IT架構師。他在軟件架構、設計和開發方面有超過25年的經驗,目前專注於雲本地架構、微服務和服務網格、雲數據管道和持續交付。Penchikala編寫了《使用Apache Spark進行大數據處理》,並參與編寫了Manning的《"},{"type":"link","attrs":{"href":"http:\/\/www.manning.com\/SpringRooinAction","title":"","type":null},"content":[{"type":"text","text":"Spring Roo in Action"}]},{"type":"text","text":"》。他經常在大會上發表演講,是一名大數據培訓師,並在各種技術網站上發表過一些文章。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/articles\/service-mesh-ultimate-guide-2e\/","title":"","type":null},"content":[{"type":"text","text":"Service Mesh Ultimate Guide - Second Edition: Next Generation Microservices Development"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"譯者簡介:"},{"type":"text","text":" 冬雨,小小技術宅一枚,從事研發過程改進及質量改進方面的工作,關注編程、軟件工程、敏捷、DevOps、雲計算等領域,非常樂意將國外新鮮的IT資訊和深度技術文章翻譯分享給大家,已翻譯出版《深入敏捷測試》、《持續交付實戰》。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章