《云原生网关的演进之路.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