您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 云计算 > 正文

为什么说 Serverless 是云的未来?

发表于:2020-07-03 作者:不瞋 阿里云高级技术专家 来源:阿里巴巴云原生

每隔几年,IT 界就会出现新突破性的进展。回望整个计算机技术发展史,我们会发现“抽象、解耦、集成”的主题贯穿其中。产业每一次的抽象、解耦、集成,都将创新推向新的高度,也催生出庞大的市场和新的商业模式。

对于大多数应用而言,借助 Serverless 服务,开发者可以将绝大多数精力投入在业务逻辑的开发整合上,大大缩短开发周期,降低运维成本。有人说:Serverless 正在改变未来软件开发的模式和流程,它就是云计算的未来。技术领域真正的变革看似是新技术的高歌猛进,为客户创造价值才是任何技术变革的原点。本文将从客户价值的角度,再一次探讨为什么说 Serverless 是云的未来。

Serverless 对客户的价值

为客户创造价值是任何技术变革的原点,从客户价值倒推,真正需要回答的是:客户的痛点是什么?Serverless 在解决客户痛点上是否有明显优势?甚至为客户创造新的机会?以企业的平台化策略为例,为什么众多 SaaS 企业不能像 Salesforce 一样实施平台策略,打造 PaaS 或者 Serverless 计算平台?甚至做 PaaS,做中台变成了企业生死劫?这其中固然有业务、组织的顶层设计原因,但不可否认,打造平台的难度和成本太高也是其中很重要的原因。一方面要支撑前台业务的高速发展,另一方面又要抽象、重组,对系统进行重构。因此需要有新的方法论和工具来降低平台构建的成本,实现快速迭代演进。

从更宏观的视角来看,企业交付价值的方式,正在被数字技术重塑。根据阿里研究院的报告,在零售、金融等行业,数字化的商业形态正在代替传统商业形态,成为主流和必然。即使在工业制造等领域,企业的商业形态并非通过数字化的形式表现,但充分利用数据科技进行生产运营优化,也正在成为行业共识。在数字化转型的时代 ,企业面临巨大的竞争压力和不确定性,产品 time-to-market 的能力比任何时候都重要。根据微软的估计,未来 5 年会产生 5 亿个应用,比过去 40 年的总和都多,现有的研发模式已无法支撑这样规模的应用开发需求。

Serverless 计算的思想是将同质化的、负担繁重的基于服务器等基础设施的开发和运维等工作从未来云上应用开发中移除,借助云上丰富的托管服务能力,以搭积木的方式构建弹性、可靠、低成本的系统或应用。除此之外,云服务商也通过事件驱动的方式加强产品集成和被集成的能力。

以 Serverless 的核心计算产品函数计算为例,在函数计算出现之前,客户要通过很多胶水代码完成多个云产品间的集成,还要仔细的处理各种错误情况。当函数计算和阿里云对象存储集成后,对象存储中产生的上传 / 删除对象等事件能够自动、可靠地触发函数处理,而且每个环节都是弹性高可用的,客户能够快速实现大规模数据的实时并行处理。同样的,通过消息中间件和函数计算的集成,客户可以快速实现大规模消息的实时处理。在未来,无论是一方云服务,还是三方应用,所有的事件都将被捕获,被函数计算等服务可靠地处理。

对比传统开发模式,Serverless 模式基于大量成熟的云服务能力构建应用,客户的技术决策点更少,实施复杂度更低。随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构下,企业的敏捷性有 10 倍提升的潜力。

Serverless 对云服务商的价值

Serverless 有助于云服务商建立更宽广的差异化竞争优势。基础设施即服务(IaaS )层的竞争本质是规模。云服务商通过提升供应链的议价能力、资源并池、采用异构硬件、软硬协同优化等手段来最大化性能功耗比(performance per watt)和性能价格比(performance per dollar)。基础设施层竞争的主要形式是价格战。

但云的竞争一定不是单一维度的,正如苹果提供了移动应用编程模型最好的实现,这是硬件、软件、服务三位一体的协同整合能力,以此为基础形成的出色用户体验和粘性让其在移动互联网产业中独树一帜。云服务商也需要思考如何在基础设施、产品体系、生态等方面多维度,立体化地打造竞争力。发展 Serverless 关乎于产品体系差异化竞争力的建设,对云服务商至关重要。

在函数计算出现之前,各个云产品难于支持定制化需求,产品间的交集很少。在函数计算出现后,每个云服务具备了“可编程“的能力。“可编程“让云服务将自己的核心能力延伸出去,让开发者基于此编写相关应用,不但解决了定制化需求支撑的问题,云服务还升级为应用平台,建立开发者生态。因此领先的云服务商的产品体系都在迅速 Serverless 化,不断加强产品间的集成和被集成的能力。

Serverless 有助于云服务商提高资源利用率,加速硬件创新。为了实现精准、实时的实例伸缩和放置,Serverless 计算平台必须把应用负载特征作为资源调度的依据,系统通常要实时追踪请求执行时长,排队等待时长,单位时间请求数,应用初始化时长等指标。以感知应用负载为基础的“白盒“调度,能够实现更出色的伸缩实时性和全局资源利用率。轻量安全容器等新的虚拟化技术实现了更小的资源隔离粒度(典型的 Serverless 计算服务通常支持 0.1 vcpu,128 MB 的实例规格),更快的启动速度,更小的系统开销,数据中心的资源使用变得更加细粒度和动态,能够更充分的利用碎片化资源。在加速硬件创新方面,Serverless 计算屏蔽了底层硬件规格,能够复用多种机型,加速新硬件的大规模应用。

Serverless 有助于云服务商形成良好的用户结构。Serverless 的核心价值是技术普惠。通过平台的整合和集成,用户以更有效率的方式构建弹性、高可用、低成本的云原生应用。赋能用户加速价值交付,实现业务突破,这对中小用户尤为重要。用户在云的环境中茁壮成长,是云最重要的价值体现。

至此,通过对产业发展趋势,以及 Serverless 对用户和云服务商的价值分析,我们可以形成如下结论:

API 是构建现代应用的基石,这不只是技术决策,更影响企业业务发展策略。当一个垂直领域足够复杂后,会出现对应的后端服务(BaaS),通过 API 的方式交付价值。绝大多数 API 是 Serverless 形态,需要与之匹配的计算形态,这是 Serverless 计算诞生和发展的基础;

云的产品体系正在全托管化、Serverless 化,这不是对未来的期望,而是正在发生的事实。今天超过 70% 的云服务已经是 Serverless 形态,未来这一比例将会更高;

Serverless 不等于 Serverless 计算,不是某一类云产品,而是对应云的整个产品体系,包含计算、存储、中间价、数据分析等各种服务。Serverless 定义了云的编程模型;

Serverless 的本质是回答如何利用云的要素帮助用户实现价值交付的颠覆式创新。用户的价值交付涵盖方法论、开发者工具、应用交付体系、云产品体系、服务生态、商业模式设计等多个维度,因此 Serverless 必须是顶层设计的产物。

在 Cloud 1.0 时代,云托管模式简化了计算资源获取和管理的方式;在 Cloud 2.0 时代,Serverless 将成为云的新一代编程模型。编写代码,上传云端,在任何规模下可靠运行,成为新一代开发者感知云的第一界面,这是 Serverless 的初心。