MSE Serverless 正式商用,构建低成本高弹性的微服务架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: MSE Serverless 版已于 11 月 17 日正式商业化。

作者:问思

微服务架构充分提升了研发效率,解决了复杂业务系统的快速迭代问题。但随着业务及技术演进,各种微服务组件也愈发复杂。如何实现更敏捷的开发,降低微服务开发运维成本,做到全链路的弹性,保障整个系统的稳定性,依然存在诸多挑战。


比如多个开发团队在缺乏统一规范或协同的情况下,会出现微服务组件、SDK 版本不一致的情况,但考虑到版本兼容性、升级影响范围等因素,不少用户不敢升级而埋下隐患。


在做容量规划的时候,用户很难根据业务量评估合适的资源需求,采用大规格实例则成本过高,用小规格遇到突发流量又会影响稳定性。如果业务是由 ISV 开发,项目交付验收完成之后,一些基础组件的运维责任不明晰,如果缺少专业的巡检和监控告警机制,极易引发线上故障。


微服务 Serverless 趋势



作为微服务架构演进的一大趋势,Serverless 技术可以最大化技术红利和资源利用率,解决上述问题。它让开发者专注业务实现,而不必关心底层的服务器在哪,资源是否充足,什么时候该扩缩容或升级。


在研发协作和迭代效率方面,微服务本身是高内聚,可复用的,加上 Serverless 基础设施,可以升级成组装式研发。同时用户可以利用微服务治理的全链路流量控制能力,快速搭建逻辑隔离的日常环境,在节约资源成本的同时,将开发测试环境的构建时间从数天降低到分钟级别,极大解放开发者的生产力。


对于网关、注册配置中心、MQ、数据库、Redis 缓存这些基础组件,如果通过资源冗余来保障其稳定性,显然不够经济。

通过 Serverless 云产品就可以快速实现全链路的资源弹性,并享受自动升级等免运维的能力。


这些基础组件都通过 Backend as a Service 的方式提供,开发者不需要陷入复杂的配置集成工作中,而是聚焦在开发任务。对于业务方来说,即使 ISV 交付完项目撤出以后,也不用担心基础组件的运维、技术兜底和稳定性保障。


MSE Serverless 功能


正是顺应这种技术趋势,阿里云 MSE 在微服务业界率先推出了 Serverless 版。它有三大功能亮点,第一是自适应弹性,云原生网关和注册配置中心可以根据业务量自动地进行扩缩容,免去用户复杂的容量规划工作。


对于注册配置中心来说,其资源消耗和多个因素相关,比如服务提供者数量、客户端连接数、TPS 等。但有些指标很难进行观测和提前规划。网关作为关键的流量入口,虽然可以预测日常业务流量,但很难判断计划外流量。通过云服务的自适应弹性,可以保证整个技术架构的稳定性及成本的可控。


第二点是开箱即用免运维,大大减轻用户的运维负担。MSE 将注册配置中心、云原生网关以及服务治理的关键事件,比如实例变更、节点启停、应用上下线、限流熔断等汇总成统一视图,便于问题的分析和排查。


MSE Serverless 实例会在用户自定义的运维时间段,执行前置检查和自动升级。既保障组件处于最新的稳定版本,又能解除用户对于兼容性或者业务流量影响的担忧。


另外很多用户缺乏配置告警规则的意识或经验,MSE Serverless 实例也支持默认告警配置,当一些严重事件发生的时候,尽早通知到用户,及时介入。


最后也是最重要的一点,MSE Serverless 的计费方式跟业务量关联起来,门槛更低。普通实例按照固定规格收费,对于创业初期的小规模业务,或者业务低峰时段,实际会有资源的浪费。MSE 注册配置中心 Serverless 按照客户端连接数计费,云原生网关 Serverless 按请求量计费,对于测试环境、潮汐式业务、中小规模业务,都会节省大量成本。


构建高弹性的微服务架构


用户如果要自行构建一个全栈、高弹性的微服务架构,需要去权衡各个组件扩缩容的难易度,伸缩速度以及业务负载变化速率这些因素。如果基于 MSE Serverless 版,再结合阿里云其他云产品能力,可以轻松实现上述目标。


如下图所示,用户业务流量经由 NLB 进入到云原生网关 Serverless 实例,并路由到部署在 ACK 或 SAE 上的应用,整条链路上的产品都具备自适应弹性能力。


当应用副本数随着业务流量增大,其访问注册配置中心的连接数及 TPS 也会随之升高,Nacos、ZooKeeper Serverless 实例也会进行相应的弹性伸缩。对于服务治理来说,它本身就是应用级的按需接入,当 SAE 或者 ACK 上的某个应用开启服务治理以后,扩容出的应用副本也自动享受到服务治理能力


。现在阿里云已经有二十多款 Serverless 产品,并且会继续推进核心产品全面的 Serverless 化。通过 Serverless 云服务,用户可构建整体高弹性、低成本的微服务架构。

下面通过一个测试用例可以展示云原生网关 Serverless 实例如何与 ACK 容器集群配合,利用日志记录中的 QPS 指标和容器 HPA 机制,实现根据请求量进行整体扩容。


针对部署在容器集群的应用负载,我们创建一个 HPA 资源,设定最小和最大副本数,定义 QPS 为指标,每个副本的平均 QPS 达到 50 则触发扩容。

运行压测工具 10 分钟,发送到网关的请求从 400 TPS 逐级上升到 4000+ TPS。可以看到所有压测请求 100% 成功,而且平均 RT 保持在 9~10 毫秒的水平。实际上,网关服务和容器集群中的应用副本都进行了自动扩容,整个过程对用户完全透明,业务无感知。



MSE Serverless 适用场景


MSE Serverless 虽说有诸多优势,但也要分场景选用,普通实例和 Serverless 实例如何选型?这里我们列出二者的功能及适用场景的异同。在高可用方面,两种实例都支持多节点集群的多可用区部署,只是 SLA 稍有区别。在运维方面,用户需要手动升级普通实例的版本,并关注底层资源监控指标,到阈值时及时手动变配。


而Serverless 实例会进行自动升级和弹性扩缩容,用户不需要做复杂的容量规划和手动变配,也不需要关心 CPU、内存等资源的监控和告警。


对于云原生网关,普通实例支持的通信协议和认证鉴权种类稍多,具备硬件加速和可扩展性能力。Serverless 实例也支持了主流协议和认证鉴权方式,能覆盖大部分的用户需求。


综上所述,Serverless 实例更多是面向中小规模业务,间歇潮汐型场景,测试环境。而且用户希望免运维,更简单地使用后端服务。普通实例面向的是中大规模业务,希望掌控部分运维工作,并有更多自主性,扩展性需求的用户。


MSE Serverless 如何降本


用户无论是自建还是使用普通实例,一般会根据高业务负载购买相关的规格,按固定资源付费。这样在波谷期浪费的资源较多,整体成本较高。如果出现预期外的大业务流量,资源不足会使业务受损。Serverless 实例能进行快速且独立的扩容和缩容,在快速响应业务变化的同时,合理优化使用成本,助力企业降本增效。

注册配置中心 Serverless 实例按照客户端到服务端的连接总数计费,每十个连接为一个计费单位,阶梯定价,小时计费,具体价格如下图表格所示。


假设用户的业务量平稳,如折线图所示,橙线代表 Serverless 实例月价,蓝线代表普通实例的专业版集群月价。当小时连接数一直在十个或十个以内,Serverless 实例的月费用是 115 元。


即使到了 50 个连接的业务量,都要比 Nacos 或 ZooKeeper 开源自建成本更低。在 100 个连接以内,Serverless 实例费用比普通实例更低,所以对于中小规模业务更优。

云原生网关 Serverless 实例统计每小时处理请求量,每 1 万个请求为一个计费单位,阶梯定价,小时计费,具体价格如下图表格所示。假设用户的业务量平稳,如折线图所示,橙线代表 Serverless 实例月价,蓝线代表普通实例集群月价。


每小时累计请求在 5 万以内,Serverless 实例相比开源自建成本更低,在 20 万请求以内,比普通实例更低。上述假设是业务量较小且保持在一定量级,除此之外,Serverless 对于间歇、潮汐式场景,累计费用也更低。如下面的柱状图所示,假设 10 个小时内业务量有较大变化,刚开始每小时请求量为 20 万~30 万,最高峰为每小时 200 万,然后逐渐回落。


对于网关这种关键入口,普通实例需要预留资源保证能够支撑 200 万请求量的业务峰值。但对于 Serverless 实例,它的费用随业务量变化而不同。虽然在峰值时段 Serverless 实例的小时费用更高,但整个时段的费用累加后,明显看出它的成本更优。

MSE Serverless 版已于 11 月 17 日正式商业化,并推出相应的节省计划,用户可以根据注册配置中心和云原生网关 Serverless 实例每天的费用,按天承诺一定的消费金额进行预付费,可享受 8 折到 95 折不等的抵扣优惠,可进一步降低用户的长期使用成本。


不到 100 元的月消费,您即可享用到 K8s Ingress、微服务网关、安全网关三合一的云原生网关,或是稳定安全免运维的注册配置中心,快来构建你的 Serverless 微服务架构吧!


相关链接:

MSE Serverless 实例简介:

https://help.aliyun.com/zh/mse/getting-started/mse-serverless-instance-introduction

注册配置中心实例及版本选型:

https://help.aliyun.com/zh/mse/product-overview/select-an-edition

注册配置中心 Serverless 实例计费概述:

https://help.aliyun.com/zh/mse/product-overview/serverless-instance-billing-overview

云原生网关实例选型:

https://help.aliyun.com/zh/mse/product-overview/select-a-gateway-instance

云原生网关 Serverless 实例计费概述:

https://help.aliyun.com/zh/mse/product-overview/serverless-instance-billing-overview-1

阅读原文

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3天前
|
消息中间件 分布式计算 中间件
秀出天际!阿里甩出的988页分布式微服务架构进阶神仙手册我粉了
秀出天际!阿里甩出的988页分布式微服务架构进阶神仙手册我粉了
|
5天前
|
SpringCloudAlibaba Dubbo 应用服务中间件
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
12 0
|
18小时前
|
监控 负载均衡 API
构建高效可靠的微服务架构:后端开发的新趋势
【5月更文挑战第19天】 在当今快速发展的数字时代,微服务架构已经成为了软件开发领域的一大热点。本文将深入探讨如何构建一个高效且可靠的微服务架构,以满足不断变化的业务需求和应对日益增长的用户需求。我们将从微服务的基本概念、优势、关键技术以及实践建议等方面进行详细阐述,为后端开发人员提供一套完整的解决方案。
|
2天前
|
运维 监控 Docker
使用Docker进行微服务架构的部署
【5月更文挑战第18天】本文探讨了如何使用Docker进行微服务架构部署,介绍了Docker的基本概念,如容器化平台和核心组件,以及它与微服务的关系。通过Docker,每个微服务可独立运行在容器中,便于构建、测试和部署。文章详细阐述了使用Docker部署微服务的步骤,包括定义服务、编写Dockerfile、构建镜像、运行容器、配置服务通信、监控和日志管理以及扩展和更新。Docker为微服务提供了可移植、可扩展的解决方案,是现代微服务架构的理想选择。
|
2天前
|
敏捷开发 监控 API
构建高效微服务架构:从理论到实践
【5月更文挑战第18天】 在当今快速发展的软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序分解为一系列小型、独立的服务来提高系统的可伸缩性、弹性和维护性。本文旨在探讨如何从理论走向实践,构建一个高效的微服务架构。文章首先介绍微服务的基本概念和优势,然后详细讨论了在设计和部署微服务时需要考虑的关键因素,包括服务划分、通信机制、数据一致性、容错处理和监控策略。最后,结合具体案例分析,展示如何在现实世界中应用这些原则,确保微服务架构的高效运行。
|
2天前
|
存储 弹性计算 运维
探索微服务架构下的服务治理
【5月更文挑战第18天】 在当今软件工程领域,微服务架构因其灵活性、可扩展性以及促进团队协作等优势而受到广泛青睐。然而,随着系统规模的增长和服务数量的膨胀,服务治理成为确保系统稳定性和高效性的关键因素。本文将深入探讨微服务环境下的服务治理实践,包括服务发现、配置管理、负载均衡、故障处理等关键方面,旨在为开发者提供一套行之有效的服务治理策略。
|
2天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第18天】 随着现代软件开发的复杂性日益增长,传统的单体应用架构已难以满足快速迭代和灵活部署的需求。本文聚焦于一种新兴的解决方案——微服务架构,探讨其如何为后端开发带来革命性的改变。我们将深入分析微服务的核心概念、优势与挑战,并通过具体案例来阐述如何在实际项目中实施微服务架构。文章旨在为开发者提供一种系统化的方法,帮助他们理解并应用微服务架构,以提升系统的可维护性、扩展性和技术敏捷性。
14 2
|
2天前
|
测试技术 持续交付 API
构建高效的微服务架构:后端开发的现代实践
【5月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、可扩展和容错能力的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、技术栈选择以及实施过程中的挑战与对策。通过对微服务架构实践的详细剖析,旨在为后端开发人员提供一套构建和维护高效微服务系统的实用指南。
|
2天前
|
缓存 算法 Apache
微服务架构下的服务发现与注册机制
【5月更文挑战第18天】 随着现代软件系统向着分布式和微服务架构演进,服务发现与注册成为确保系统弹性和可伸缩性的关键因素。本文将探讨在微服务环境下实现服务发现与注册的模式,分析其必要性,并深入讨论常见的解决方案以及面临的挑战。文中不仅介绍了服务发现的基本原理和流程,还对流行的服务发现工具如Consul、Etcd和Zookeeper进行了比较,最后提出了一套优化策略以增强系统的鲁棒性和性能。
|
2天前
|
运维 负载均衡 监控
探索微服务架构下的服务网格
【5月更文挑战第17天】 在当代软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选模式。然而,随之而来的复杂性问题也日益凸显,特别是在服务间的通信管理上。服务网格(Service Mesh)作为一种新兴的解决方案,专门处理服务到服务的通信问题,旨在提供一种更加智能和动态的方式来管理微服务环境中的流量和服务依赖。本文将深入探讨服务网格的概念、优势以及如何在微服务架构中实现高效通信。

相关产品

  • 微服务引擎
  • http://www.vxiaotou.com