從服務框架到服務網格,網易輕舟雙引擎多模式服務治理演進實踐

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在分佈式體系下,微服務技術在經歷多年發展之後漸趨成熟。進入雲原生時代,微服務技術在雲原生理念的驅動下被賦予了新的使命。在 InfoQ 2020 年微服務技術年終盤點文章中,我們對傳統的服務框架和雲原生的服務網格分別進行了分析,指出了服務框架的進化與困局,服務網格的進步、分化、落地,並給出了企業微服務架構的演進方向。"}]},{"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":"服務框架:無侵入 Agent 服務治理"}]},{"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":"服務框架是傳統微服務技術的核心所在。早期微服務技術中的服務註冊、發現、調用、治理、觀測都離不開服務框架。這也帶來了一些問題,比如業務研發者需要明顯感知服務框架並掌握其中各項非業務相關技術,框架版本升級困難,框架越來越重難於維護等等。網易的互聯網業務比較多元,早期各業務沒有統一的微服務技術規範和框架,大部分業務選型了 SpringCloud、Dubbo、gRPC 等開源框架,也有少數業務選擇自研 RPC 框架。服務框架在微服務架構下的問題隨着業務、團隊規模的擴大日益凸顯,這也催生了 "},{"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":"2018 年,我們以 "},{"type":"text","marks":[{"type":"strong"}],"text":"業務無侵入"},{"type":"text","text":" 爲核心理念構建了輕舟微服務平臺,核心數據面 "},{"type":"text","marks":[{"type":"strong"}],"text":"基於字節碼增強技術實現無侵入 Agent 服務治理能力"},{"type":"text","text":","},{"type":"text","marks":[{"type":"strong"}],"text":"業務無需修改代碼"},{"type":"text","text":" 即可 "},{"type":"text","marks":[{"type":"strong"}],"text":"一鍵接入微服務治理全家桶"},{"type":"text","text":" 能力,大幅提高了用戶業務微服務化改造效率,降低了業務進行服務治理相關能力的研發成本。輕舟微服務平臺目前已在網易集團內外諸多企業業務落地。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/aa\/aa1a104a14629015b980723bd1752a01.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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":"相較於傳統服務框架,無侵入 Agent 服務治理有如下 "},{"type":"text","marks":[{"type":"strong"}],"text":"核心優勢"},{"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","marks":[{"type":"strong"}],"text":"代碼無侵入、業務無感知引入。"},{"type":"text","text":" 業務無需對程序代碼任何修改,只需在應用啓動項添加 Agent 參數即可。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"一鍵接入微服務治理全家桶(Spring Cloud\/Sentinel\/Apollo\/Skywalking)。"},{"type":"text","text":" 業務無需感知框架、版本等實現細節,快捷獲得微服務治理 All-In-One 能力。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"接管主流注冊中心(Eureka\/Nacos\/Consul\/Zookeeper\/Kubernetes)。"},{"type":"text","text":" 業務無需更換註冊中心,服務註冊與發現全託管。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"兼容全系 Java 應用。"},{"type":"text","text":" 基礎框架無限制,支持任意 Java 應用快捷接入。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"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":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/d9\/d915a6dd120b93cd307e6b70a15d4cf4.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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":"無侵入 Agent 服務治理方式一定程度上對傳統服務框架的組織與接入方式進行了重新定義,爲單體應用、初步微服務化的應用提供了便捷的微服務治理套件落地方案。最近我們注意到一些大型互聯網企業也開始使用無侵入 Agent 方式進行微服務治理落地,讓我們更加堅定了這種設計的有效性與長期性。"}]},{"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":"無侵入 Agent 服務治理技術可以幫助企業業務高效完成微服務化改造,也爲後續微服務架構的持續演進提供了技術基礎。"}]},{"type":"heading","attrs":{"align":null,"level":2},"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":"服務網格(Service Mesh)"},{"type":"text","text":" 是將無侵入服務治理定義的更爲徹底的微服務架構方案。通過將微服務治理能力以獨立組件(Sidecar)整合並下沉到基礎設施,服務網格可以實現應用業務邏輯與服務治理邏輯完全分離,這也使支持多語言、熱升級等高階特性變得順理成章。網易服務網格建設 是隨着嚴選、新聞等互聯網業務容器化上雲開始的。輕舟微服務平臺與業務部門採用合作共建的方式,制定以 "},{"type":"text","marks":[{"type":"strong"}],"text":"業務無感知、平滑穩定"},{"type":"text","text":" 爲服務網格落地的最高宗旨。我們選擇由 Google、IBM 背書的 "},{"type":"text","marks":[{"type":"strong"}],"text":"Istio"},{"type":"text","text":" 作爲服務網格基座進行擴展、增強,爲實現業務無感知、平滑穩定接入進行了深入設計與反覆論證,已經幫助多個企業核心業務大規模生產環境落地服務網格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/28\/286a4aaf91565fd7aa1717a24f8cda3e.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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":"text","marks":[{"type":"strong"}],"text":"低門檻"},{"type":"text","text":"”與“"},{"type":"text","marks":[{"type":"strong"}],"text":"高性能"},{"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}},{"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":"原生 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":"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","marks":[{"type":"strong"}],"text":"業務平滑接入"},{"type":"text","text":":業務 "},{"type":"text","marks":[{"type":"strong"}],"text":"無需修改代碼、框架或註冊中心"},{"type":"text","text":",由基礎層與平臺層適配業務架構、框架"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"多協議支持"},{"type":"text","text":":HTTP 、gRPC 、Dubbo、Thrift 等協議的完整流量管理與精細化治理能力,並沉澱了更多協議擴展能力"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"流量動態攔截"},{"type":"text","text":":按需對流量協議、端口動態攔截配置,降低企業 mesh 化門檻"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"核心組件熱升級"},{"type":"text","text":":Sidecar 升級無需業務重啓,助力服務框架升級效率提升 4 倍以上"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"治理能力增強"},{"type":"text","text":":面向業務場景的熔斷降級(動態、緩存降級),限流(全局、單機、自適應),接口級鑑權"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"流量染色 & 穿梭"},{"type":"text","text":":零配置實現請求流量染色、穿梭,快速實現多套測試環境部署與回收"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"複雜場景統一管控"},{"type":"text","text":":支持容器 & 非容器、多集羣、多種組件部署模式(Sidecar、SDK)、 多協議等複雜場景統一管控,支持業務遷移過程平滑、可觀測"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Envoy API 網關"},{"type":"text","text":" :基於 Envoy 與 Istio Gateway CRD 擴展實現具備全生態治理能力與高性能的 API 網關,平滑接管業務原有南北向流量,實現了 "},{"type":"text","marks":[{"type":"strong"}],"text":"微服務 API 網關全面向雲原生化升級"},{"type":"text","text":",達成了 "},{"type":"text","marks":[{"type":"strong"}],"text":"微服務集羣南北向與東西向核心基礎設施統一與共同演進"}]}]}]},{"type":"heading","attrs":{"align":null,"level":3},"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":"業務平滑遷移是服務網格落地的基本條件,而支撐大規模微服務集羣則是生產環境下對服務網格平臺的\"必考項\"。早期 Istio 的設計更多着眼於模型的通用型、靈活性,對大規模生產及微服務集羣的支撐能力比較弱,主要體現在:"}]},{"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":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"數據面性能、穩定性提升"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於 "},{"type":"text","marks":[{"type":"strong"}],"text":"用戶態協議棧"},{"type":"text","text":" 以及 "},{"type":"text","marks":[{"type":"strong"}],"text":"SRIOV 容器網絡"},{"type":"text","text":" 的性能優化,"},{"type":"text","marks":[{"type":"strong"}],"text":"時延性能較原生提升 2 倍以上"}]}]},{"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","marks":[{"type":"strong"}],"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","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":"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":"heading","attrs":{"align":null,"level":2},"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":"我們在順利完成基於無侵入 Agent 服務治理、低門檻高性能服務網格平臺在企業業務落地後,業務對我們提出了更高的要求:"}]},{"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","marks":[{"type":"strong"}],"text":"無侵入 Agent 技術已經幫助業務快速落地微服務架構與治理,接下來如何平滑演進到服務網格?"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"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","text":"我們自身在建設無侵入 Agent 服務治理、低門檻高性能服務網格過程中,也沉澱了一些可以支撐業務架構演進的技術方案:"}]},{"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","marks":[{"type":"strong"}],"text":"無侵入 Agent 應用進程內服務治理能力,可以成爲服務網格架構下缺失能力的補充"},{"type":"text","text":"。在徹底的服務網格架構下,無法實現進程內服務治理,如方法級的熔斷、限流、容錯、應用內監控等,可以通過 Agent 的 All-In-One 套件快速補齊。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"無侵入 Agent 的字節碼增強機制,可以爲業務演進到服務網格提供工具支持"},{"type":"text","text":"。存量業務爲引入一些特性而不得不修改代碼時,如傳遞調用鏈上下文、尋址攔截、調用兜底等等,可以通過 Agent 在應用中”織入“邏輯進行增強。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"無侵入 Agent 具備的模塊化、可插拔設計,可以實現服務框架自身到服務網格的“蛻變”"},{"type":"text","text":"。業務在微服務化改造時接入 Agent 的主要治理特性,在演進到服務網格的過程中可以對一些與服務網格能力重疊的功能逐步”卸載“,逐步完成框架與架構的演進。"}]}]}]},{"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":"帶着業務的需求,以及已經獨立閉環的無侵入 Agent、服務網格技術能力,輕舟微服務平臺在 2020 年開啓了新一輪 "},{"type":"text","marks":[{"type":"strong"}],"text":"從服務框架到服務網格\"最後一公里\"能力"},{"type":"text","text":" 的探索,即\""},{"type":"text","marks":[{"type":"strong"}],"text":"雙引擎多模式"},{"type":"text","text":"\"服務治理能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/e3\/e3fed7f0c4f08be34e874e5a603070e9.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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","marks":[{"type":"strong"}],"text":"雙引擎"},{"type":"text","text":" —— 狹義是指 Agent、Sidecar 兩種服務治理引擎(組件);廣義是以 Agent、Sidecar 爲核心的整體微服務平臺能力。圍繞 "},{"type":"text","marks":[{"type":"strong"}],"text":"雙引擎"},{"type":"text","text":" 分別 "},{"type":"text","marks":[{"type":"strong"}],"text":"垂直構建的微服務治理能力"},{"type":"text","text":",旨在使平臺基於 "},{"type":"text","marks":[{"type":"strong"}],"text":"每種引擎都具備獨立支撐業務服務治理場景能力"},{"type":"text","text":"。長期演進上來講,後續可能有更多引擎引入(比如多運行時 Dapr,傳統 SDK 等),這在垂直構建引擎能力設計上長期支持。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"多模式"},{"type":"text","text":" —— 狹義是指服務 + 不同引擎的多種治理模式,包括基於 Agent 的服務治理模式、基於 Sidecar 的服務治理模式、整合 Agent+Sidecar 的服務治理模式等;廣義上可結合業務情況將服務以不同模式接入平臺,服務可以包含多種接入模式的實例,"},{"type":"text","marks":[{"type":"strong"}],"text":"支持不同接入模式的服務實例互相發現、統一治理與平滑演進"},{"type":"text","text":"。圍繞“多模式”"},{"type":"text","marks":[{"type":"strong"}],"text":"水平構建"},{"type":"text","text":" 以 "},{"type":"text","marks":[{"type":"strong"}],"text":"業務應用服務爲核心"},{"type":"text","text":"、以 "},{"type":"text","marks":[{"type":"strong"}],"text":"引擎驅動業務架構平滑演進"},{"type":"text","text":" 的平臺能力與解決方案。長期演進上來講,可以支撐更多治理模式下應用服務的統一納管、治理、演進,如 Agent 模式、Sidecar 模式、Agent+Sidecar 模式、多運行時模式、SDK 模式等等。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/59\/59e56b78c165c59c30d879529c179dc7.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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":"爲了完整支撐微服務的治理納管與演進遷移,我們對雙引擎多模式的核心能力進行梳理與分級(從基礎 L0 到高階 L3),用以指導平臺建設能力完整性與落地優先級。整體如下:"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"平臺支持 Agent、Sidecar 分別獨立閉環的服務治理能力 L0"}]},{"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":"微服務平臺的基礎能力,平臺具備每種引擎(Agent、Sidecar)相關的整體能力。業務可以選擇一種長期使用。對平臺來說,即具備:"}]},{"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":"無侵入 Agent 服務治理體系與平臺"}]}]},{"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":4},"content":[{"type":"text","text":"多種治理模式下服務管理統一視圖 L0"}]},{"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":"text","marks":[{"type":"strong"}],"text":"演進遷移過程可視化能力"},{"type":"text","text":",如觀測遷移過程中的調用情況(包含跨集羣、環境信息)、服務列表、實例列表、監控數據等。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"多種治理模式下服務互相發現、調用 L1"}]},{"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":"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":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"服務在 Agent、Sidecar、Agent+Sidecar 多種模式下互相發現、調用"}]}]},{"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":4},"content":[{"type":"text","text":"多種治理模式服務平滑遷移 L2"}]},{"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","marks":[{"type":"strong"}],"text":"治理模式切換"},{"type":"text","text":"。Agent、Sidecar 支持平滑遷入、遷出。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"註冊中心切換"},{"type":"text","text":"。多註冊中心打通,支持遷移過程平滑切換註冊中心。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"跨環境、集羣、網絡的服務發現"},{"type":"text","text":"。支持業務跨環境、集羣、網絡遷移過程的調用可達。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"存量治理策略遷移"},{"type":"text","text":"。業務已有治理策略的遷移。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"多種治理模式的服務治理統一、互補 L2"}]},{"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":"服務處在 Agent、Sidecar、Agent+Sidecar 等不同治理模式下,治理能力需要形成統一、互補。"}]},{"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","marks":[{"type":"strong"}],"text":"統一"},{"type":"text","text":" 是指相同治理功能在不同治理模式下行爲一致,各項治理能力不因模式不同對業務產生差異,進而保障遷移過程的 "},{"type":"text","marks":[{"type":"strong"}],"text":"平滑性"},{"type":"text","text":"。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"互補"},{"type":"text","text":" 是指 Agent、Sidecar 分別具備的治理能力,在 "},{"type":"text","marks":[{"type":"strong"}],"text":"代碼、方法級"},{"type":"text","text":" 與 "},{"type":"text","marks":[{"type":"strong"}],"text":"服務、進程級"},{"type":"text","text":" 形成互補,加強服務治理的 "},{"type":"text","marks":[{"type":"strong"}],"text":"完整性"},{"type":"text","text":"。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"多種治理模式的服務治理用戶無感知技術選型 L3"}]},{"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":"應用微服務託管 \/ 治理平臺在治理方面的高階設計目標,是用戶無需感知底層使用 SDK、Agent、Sidecar,僅在平臺層按功能需求配置、管控。"}]},{"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":"目前,經過一年多努力,輕舟微服務平臺已經主體實現上述 L0-L2 的能力,並在 L3 持續探索,提升平臺易用性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/6b\/6be61877fd1c7945a50850b2469716ec.png","alt":null,"title":null,"style":null,"href":null,"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","text":"場景覆蓋"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/c0\/c0b8cb1130bd59272e7c37a35dceab5a.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"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":"在打通已有 Agent 和服務網格能力、形成多模式治理後,"},{"type":"text","marks":[{"type":"strong"}],"text":"微服務平臺可以覆蓋比較完整的業務場景"},{"type":"text","text":":無論 "},{"type":"text","marks":[{"type":"strong"}],"text":"業務現有技術棧是基礎框架,或是增強過的 SDK"},{"type":"text","text":",都可以選擇自己的演進路線,通過 Agent、Sidecar 完成 "},{"type":"text","marks":[{"type":"strong"}],"text":"長期的微服務架構平滑演進、升級"},{"type":"text","text":"。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/47\/e2\/475a855cf69d4c394cbf447afd8b3ae2.jpg","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":null,"origin":null},"content":[{"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}},{"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","marks":[{"type":"strong"}],"text":"垂直平臺引擎之深耕"},{"type":"text","text":":無侵入 Agent 服務治理、低門檻高性能服務網格等垂直方向持續深耕,繼續夯實無侵入 Agent、Sidecar 的能力"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"水平業務模式之演進"},{"type":"text","text":":多種治理模式平滑遷移覆蓋更完整的業務場景,能力高度平臺化,繼續降低企業微服務架構演進的成本,保證平滑與穩定"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"與未來同行,歷久彌新"},{"type":"text","text":":深度整合多運行時、Spring Native 等技術,保持架構先進性,持續爲業務帶來價值"}]}]}]},{"type":"heading","attrs":{"align":null,"level":4},"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":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s\/Eb2TDqxs69300S-RTGH0Jg","title":"xxx","type":null},"content":[{"type":"text","text":"網易輕舟從微服務框架到服務網格架構平滑演進最佳實踐(詳見內文第 4 部分)"}]}]},{"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.cn\/article\/4Zog2lMBqKjAeMTc8Add","title":"xxx","type":null},"content":[{"type":"text","text":"解讀微服務的 2020:框架在左網格在右,雲原生時代的微服務路在何方"}]}]},{"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.cn\/article\/bLVkRO09oZT1hB53SkfJ","title":"xxx","type":null},"content":[{"type":"text","text":"落地三年,兩次架構升級,網易 Service 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":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/SF5sl4IlUtUxuED3Musl","title":"xxx","type":null},"content":[{"type":"text","text":"雲原生時代的流量入口:Envoy 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":"作者簡介"}]},{"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":"裴斐,網易數帆雲計算技術專家、資深架構師。10 餘年企業級平臺架構和開發經驗,目前主要負責網易輕舟微服務治理團隊,專注於企業微服務架構及雲原生技術的研究與落地工作。帶領團隊完成網易輕舟 Service Mesh、微服務框架 NSF、API 網關等多個項目在網易集團落地及商業化產品輸出。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章