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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 如何降低微服务复杂度丨云栖大会微服务主题分享实录

作者:谢吉宝

本文整理自阿里云资深技术专家、中间件负责人谢吉宝在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 帮助客户基于托管的应用历史数据做出可行性评估,并且给出开启建议,提供稳定长期技术支持。


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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
人工智能 Cloud Native 关系型数据库
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
阿里云瑶池数据库训练营权益:2022-2023云栖大会主题资料开放下载!
|
5月前
|
安全 物联网 云栖大会
2023云栖大会 | 云网络技术Session主题资料和视频回放归档(已完结)
2023年10月31日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,共包括1个Keynote,22个Session,包括产品发布、Deep Dive、最佳实践、客户分享、开放生态等多维度全面解读云网络进展。
1564 7
|
5月前
|
存储 运维 监控
构建端到端可观测全景丨云栖大会可观测分享实录
构建端到端可观测全景丨云栖大会可观测分享实录
371 1
|
5月前
|
安全 Cloud Native Java
如何降低微服务复杂度丨云栖大会微服务主题分享实录
本文整理自阿里云资深技术专家、中间件负责人谢吉宝在2023云栖大会《极简微服务模式,降低微服务复杂度的最佳实践》的分享。
|
11月前
|
Kubernetes 监控 Cloud Native
从微服务转为单体架构、成本降低 90%!是的,你没看反!
从微服务转为单体架构、成本降低 90%!是的,你没看反!
|
11月前
|
Prometheus 运维 监控
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【上】
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【上】
155 0
|
11月前
|
运维 Prometheus 监控
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【下】
《2021 阿里云可观测技术峰会演讲实录合辑(上)》——一、行业SaaS微服务稳定性保障实战【下】
136 0
|
新零售 移动开发 监控
微服务进阶场景实战:BFF,如何缓解服务依赖复杂度的问题?
前面处理了服务间数据依赖的场景。 除了这种频繁需要其他服务的数据的场景,其实还会碰到服务间依赖太杂乱的问题。 本篇讨论的就是如何缓解服务依赖复杂度的问题。 先把整个业务场景描述一下。
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。