如何降低微服务复杂度丨云栖大会微服务主题分享实录

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 本文整理自阿里云资深技术专家、中间件负责人谢吉宝在2023云栖大会《极简微服务模式,降低微服务复杂度的最佳实践》的分享。

作者:谢吉宝

2023 云栖大会现场


当面临复杂的挑战时,"分而治之"的方法往往能取得显著的效果。微服务架构在这方面的贡献尤为突出,它不仅为"分"与"治"这两个环节提供了深思熟虑的理论指导,还进一步展示了如何将这些理念转化为最优的实践经验。

微服务首次提出至今,有无数的企业在尝试用微服务架构去解决企业所遇到的架构问题,从我们服务外部客户的过程中发现,这些企业在落地微服务架构的过程中,普遍遇到四大挑战。

  • 上手门槛高
  • 稳定保障难
  • 安全防控难
  • 运营成本高


阿里也是在微服务技术领域积极探索的企业之一,至今已经有了 17 年的探索历程。我们把这 17 年的经验沉淀成了两款云上的微服务产品,分别是微服务引擎 MSE 和企业级应用分布式服务 EDAS。

微服务引擎 MSE 集成了注册配置中心、微服务治理和云原生网关三个子产品,通过这三款产品,就能够搭建起一套完整的微服务架构,并且内置了安全和高可用的能力。

企业级应用分布式服务 EDAS 是以应用为中心的一套微服务最佳实践平台,提供应用全生命周期管理、业务流量管理和后台任务调度,打通资源管理、CI/CD、可观测服务。再结合应用实时监控服务 ARMS 和容器服务 ACK,就构建出了阿里云的整套微服务产品及解决方案。接下来,我将和大家一起探索 MSE 和 EDAS 在是如何思考和解决微服务落地难题的。


01 如何应对上手门槛高


针对上手门槛高,MSE 提供了新手引导功能,用户可以做到一键部署 demo 应用,3 分钟激活,30 分钟掌握产品的核心基础能力。


EDAS 则提供了更加云原生化的应用管理模型 CloudApp。通过 CloudApp,可以像原生使用 K8s 一样来操作 EDAS,并且能够和 EDAS 在线可视化的界面相互同步。习惯使用 K8s 的人员,可以完全使用 K8s 的方式,将应用托管到 EDAS 中,进行应用的治理和运维等动作。


除此以外,我们还通过通义千问训练了云原生专属大模型,并基于此打造了云原生产品智能助手。基于此,用户将在 MSE 和 EDAS 上拥有全新的产品体验。云原生产品智能助手完全基于对话式完成实例的创建、应用的部署以及产品核心能力的体验。同时,在应用上线以后,基于云原生产品智能助手的思维链模式,结合 ARMS 的 insight 智能洞察功能,用户还可以完成整个微服务请求的诊断分析能力。

最后,针对云产品价格“上手门槛高”这一痛点,我们发布产品试用体验计划。

  • MSE:全系列产品 30 天全功能免费体验,提供专家级的培训课程及技术支持。
  • EDAS:提供 60 天、不限节点数的免费体验,提供 15 门免费的远程视频培训课程。


02 如何应对稳定保障难


高可用是企业生产业务的核心挑战。高可用问题分成三大类,容量问题、容错问题和容灾问题。这三类问题时刻遍布在开发态、变更态和运行态,可以说,高可用的问题是无处不在的,并且,根据经验统计,70% 的线上故障都是由变更引起的。MSE 集成高可用能力。


首先,它自身就是基于多 AZ 进行部署的,确保了产品本身的高可用性。


其次,针对 70% 风险都来自变更态问题的事实,MSE 提供了无损上下线以及各种粒度的灰度服务,通过灰度和无损上下线,可以有效解决变更带来的爆炸半径问题,进而缩小了故障产生的影响面,甚至从根源上杜绝故障的发生。


针对运行态,面对不确定性的流量调用、不稳定的基础设施和应用自身的故障,MSE 集成了全链路的 TLS 服务、微服务身份鉴权以及黑产刷单等防护,同时提供了限流降级等服务治理功能,可以有效的保护这些不确定性给业务带来的高可用风险。


EDAS 则可以让客户轻松构建自己的高可用架构,一键把业务直接也发布到多个可用区。同时,针对每一个可用区自身的服务调用,能够确保优先调用本可用区的服务。一方面,减少跨可用区域之间调用给业务带来的不必要延迟,另一方面,也确保了在本可用区内服务调用闭环,进而增强了应用本身的高可用性。


03 如何应对安全防控难


微服务架构的安全问题,也是企业不可避免的巨大挑战。随着服数量的增多,架构复杂性逐步提升,安全漏洞的修复速度挑战加剧。万一没有及时修复好,安全攻击的爆炸半径会随着微服务架构的复杂度的增加而增大,还有诸如微服务之间的认证鉴权、安全通信、配置存取加密等一系列的问题,都给企业带来了非常大的风险。


MSE 默认集成了安全能力。首先在架构侧,我们建议企业把微服务架构的入口统一收敛到云原生网关。云原生网关默认集成了证书管理、登录认证、WAF3.0 等一系列安全能力。同时,还支持向 Sentinel 限流降级、服务鉴权以及 WAF 插件增强能力,把微服务架构的安全统一收敛至网关侧,用来确保安全漏洞可以集中在网关侧,给网关后端的微服务漏洞修复,争取了修复的时间窗口,保障了整个架构的安全,同时,又能收敛住整个安全钩机的爆炸半径。


微服间的调用,MSE 则默认集成了通信间的安全、配置加密以及全链路的 MTLS,确保了微服架构调用之间的安全。也基于此,MSE 荣获中国信通院最高安全成熟度评级。




04 如何应对运营成本高


微服务架构的最后一个挑战就是运营成本高。


首先,微服务架构都将面临流量的不确定性,导致入口流量难以评估。如果想通过全链路压测来做流量的评估,改造成本和复杂度都非常高。


其次,基于开源自建微服务相关组件依赖复杂,组件之间的兼容性问题频发。如果盲目的去做组件升级,评估不到位的话,很容易造成服务中断。


第三,应用的平均负载不高。按照行业报告显示,企业的平均 CPU 利用率不超过 20%,存在着极大的资源浪费。为了解决这些问题,MSE重磅发布升级,向 Serverlees 化演进。

通过自适应弹性,来解决流量的不确定性。根据流量自动弹性伸缩,无需做复杂的流量规划,就能够保证潮汐式业务的稳定性,并且能够极大限度的节约成本。通过开箱即用免运维方案,解决微服务各组件依赖复杂的兼容问题,支持将相应的组件自动进行兼容性风险扫描,并自动升级,减轻用户的运维负担,所有的关键事件也能统一到一个视图里。


MSE Serverless 版支持按需付费。其中,云原生网关按照请求量计费,注册配置中心按照客户的连接数计费。对于中小型企业而言,MSE 的使用成本将大幅下降。

  • 注册配置中心开发板,47 元/月起,比开源自建成本下降 50%。
  • 注册配置中心 Serverlees 实例,生产集群 115元/月起,比开源自建下降成本62%。
  • 云原生网关 Serverless 实例,生产集群 97 元/月起,比开源自建更是下降成本75%。



此外,EDAS  提供了更加全面的方式,帮助客户的业务来实现极致的资源弹性。例如将客户应用上的各类指标进行统一暴露,客户可以根据自身业务的特点,选择更贴合自己业务特性的指标,综合判断来进行资源弹性,提升弹性的准确度,进一步降低使用成本。


同时,我们还将根据客户业务的特点,通过 AI 算法来预测未来某一段时间内的指标数据,根据指标回放,直接使用 N 天前的指标,提升资源弹性。通过资源弹性的分时复用策略,将最大限度的降低云产品的使用成本。

此外,在应用开发过程中,我们发现客户的程序实际使用的堆内存和申请的最大堆内存存在不一致的情况,甚至前者是远远小于后者的,导致客户的内存出现大量的闲置,引发了高昂的资源使用成本。对于此,EDAS 和阿里云 Dragonwell 团队合作,联合推出了 JVM 弹性堆能力,只在运行时为程序自动适应理想的对大小,从而将闲置内存返还给操作系统,为客户节省内存资源。


在 EDAS 上开启弹性堆之后,Dragonwell JDK 会自动为 Java 程序匹配合理的自适应堆大小,对内存占用预计节省 10% 以上。基于原生的 JVM GC 触发内存弹性,对应用影响极小或者几乎没有影响。配置上,只需要增加少量 JVM 参数即可,对客户的业务完全没有侵入,替代了传统人工发现、人工调整、观察改进多轮内存优化的策略。EDAS 帮助客户基于托管的应用历史数据做出可行性评估,并且给出开启建议,提供稳定长期技术支持。


以上就是今天的全部分享, 希望通过阿里云的微服务产品矩阵和解决方案,能够帮助在微服务落,降低复杂度,打造极简微服务模式。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
人工智能 Cloud Native 关系型数据库
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
|
安全 物联网 云栖大会
2023云栖大会 | 云网络技术Session主题资料和视频回放归档(已完结)
2023年10月31日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,共包括1个Keynote,22个Session,包括产品发布、Deep Dive、最佳实践、客户分享、开放生态等多维度全面解读云网络进展。
2617 11
|
安全 Cloud Native 应用服务中间件
如何降低微服务复杂度丨云栖大会微服务主题分享实录
如何降低微服务复杂度丨云栖大会微服务主题分享实录
310 83
|
存储 运维 监控
构建端到端可观测全景丨云栖大会可观测分享实录
构建端到端可观测全景丨云栖大会可观测分享实录
717 91
|
设计模式 运维 供应链
探讨微服务架构如何降低系统复杂度
探讨微服务架构如何降低系统复杂度
204 1
|
Kubernetes 监控 Cloud Native
从微服务转为单体架构、成本降低 90%!是的,你没看反!
从微服务转为单体架构、成本降低 90%!是的,你没看反!
|
Prometheus 运维 监控
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【上】
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【上】
267 0
|
10月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
525 6
|
10月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
244 1
|
9月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
670 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型