1、微服务架构下,使用Higress构建高性能云原生网关实践阿里云 Higress&MSE 云原生网关负责人/耿蕾蕾(如葑)目录软件架构的演进介绍Kubernetes下微服务的变化与趋势现有 Kubernetes Ingress 的不足与解法Higress 的落地实践Higress Roadmap 规划软件架构的演进说明软件架构的演进介绍软件架构的演进介绍单体架构垂直架构SOA架构微服务架构 Serverless架构?实现快维护成本高模块化负载均衡服务管理RPC技术高密度部署原子、自治按量使用极致弹性Runtime流量网关微服务网关ESB?Kubernetes微服务从传统部署架构演变为以Kuber
2、netes为主的容器化部署后会带来什么新的变化呢?介绍K8s下微服务接入外部流量的方式变化Kubernetes下微服务的变化与趋势Kubernetes下微服务的变化与趋势背景:背景:K8s集群内的网络与外部是天然隔离的,即在K8s集群外部无法直接访问集群内服务。在K8s中微服务网关(Ingress Provider)成为必备组件之一。介绍现有K8s Ingress在实际应用中的不足之处与解决方法现有 Kubernetes Ingress 的不足与解法现有 Kubernetes Ingress 的不足以上统计数据来自K8s社区2018年的Ingress Survey(后续未再独立统计过)Ingr
3、ess表达不足Ingress的可移植性不足Ingress Provider可迁移性不足Ingress的可移植性大于表达不足现有 Kubernetes Ingress 的不足与解法表达弱使用annotations扩展,如Ingress Nginx(K8s默认),配置变更不支持热更新,引起长连接会抖动使用新的CRD,如Istio Ingress(新兴代表),配置复杂且使用门槛高Ingress标准Ingress标准有v1beta1与v1版本安全K8s下采用传统Spring Cloud Gateway差异大版本差异大,且依赖K8s版本,迁移成本高风险高采用数据面与控制合并部署架构,存在稳定性与安全风险
4、不标准不支持Ingress标准自适应v1beta1与v1版本平滑切换,业务无感采用分离部署架构,且支持Waf防护、JWT/OIDC、Sentinel限流等丰富的安全特性易扩展,满足高性能场景要求,且提供Wasm、Lua扩展解法热更新兼容Ingress Nginx注解支持下一代标准Gateway API介绍Higress在阿里巴巴内部的发展历程Higress的落地实践发展历程阶段一:技术选型创建源于2020年阿里内部的“本地生活战役本地生活战役”。战役的核心技术目标是实现阿里巴巴业务域与蚂蚁业务域之间 RPC 互访。阶段一:Higress诞生(支持东西向流量调度)经过2020双11海量请求的考验
5、,大促日可轻松承载每秒承载数10万笔请求,日请求量达到百亿级别。成功孵化Dubbo 3.0 Triple协议。完成了Higress在东西向流量分发的探索。阶段二:Higress从阿里巴巴内部走向云服务支持南北向流量调度(优酷)支持混合云流量调度(钉钉)探索流量网关与微服务网关融合Higress发布商业化网关产品阶段二:Higress支持优酷Nginx网关迁移 支持南北向的HTTP/HTTPS场景。Higress新增error page功能平替Nginx的error page。完成了Higress在南北向流量分发的探索。阶段二:Higress支持优酷Nginx网关迁移(续)阶段二:Higress
6、支持钉钉云上云下互通Higress 完成云上云下混合云流量调度的探索。阶段二:Higress在阿里巴巴的业务大图 支持东西向、南北向的全域流量调度。支持典型的云上云下混合云流量调度。在支付宝、钉钉、淘宝、天猫、优酷、飞猪、口碑、达摩院等阿里各业务系统中使用。阶段二:流量&微服务网关的融合探索随着Higress支持业务的增多,在跟优酷持续合作的过程中,双方团队不约而同提出了一个设想:Tengine(承担流量网关角色)+Higress(承担微服务网关角色)的两层网关是否可以合并为一层Higress呢?在以 K8s 主导的容器化背景下,由于K8s 集群内外网络的天然隔离性,用户需要一款兼顾高性能与安