从上云到用云,Serverless 引领下一代应用架构(1)

本文涉及的产品
简介: 从上云到用云,Serverless 引领下一代应用架构(1)

过去十年,上云成为确定性的趋势。


在上云阶段,企业关注点在于如何实现平滑上云,因此云厂商将云托管(Cloud-Hosting)作为核心策略。云的主要形态是资源型服务,以虚拟机的形式为企业提供海量的算力。


对开发者而言,虚拟机的功能和使用方式和 IDC 中的物理服务器没有区别。原有的应用、技术栈不需要改变就可以平滑上云。云托管的策略很好地满足了企业在上云阶段的核心诉求,因此取得了成功。


随着越来越多的企业上云,甚至很多企业系统第一天就是在云上构建,企业的核心关注点转变为如何更好地利用云的能力,将产品快速推向市场,从而实现业务成功。


这促使云在下一阶段发展的主要目标转变为利用云自身的优势,解决大规模复杂应用的开发和运维挑战。但是,如果算力的呈现形式仍然是服务器这样的资源形态,它的使用门槛依然很高。算力和业务相隔太远,企业需要有一整套支撑应用的基础设施来用好算力。


如何让算力像电力一样的普及,云计算需要新的形态。


云服务的角色将发生巨大的变化,不再是单纯的提供资源,而是要成为企业构建应用的新平台,要帮助企业尽可能减小机器运维等低价值重复工作,聚焦于业务的创新。


下一个十年,是云演进自身能力,帮助企业用好云的阶段,而云厂商的核心能力就是 Serverless 云服务。


image.png

为什么选择Serverless


Serverless 服务是全托管的。


云厂商可以通过存储计算分离,软硬协同优化等底层技术,大规模提高服务的资源效率和性能。以阿里云存储服务为例,自2018年开始大规模使用RDMA技术,自研了 Solar-RDMA协议,以及 HPCC 流控和端网融合技术。


通过网络和存储的协同设计,结合 FPGA 硬件加速压缩算法等能力,实现了稳定的微秒级的读写性能。企业只需要调用服务 API,就能使用云厂商在相关领域的专业能力,享受到技术红利。


Serverless 服务具备自适应弹性,让企业的应用更平稳的应对业务负载不可预测或者突然爆发的情况。


一个典型的业务系统可划分为应用层、接入层、资源层。资源型的云服务只提供了资源层面的弹性能力,企业还需要实现接入层和应用层的弹性能力,才能做到业务的全链路弹性。

  • 架构设计阶段,根据各个组件的依赖关系,制定弹性伸缩和限流降级方案。对于关系型数据库等几乎没有弹性能力的服务,一般需要预测未来3年对数据库的写入和读取规模,进行分库分表。
  • 资源规划阶段,权衡各个组件的扩缩容难易度、伸缩速度、业务负载变化速度等因素,通过冗余资源实现相应的弹性能力。接入层资源占比在整个系统不高,维持较高冗余资源成本不高,也比较容易扩容。应用层的资源规划最具挑战。应用层是资源消耗大头,一般不允许通过很高的冗余资源来扛住负载峰值,此外应用层的扩缩容牵扯上下游链路,复杂度很高。最后,应用层不同服务的流量规模不同,需要梳理清楚,重点做好热点链路的冗余资源规划。
  • 线上运行阶段,通过完整的可观测能力,建立量化链路的流量,检测热点,进行动态扩缩容,再量化热点链路流量,再判断是否进行动态扩缩容的闭环。此外,完整、及时的监控报警也是十分必要的,为不同组件设定不同的热度阈值,检测到热度流量后,系统要及时的广播给关联组件的开发、运维人员,根据预定方案进行处理。

image.png

可见,在资源层的弹性能力上构建整个业务的弹性能力复杂度非常高。Serverless 服务的自适应弹性目标就是为了简化复杂度,帮助企业更容易实现业务弹性。


首先云厂商会将大量中间件、数据库、大数据等 BaaS 化的服务 Serverless 化。以数据库为例,不但提供 NoSQL 等天然具备高弹性能力的数据库服务,也将传统的关系型数据库 Serverless 化。


其次, Serverless 计算服务通常具备百毫秒到秒级的实例启动速度,每秒钟启动数千甚至上万实例,以及高度自动化的弹性伸缩能力,配合 Serverless 化的 BaaS 服务,将实现全链路的业务弹性。


最后,Serverless 服务通常内置了限流降级的能力,让企业资源可控,更容易应对系统雪崩的问题。


相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
4天前
|
存储 数据采集 数据挖掘
“湖仓一体架构及其应用”写作框架,系统架构设计师
随着5G、大数据、人工智能、物联网等技术的不断成熟,各行各业的业务场景日益复杂,企业数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式增长趋势。在这一背景下,企业数据管理不再局限于传统的结构化OLTP(On-Line Transaction Processing)数据交易过程,而是提出了多样化、异质性数据的实时处理要求。传统的数据湖(Data Lake)在事务一致性及实时处理方面有所欠缺,而数据仓库(Data Warehouse)也无法应对高并发、多数据类型的处理。因此,支持事务一致性、提供高并发实时处理及分析能力的湖仓一体(Lake House)架构应运而生。湖仓一体架构在成本、
|
1天前
|
Java 数据库连接 API
“论数据访问层设计技术及其应用”写作框架,系统架构设计师
在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清晰,便于提高复用能力和产品维护能力。一种常见的层次划分模型是将信息系统分为表现层、业务逻辑层和数据访问层。信息系统一般以数据为中心,数据访问层的设计是系统设计中的重要内容。数据访问层需要针对需求,提供对数据源读写的访问接口;在保障性能的前提下,数据访问层应具有良好的封装性、可移植性,以及数据库无关性。
“论数据访问层设计技术及其应用”写作框架,系统架构设计师
|
16小时前
|
运维 监控 Cloud Native
“论云原生架构及其应用”写作框架,系统架构设计师
近年来,随着数字化转型不断深入,科技创新与业务发展不断融合,各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下,以容器和微服务架构为代表的云原生技术作为云计算服务的新模式,已经逐渐成为企业持续发展的主流选择。云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。云原生架构有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用
|
1天前
|
机器学习/深度学习 运维 安全
自动化运维在现代IT架构中的应用与挑战
【6月更文挑战第23天】随着云计算和微服务架构的兴起,自动化运维成为保障系统稳定性、提升效率的关键。本文探讨了自动化运维在现代IT环境中的实践方法、面临的挑战以及未来的发展趋势,旨在为运维人员提供策略指导和技术参考。
7 0
|
4天前
|
监控 持续交付 数据安全/隐私保护
Python进行微服务架构的监控
【6月更文挑战第16天】
27 5
Python进行微服务架构的监控
|
21小时前
|
缓存 运维 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关是连接客户端与众多微服务群岛之间的桥梁。本文将深入探讨API网关的设计原则、核心功能以及在现代软件架构中的关键作用,同时分析其在实际应用中的效益和面临的挑战。
|
2天前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
2天前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
1天前
|
Kubernetes 监控 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第23天】在云计算的浪潮中,云原生架构以其弹性、可扩展性和高效性成为企业数字化转型的重要推手。本文将深入探讨如何利用云原生技术实现微服务的治理与优化,确保系统的稳定性和高可用性。我们将从微服务的基本概念出发,通过具体案例分析,揭示云原生环境下微服务治理的关键策略,并分享实践经验,旨在为读者提供一套完整的微服务治理解决方案。
|
2天前
|
设计模式 运维 监控
深入理解后端开发中的微服务架构
【6月更文挑战第23天】本文旨在探索微服务架构在后端开发中的应用及其带来的变革。通过分析微服务的核心原则、设计模式以及与传统单体架构的对比,揭示微服务如何优化开发流程、提升系统的可扩展性与可维护性。文章还将讨论实施微服务时可能遇到的挑战和解决策略,为后端开发者提供实践指南。