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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: MSE Serverless 正式商用,构建低成本高弹性的微服务架构

作者:问思


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


比如多个开发团队在缺乏统一规范或协同的情况下,会出现微服务组件、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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
12天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
50 6
|
10天前
|
设计模式 监控 API
探索微服务架构中的API网关模式
在微服务的宇宙里,API网关是连接星辰的桥梁。它不仅管理着服务间的通信流量,还肩负着保护、增强和监控微服务集群的重任。本文将带你走进API网关的世界,了解其如何成为微服务架构中不可或缺的一环,以及它在实际应用中扮演的角色和面临的挑战。
|
13天前
|
缓存 监控 API
【微服务战场上的神秘守门人】:揭秘API网关的超能力 —— 探索微服务架构中的终极守护者与它的神奇魔法!
【8月更文挑战第7天】随着微服务架构的流行,企业应用被拆分为围绕特定业务功能构建的小型服务。API网关作为微服务间的通信管理核心,对请求进行路由、认证、限流等处理,简化客户端集成并提升用户体验。以电商应用为例,通过Kong部署API网关,配置产品目录等服务的API及JWT认证插件,确保安全高效的数据交互。这种方式不仅增强了系统的可维护性和扩展性,还提供了额外的安全保障。
31 2
|
14天前
|
Cloud Native Serverless 云计算
云原生时代的技术演进:从微服务到Serverless
在数字化转型的浪潮中,云原生技术正成为推动企业IT架构现代化的重要力量。本文将探讨云原生技术的关键组成部分—微服务与Serverless架构—如何助力企业实现敏捷开发和高效运维。通过深入分析这两种架构模式的优势与挑战,我们旨在为读者揭示云原生环境下的最佳实践和未来发展趋势。
|
15天前
|
运维 开发者 Docker
深度探索微服务架构中的容器化技术
在现代软件开发中,微服务架构因其模块化和可扩展性而广受欢迎。而容器化技术,尤其是Docker,成为了支持微服务架构的核心工具。本文将探讨容器化在微服务架构中的作用,包括其如何提升开发效率、简化部署过程以及解决传统方法中的问题。通过具体实例和最佳实践的分析,读者将了解如何有效利用容器化技术来优化微服务架构。
|
1天前
|
人工智能 Kubernetes 持续交付
Kubernetes环境下基于微服务架构的容器化AI应用部署与管理最佳实践
【8月更文第19天】随着AI技术的快速发展,越来越多的企业开始将AI应用部署到生产环境。然而,AI应用往往包含大量的组件和服务,这使得其部署和管理变得非常复杂。微服务架构和容器化技术(如Docker)结合Kubernetes集群管理,为解决这些问题提供了强大的工具。本文将介绍如何在Kubernetes环境中部署和管理基于微服务架构的容器化AI应用。
4 0
|
12天前
|
监控 供应链 安全
构建高效微服务架构:API网关与服务熔断策略
【7月更文挑战第38天】随着现代应用程序向微服务架构的转型,系统的稳定性和效率成为了开发团队关注的焦点。本文将探讨在微服务环境中实现系统可靠性的关键组件——API网关,以及如何在服务间通讯时采用熔断机制来防止故障蔓延。通过分析API网关的核心功能和设计原则,并结合熔断策略的最佳实践,我们旨在提供一套提高分布式系统弹性的策略。
|
3月前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
467 2
|
30天前
|
监控 NoSQL Java
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决

相关产品

  • 微服务引擎