《云原生網關的演進之路.pdf》由會員分享,可在線閱讀,更多相關《云原生網關的演進之路.pdf(33頁珍藏版)》請在三個皮匠報告上搜索。
1、云原生網關的演進之路耿蕾蕾阿里云 Higress&MSE 云原生網關負責人Contents目錄01云原生網關概念02Higress 沉淀歷程03Higress 開源之路云原生網關概念01網關軟件的演進:流量網關Who運維Why業務的高可用/可伸縮/接入加速How負載均衡/健康檢查/流控/重試/TLS卸載/壓縮/緩存LoadBalancerServerServerServer網關軟件的演進:微服務網關Who研發Why微服務 API 的聚合管理/API 通用能力解耦How服務發現/RESTful 路由/認證鑒權/擴展機制MicroserviceGatewayServiceServiceServic
2、eRegistrypubsub網關軟件的演進:云原生網關PhysicalVMK8sWho研發&運維WhyDevOps 驅動/云原生架構/網關形態融合How聲明式 API/無損變更/多語言擴展機制Cloud NativeGatewayService(Java)Service(PHP)Service(Python)RegistrypubsubService(Go)Higress 沉淀歷程02發展歷程階段一:技術選型創建源于2020年阿里內部的“本地生活戰役”。戰役的核心技術目標是實現阿里巴巴業務域與螞蟻業務域之間 RPC 互訪。階段一:Higress誕生(支持東西向流量調度)經過2020雙11海量
3、請求的考驗,大促日可輕松承載每秒承載數10萬筆請求,日請求量達到百億級別。成功孵化Dubbo 3.0 Triple協議。完成了Higress在東西向流量分發的探索。階段二:Higress從阿里巴巴內部走向云服務支持南北向流量調度(優酷)支持混合云流量調度(釘釘)探索流量網關與微服務網關融合Higress發布商業化網關產品階段二:Higress支持優酷Nginx網關遷移 支持南北向的HTTP/HTTPS場景。Higress新增error page功能平替Nginx的error page。完成了Higress在南北向流量分發的探索。階段二:Higress支持優酷Nginx網關遷移(續)階段二:Hi
4、gress支持釘釘云上云下互通Higress 完成云上云下混合云流量調度的探索。階段二:Higress在阿里巴巴的業務大圖 支持東西向、南北向的全域流量調度。支持典型的云上云下混合云流量調度。在支付寶、釘釘、淘寶、天貓、優酷、飛豬、口碑、達摩院等阿里各業務系統中使用。階段二:流量&微服務網關的融合探索隨著Higress支持業務的增多,在跟優酷持續合作的過程中,雙方團隊不約而同提出了一個設想:Tengine(承擔流量網關角色)+Higress(承擔微服務網關角色)的兩層網關是否可以合并為一層Higress呢?在以 K8s 主導的容器化背景下,由于K8s 集群內外網絡的天然隔離性,用戶需要一款兼顧
5、高性能與安全性,以及強大服務治理能力的入口網關。階段二:支持“三位一體”發布商業化產品2021 年,阿里巴巴開啟了中間件”三位一體”戰役,目標是使用云產品支撐集團業務。2021年10月我們將孵化成熟的Higress正式沉淀為云產品,同時服務公有云與阿里云用戶。階段二:Higress商業化產品定位Higress商業版產品名稱:MSE 云原生網關將流量網關與微服務網關(Ingress)二合一,通過硬件加速、內核調優等手段在性能不打折的情況下,用戶部署網關的資源成本直降50%階段三:Higress打造最具競爭力的網關服務軟硬一體的極致性能商業化Wasm插件市場支持Nginx注解平滑轉換微服務的最佳實
6、踐(多種服務發現、HTTP轉Dubbo等)階段三:發布商業化Wasm插件市場提供插件市場,網關的二次擴展功能均通過插件提供給用戶按需使用。插件采用熱更新機制,在沙盒中執行,對網關自身穩定性無影響。借助Webassembly特性用戶可以使用多語言編寫插件,降低用戶擴展網關的門檻。網關Wasm插件與開源Envoy 100%兼容,不存在鎖定。階段三:支持Nginx Ingress 注解平滑轉換階段三:支持HTTP轉DubboHigress 開源之路03開源架構流量網關&微服務網關&安全網關三合一內核(數據面+控制面)服務管理插件手機APPBrowserIOTOpenWharfK8s 生態OpenKr
7、uiseKnativeAPI-Server安全WAF防護CC防護認證鑒權插件AI 類插件安全類插件Web插件編輯器API標準IngressGateway API 數據面控制面多 K8s 集群灰度協議轉換限流降級多注冊中心微服務生態SpringCloudGatewayOpentelemetryNacosDubboApp1(單體應用)App2(微服務應用)App3(服務網格)Function(Serverless)ServiceMeshConsul/Euraka軟硬一體熱更新規則變更毫秒級生效且業務無感知路由/安全規則熱更新WASM 插件熱更新高集成首次將流量、微服務、安全三合一支持 K8s/Na
8、cos 等主流服務發現支持 Sentinel 服務級限流標準化最全面實現 Ingress/Gateway API 標準支持 Higress CRD 管理網關生命周期支持 OpenKruise Rollout 灰度發布提供 最豐富插件機制(WASM/LUA/進程外插件)提供 最全面多語言擴展能力支持 豐富的安全、服務管理默認插件易擴展標準化跨域技術鴻溝的橋梁支持 K8s Ingress API 標準,支持 Nginx Ingress 核心功能注解無縫轉換。比 Nginx Ingress 提供更實用的功能注解,如服務級限流,RESTful路由等。擁抱 Gateway API 標準,可以實現 Ing
9、ress API 和 Gateway API 混合使用,平滑遷移。apiVersion:networking.k8s.io/v1kind:Ingressmetadata:annotations:nginx.ingress.kubernetes.io/rewrite-target:/higress.io/match-method:POST PUT PATCHname:foospec:ingressClassName:higressrules:-http:paths:-pathType:Prefixpath:/foobackend:service:name:foo-serviceport:numb
10、er:5678高集成開源微服務生態對接 Spring Cloud/Dubbo 微服務架構實現 Sentinel/OpenSergo 流量治理標準集成 Prometheus/SkyWalking 可觀測體系支持 KubeVela/OpenKruise 云原生標準支持 Nacos/Zookeeper/Consul 等多種服務發現易擴展更穩定、更安全、更靈活的擴展方式支持 Lua 語言開發支持多種語言開發高性能 WASM 插件Rust、C+、Golang、AssemblyScript 等捆綁式獨立、解耦key-authrate-limitv1v2key-authrate-limithmac-auth
11、升級網關數據面key-authrate-limithmac-authkey-auth v2升級插件控制面生效已有插件:流量無損生效自定義插件:流量有損插件支持熱更新,流量無損插件邏輯 crash 不影響 流量插件邏輯 crash 會影響流量插件邏輯可能導致網關掛掉插件邏輯無法導致網關掛掉傳統Nginx類網關分發集成階段插件開發階段運行生效階段易擴展更簡便易用的插件 SDK 與 聲明式配置插件開發聚焦業務處理邏輯,無需關心 wasm vm/context 等狀態管理基于 Higress wasm OCI 格式規范,包含插件文檔和配置約束,統一基于 OCI 管理元信息和版本,方便插件能力共享簡單配
12、置即可面向域名或路由生效,完全熱更新,對流量無影響熱更新站在巨人的肩膀上Nginx.confNginxreloaddownstreamupstreamNginx 的配置變更 reload,會導致 downstream 和 upstream 連接都斷開觸發重連,在高并發場景下,downstream 并發重連將導致 Nginx 的 CPU 飆升,最嚴重的還是 upstream 的并發重連,很可能打垮后端業務程序的線程池,造成雪崩。SDSECDSRDSLDSCDSEDSCertFilterRouterEDSDNSStatic IPupstreamdownstreamClusterListenerEn
13、voyxDSxDS ServerEnvoy 中 downstream 對應 listener 配置,交由 LDS 實現配置發現;upstream 對應 cluster 配置,交由 CDS 實現配置發現。listener 配置更新重建,只會導致 downstream 連接斷開,不會影響 upstream 的連接;listener 下的證書(cert),過濾器插件(filter),路由(router)均可以實現配置獨立變更,不論是證書/插件/路由配置變更都不會引起 downstream 連接斷開VS簡單易用提供默認Console、K8s與非K8s部署、兼容Ingress的v1beta1與v1地址:
14、http:/demo.higress.io/非K8s模式一鍵部署Milestone 回顧 社區參與度快速增長,社區版本保持快速迭代此數據來源于Higress開源社區Roadmap 規劃 2023.102024.012024.04Milestone持續深化開源生態集成,歡迎社區小伙伴參與共建社區生態AI&Serverless生態集成 實現AI Plugin集成LLM生態 實現Higress+Knative集成 兼容Ingress注解/插件能力 實現從Ingress平滑轉換插件擴展生態 支持Java擴展 支持TypeScript擴展 落地插件OCI規范,交互式配置 推出通用的WASM插件市場API 管理 面向API的模型和策略插件 支持API文檔發布,API分組 推出開發者工具 Higress+OpenWharf(Serverless)集成THANKS