云原生微服务的下一站,微服务引擎 MSE 重磅升级

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 阿里云微服务引擎 MSE(以下简称MSE)升级3大核心能力,在管好微服务应用上提供了更高效的实践和更全面的保障。

管好微服务,成为云原生时代的新难题。


从建好微服务到管好微服务,差的虽是一个字,连接起两边的却需要大量的微服务落地经验。因为软件架构的核心挑战是解决业务快速增长带来的系统复杂性问题,而微服务将应用进行解耦的过程中,服务和服务之间的调用和依赖关系也变得愈加复杂,关系越复杂、小的技术问题越可能被放大,造成大的线上故障。而容器和 K8s 为代表技术的云原生时代,则加重了其中的复杂程度。


近日,阿里云微服务引擎 MSE(以下简称MSE)升级3大核心能力,在管好微服务应用上提供了更高效的实践和更全面的保障。


直播发布会回顾:https://developer.aliyun.com/topic/microservice


发布微服务治理企业版

在原有基础版、专业版之上,MSE 推出了微服务治理企业版,提供微服务应用以及常用网关的流量管控与容错能力,从流量控制、并发控制、熔断降级、自适应保护、热点防控等多个维度来保障业务的稳定性,帮助用户很好地应对流量激增或是服务依赖不稳定问题。


在微服务网关层,比如 Zuul,Spring CloudGateway,用户可设置规则进行入口流量防护。在应用层,可进行接口级粒度的防护,支持单机限流、集群限流、分钟小时限流多种限流方式。除了大流量的冲击,第三方服务出现问题时,有时会导致接口响应时间变长,线程资源无法释放等问题。用户可以针对弱依赖接口配置熔断规则,达到不稳定条件时自动熔断。对于非关键接口可提前主动降级,从而避免单点服务异常导致整体不可用。 另外流量防护支持自适应系统保护,可根据 CPU、LOAD 等系统资源指标,设定系统保护规则,防止雪崩。同时也可以对自动识别出来的慢SQL语句配置隔离规则,限制其并发执行数,防止数据库连接池被打满而影响正常调用。


企业版还支持QPS、响应时间、异常、CPU/load等指标的秒级监控能力,并针对这些指标提供提供了机器维度、接口维度、集群维度的秒级流量水位分布的分析功能,方便用户监控防护效果并指导规则配置。


另外,服务治理中心还增加了应用配置能力,帮助用户动态管理代码中的配置项,可使用在多种业务场景中。一是在业务逻辑预埋功能开关,例如动态开启某个促销活动、将某些耗时操作降级等;二是无须应用重启即能调整应用操作级别,比如线上修改日志级别,指定A/B Test路径,线程池配置等;三是List、Map等复杂类型的结构化内容推送,如定时推送大促商品名单,统一发送优惠卷客户名单等。



基础版、专业版、企业版的价格如下:

更多关于3个版本的差异点,可访问:https://help.aliyun.com/document_detail/333528.html


开源服务治理规范和实现 OpenSergo

微服务治理是管好微服务过程中不可避免要解决的难题,但是业内普遍存在以下痛点:


  • 理解和沟通成本高:业界对微服务治理的能力和边界没有明确的认识,每个企业所定义的服务治理概念都不一致,造成很高的理解和沟通成本。
  • 缺少标准化的约定:开源微服务框架众多,例如 Spring Cloud 中定义的微服务接口和 Dubbo 中定义的接口就没有办法互通,Go、Java 有不同的体系和认知。
  • 缺少面向业务的抽象和标准:对业务开发来说,不仅需要了解不同微服务框架的部署架构,也要了解不同服务治理方式的概念和区别。


而 OpenSergo 是由 bilibili、字节跳动以及 Spring Cloud Alibaba、Nacos、Apache Dubbo/dubbo go 社区共同发起,是一套微服务治理的规范和实现,要解决的是不同框架、不同语言在微服务治理上的概念碎片化、无法互通的问题。例如,如何标准化地进行服务注册和发现,服务的元信息格式如何统一等等。


OpenSergo @GithHub:github.com/opensergo/opensergo-specification


OpenSergo 提供的能力可以从管控面、数据面、Spec 3个维度去看:


  • 控制面:用户可以通过 CRD 或者 Dashboard 的方式查看、修改服务治理配置,并将这些管控信息下发到数据面。
  • 数据面:JavaAgent、Servcie Mesh、各个接入 OpenSergo 的微服务框架都能够接收到服务治理配置,并应用到当前的业务流量中。
  • OpenSergo Spec:Spec 规定了控制面和数据面的通信约定,确保用户使用一种 Spec 即可描述不同框架、不同协议、不同语言的微服务架构,让开发者不再需要关注底层差异。



下一代网关-云原生网关再升级

网关分为流量网关与业务网关,流量网关主要提供全局性的、与后端业务无关的策略配置,例如阿里内部的的统一接入网关 Tengine 就是典型的流量网关;业务网关顾名思义主要提供独立业务域级别的、与后端业务紧耦合策略配置,随着应用架构模式从单体演进到现在的分布式微服务,业务网关也有了新的叫法 - 微服务网关。


但在容器和 K8s 主导的云原生时代,Ingress 成为 K8s 生态的网关标准,流量网关 + 微服务网关合二为一。将两层网关变为一层,不仅可以节省50%的资源成本,还可以降低运维及使用成本。


MSE 提供的云原生网关再次升级核心能力,包括无缝支持 Nginx Ingress 注解转换、支持 Waf 本地防护、支持插件市场、支持 HTTP 转 Dubbo。以无缝支持 Nginx Ingress 注解转换为例,MSE Ingress Controller 通过 List-Watch 机制获取关联的 ACK 集群中 Ingress 资源的变化,然后以热更新的方式动态更新 MSE 云原生网关的路由规则。当 MSE 云原生网关收到请求时,匹配 Ingress 转发规则转发请求到后端 Service 所对应的 Pod。



相比 Nginx Ingress Controller,MSE Ingress Controller 是以热更新的方式秒级生效监听到的 Ingress 资源,这种无需重启数据面即可生效配置的方式大大提高了集群入口网关的稳定性,有效保障了业务流量无损。更重要的是,MSE Ingress Controller 可以进行多集群管理,即同时作为多个集群的入口网关,意味着可以同时监听多个集群中的 Ingress 资源,解决用户跨 Kubernetes 集群流量调度和流量治理问题。

除了 MSE 这类微服务半托管的产品外,本次升级发布会中,也分享了 MSE+SAE 的全托管方案的优势和特色,并结合 Serverless 技术,进一步提升了计算资源的利用率,低门槛容器化改造和转型 K8s。

MSE 面向 ZooKeeper、Nacos、Consul、Envoy 等开源项目提供商业化增强,服务斯凯奇、来电科技、玩心不止、禾连健康、万师傅、云货优选、上海三菱、Salesforce 中国等企业,已成为国内云上客户首选的微服务平台之一。

相关文章
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
931 1
|
SQL 存储 关系型数据库
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
855 0
|
数据采集 测试技术
Selenium与WebDriver:Errno 8 Exec格式错误的多种解决方案
本文讨论了在使用Selenium和WebDriver自动化测试时常见的执行格式错误(Errno 8 Exec format error)问题。错误通常发生在运行ChromeDriver时,与兼容性或路径配置有关。文章提供了多种解决方案,包括手动更改路径、更新或重新安装webdriver-manager包、下载特定版本的ChromeDriver、修改driver_cache.py文件。此外,还介绍了如何结合代理IP技术使用Selenium进行网页抓取,以提高效率和成功率。示例代码展示了如何配置代理IP并使用Selenium访问网站。通过这些方法,用户可以有效解决执行格式错误,并提高网页自动化测试
1286 1
Selenium与WebDriver:Errno 8 Exec格式错误的多种解决方案
|
Web App开发 移动开发 前端开发
如何解决不同浏览器的样式兼容性问题?
如何解决不同浏览器的样式兼容性问题?
715 0
|
存储 安全 Java
在 Java 中如何将 ArrayList 作为参数传递
【8月更文挑战第23天】
582 0
|
算法 数据安全/隐私保护 异构计算
基于FPGA的BPSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本系统基于Vivado2019.2,在原有BPSK调制解调基础上新增高斯信道及误码率统计模块,可测试不同SNR条件下的误码性能。仿真结果显示,在SNR=0dB时误码较高,随着SNR增至5dB,误码率降低。理论上,BPSK与2ASK信号形式相似,但基带信号不同。BPSK信号功率谱仅含连续谱,且其频谱特性与2ASK相近。系统采用Verilog实现,包括调制、加噪、解调及误码统计等功能,通过改变`i_SNR`值可调整SNR进行测试。
267 1
|
机器学习/深度学习 搜索推荐 TensorFlow
使用Python实现深度学习模型:智能零售与智能购物
【8月更文挑战第3天】 使用Python实现深度学习模型:智能零售与智能购物
345 2
|
XML 前端开发 JavaScript
SpringBoot框架:第二章:SpringBoot中static和templates二个目录下的页面和静态资源访问的三个常见问题
SpringBoot框架:第二章:SpringBoot中static和templates二个目录下的页面和静态资源访问的三个常见问题
703 0
SpringBoot框架:第二章:SpringBoot中static和templates二个目录下的页面和静态资源访问的三个常见问题
|
算法
【MATLAB】WOA鲸鱼算法优化的VMD信号分解算法
【MATLAB】WOA鲸鱼算法优化的VMD信号分解算法
1276 0
【MATLAB】WOA鲸鱼算法优化的VMD信号分解算法
|
分布式计算
MapReduce中的Map和Reduce函数分别是什么作用?
MapReduce中的Map和Reduce函数分别是什么作用?
815 0

相关产品

  • 微服务引擎