💡 云原生网关 MSE-Higress (以下简称 MSE-Higress )是遵循开源 Ingress/Gateway API 标准的下一代网关产品,将传统的流量网关、微服务网关、安全网关合三为一,降低50%的资源开销,具有高集成、易使用、易扩展、热更新的特点。MSE-Higress 提供了流量调度、服务治理、安全防护等能力,并深度集成 Dubbo、Nacos、Sentinel 等微服务技术栈,提升网关链路的整体性能、降低部署和运维成本,同时支持 Nginx Ingress 的平滑迁移,帮助用户零成本快速迁移到 MSE-Higress。
书接上文!通过『MSE』的前篇《『MSE』阿里云中"间"力量MSE-Nacos》的内容,那么本篇应该是作者对于MSE服务讲解的第二篇,是MSE-Nacos测评的后文,个人认为两者单独拿出来讲并没有写在一起更合适,所以分为上下篇来进行编写。同样,是同一个案例,MSE-Higress作为整个案例架构中的一个网关,那么按照惯例,咱们依旧要了解下MSE-Higress的发展史,摘要仅仅是给大家做一个大致的了解,具体的内容还需要各位读者朋友向下阅读。
一视同仁
本视频的前22分钟为上文《『MSE』阿里云中"间"力量MSE-Nacos》的测评讲解,后面为本文Higress的讲解
知根知底
阿里云MSE-Higress 是阿里云推出的一款云原生微服务网关。它是一款基于 Nacos 和 Higress 开源项目的云原生解决方案。Nacos 是阿里巴巴开源的一款分布式、高可用的动态服务发现、配置中心和命名服务组件,Higress 是阿里巴巴开源的一款高性能、易用的微服务网关。阿里云MSE-Higress 将 Nacos 和 Higress 引擎集成到阿里云的微服务引擎 MSE 中,提供了一个完整的云原生微服务解决方案,可以帮助开发者更轻松地构建和管理复杂的分布式系统。
源起
Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio + Envoy为核心构建的下一代云原生网关,实现了流量网关 + 微服务网关 + 安全网关三合一的高集成能力,深度集成Dubbo、Nacos、Sentinel等微服务技术栈,能够帮助用户极大的降低网关的部署及运维成本且能力不打折;在标准上全面支持Ingress与Gateway API,积极拥抱云原生下的标准API规范;同时,Higress Controller也支持Nginx Ingress平滑迁移,帮助用户零成本快速迁移到Higress。
商用
产品优势
- 低成本MSE云原生网关将流量网关(K8s Ingress、Nginx)和微服务网关(Spring Cloud Gateway、Zuul网关等)功能合并,降低50%资源开销,同时缩短了请求时间,降低运维复杂度。
- 安全
- 支持常规的JWT认证。
- 支持基于授权开放网络标准OAuth 2.0的OIDC认证。
- 接入阿里云的应用身份服务IDaaS,快速实现支付宝、淘宝、天猫等三方认证、登录能力。
- 高集成
- 无缝集成容器和微服务体系,支持Nacos、ZooKeeper、K8s等多种服务发现方式。
- 率先支持Dubbo3.0协议,支持无损下线。
- 无缝集成日志和监控服务,一览网关核心指标和风险指标,高效排查问题。
- 无缝集成证书体系,轻松管理证书。
- 高可用MSE云原生网关孵化于阿里巴巴内部产品,并且历经2020双11考验,每秒承载数10万笔请求,目前已经在支付宝、钉钉、淘宝、天猫、优酷、飞猪、口碑等阿里巴巴各业务系统中使用。
纵观全局
同《『MSE』阿里云中"间"力量MSE-Nacos》一样,对于MSE-Higress的测评也是在MSE的大的服务框架下来进行,MSE-Higress的部署在整个MSE框架下属于Step3---服务对外暴露,通过MSE-Higress将MSE框架下部署的业务应用暴露出去,以供用户访问使用。
实践出真知
同《『MSE』阿里云中"间"力量MSE-Nacos》一样,采用同一个案例,在本篇中将通过MSE-Higress将Root&Stub服务的AKS集群暴露统一网关接口给外部
免费资源,实验无忧
阿里云开发者社区目前正在征集MSE-Higress的测评,同时提供了一个月的免费试用额度,大家做实验前可以先领取~~~
https://developer.aliyun.com/mission/higress?spm=a2c6h.26788700.J_4879775480.8.30ab10d6pORx3S
背景
以2022年世界技能大赛云计算赛项的架构赛题作为案例,其中使用亚马逊云科技的App Config作为架构中核心服务的配置中心,同样MSE-Nacos也可以实现同样的功能,大致架构图如下
本篇作为下文,其实很多东西已经通过Nacos部分实现了架构上的功能,那么Higress在这里就是做前置负载均衡器使用。
配套Java代码
Gitee仓库地址:https://gitee.com/unicornstar/nacos-demo
ACK设置
在创建ACK的时候,对于Ingress的选择,我们需要选择MSE-Ingress,同时要确保MSE-Ingress已经授权
添加无状态服务(Deployment)
这里和《『MSE』阿里云中"间"力量MSE-Nacos》中用的镜像是一样的,分别为root和stub镜像,如下的创建步骤以root服务为例
注意:若无选择命名空间,则默认为 default
MSE-Higress引导设置
可根据官方引导进行设置
添加服务来源
将ACK作为服务来源,并且监听K8s Ingress
关联后端服务
将之前ACK集群中创建的root-svc添加到服务列表
绑定域名
添加一个域名
创建路由
访问测试
服务监控
业务监控
总结及建议
总结
- MSE-Higress根据引导使用起来还挺顺畅的,实例详情页的概览,对于新手而言很舒服
- 在本案例中,与ACK进行集成使用,在Ingress操作方面来讲,很丝滑
- 有观测分析 功能提供,对于整个网关的情况,可以很好的掌控,这点竞品其实是单独划出去的,阿里这里做在一个页面,很棒
- 文档方面,其实单从本案例讲,控制台页面的导航就足以满足了,在帮助文档中,有快速入门模块,这点挺棒的
建议
对于ACK方面的支持来讲,我看帮助文档提供的是用kubectl去创建MSE-ingress,是否可以添加一个控制台的操作步骤呢?