AWS、阿里云、腾讯云都在追捧的“Serverless”为什么这么香?
每隔几年,IT产业就会出现新突破性的进展。回望整个计算机发展历史,我们会发现“抽象、解耦、集成”的主题贯穿其中。产业每一次的抽象、解耦、集成,都将创新推向新的高度,也催生出庞大的市场和新的商业模式。
对于大多数应用而言,借助Serverless服务,开发者可以将绝大多数精力投入在业务逻辑的开发整合上,大大缩短开发周期,降低运维成本。有人说Serverless正在改变未来软件开发的模式和流程,它就是云计算的未来。
技术领域真正的变革看似是新技术的高歌猛进,实则为客户创造价值才是任何技术变革的原点。
通常,我们都会将Serverless翻译为“无服务器架构”,虽然被称为“无服务器”,但该架构与传统架构不同,显然并不是真的不需要服务器,而是选择将服务器等基础设施的管理“隐藏”起来,计算资源作为服务而不是作为服务器的概念出现。
这种模式兼具事件触发、短暂以及完全被第三方管理等多重属性,其中开发者只需关注业务逻辑即可。
2012,Serverless这一概念首次出现在技术人的视野之中。短短两年之后,云计算“3A巨头”之一的AWS,就于当年年底正式推出Lambda产品,标志着Serverless的商业化进程正式被开启。
当时的Lambda被这样描述:这是一种计算服务,可以根据时间来运行用户的代码,无需关心底层的计算资源。
Serverless计算的思想是将同质化的、负担繁重的基于服务器等基础设施的开发和运维等工作从未来云上应用开发中移除,借助云上丰富的托管服务能力,以搭积木的方式构建弹性、可靠、低成本的系统或应用。
除此之外,云服务商也通过事件驱动的方式加强产品集成和被集成的能力。
以Serverless的核心计算产品函数计算为例,在函数计算出现之前,客户要通过很多胶水代码完成多个云产品间的集成,还要仔细的处理各种错误情况。
当函数计算和对象存储集成后,对象存储中产生的上传/删除对象等事件能够自动、可靠地触发函数处理,而且每个环节都是弹性高可用的,客户能够快速实现大规模数据的实时并行处理。
同样,通过消息中间件和函数计算的集成,客户可以快速实现大规模消息的实时处理。
在未来,无论是一方云服务,还是三方应用,所有的事件都将被捕获,被函数计算等服务可靠地处理。
对比传统开发模式,Serverless模式基于大量成熟的云服务能力构建应用,客户的技术决策点更少,实施复杂度更低。
随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,在Serverless架构下,企业的敏捷性可以获得10倍提升的潜力。
之后,Google Cloud Function和微软Azure Function在技术圈子的成功,也就顺理成章将Serverless推进了热化阶段。
随着AWS、阿里云、腾讯云开始在Serverless领域布局,那么问题来了,为何众多巨头纷纷盯上这一业务?其到底有何魅力能让巨头们纷纷下注?从云服务商角度看,Serverless有助于云服务商建立更宽广的差异化竞争优势。
IaaS层的竞争本质是规模,云服务商通过提升供应链的议价能力、资源并池、采用异构硬件、软硬协同优化等手段来最大化性能功耗比和性能价格比。
但云的竞争一定不是单一维度的,正如苹果提供了移动应用编程模型最好的实现,这是硬件、软件、服务三位一体的协同整合能力,以此为基础形成的出色用户体验和粘性让其在移动互联网产业中独树一帜。
云服务商也需要思考如何在基础设施、产品体系、生态等方面多维度,立体化地打造竞争力。发展Serverless关乎于产品体系差异化竞争力的建设,对云服务商至关重要。
在函数计算出现之前,各个云产品难于支持定制化需求,产品间的交集很少。在函数计算出现后,每个云服务具备了“可编程”的能力。
可编程让云服务将自己的核心能力延伸出去,让开发者基于此编写相关应用,不但解决了定制化需求支撑的问题,云服务还升级为应用平台,建立开发者生态。
因此领先的云服务商的产品体系都在迅速Serverless化,不断加强产品间的集成和被集成的能力。
同时,其也有助于云服务商提高资源利用率,加速硬件创新。
为了实现精准、实时的实例伸缩和放置,Serverless计算平台必须把应用负载特征作为资源调度的依据,系统通常要实时追踪请求执行时长,排队等待时长,单位时间请求数,应用初始化时长等指标。
以感知应用负载为基础的“白盒”调度,能够实现更出色的伸缩实时性和全局资源利用率。
轻量安全容器等新的虚拟化技术实现了更小的资源隔离粒度,更快的启动速度,更小的系统开销,数据中心的资源使用变得更加细粒度和动态,能够更充分的利用碎片化资源。
在加速硬件创新方面,Serverless计算屏蔽了底层硬件规格,能够复用多种机型,加速新硬件的大规模应用。
另外,Serverless的核心价值是技术普惠,通过平台的整合和集成,用户以更有效率的方式构建弹性、高可用、低成本的云原生应用。
赋能用户加速价值交付,实现业务突破,这对中小用户尤为重要。用户在云的环境中茁壮成长,是云最重要的价值体现。
不过,一些公有云服务商针对Serverless的技术探究也出现了缺乏统一认知以及相应标准,无法适应所有的云平台的情况,例如支持的开发语言不同,事件触发的机制有差异等。毕竟Serverless从来都不是一款产品,也不是一个工具,而是一整套能力的合集。
一直以来,企业使用Serverless通常会涉及几方面因素,其中“减少运营成本”被认为是最直观有效的原因之一。应用Serverless后,企业就无需再为潜在的流量高峰买进大部分时间都可能空闲的服务器机架,而是根据流量进行自动伸缩,采用按请求量来付费的灵活方式。
此外“自动按需扩展”可以发挥到极致,随时扩展到当前的使用量,消除了意外或者季节性流量高峰的困扰。更重要的是,Serverless不需要关心内存泄露,还具备将云数据库、云消息队列等服务囊括在内的完善配套设施,极大减少工作量。
哪怕企业中大部分的开发人员都出身软件,对修复保护以及管理并不擅长,一样可以做到专注软件开发,Serverless绝对没问题。
基于此,一直以来国内外都有很多企业致力于提供基于Serverless框架的能力服务,接受程度更是水涨船高。可以说,Serverless架构的兴起使“去服务器化”真正造福了开发者,让基础设施管理出现了新契机。
随着技术上对去中心化以及轻量虚拟化的需求越发强烈,这种“全云化”的模式似乎预示着真正的云时代正在到来。
本文来自微信公众号“科技云报道”(ID:ITCloud-BD),作者:科技云报道,36氪经授权发布。