作者:刘宇(江昱)
大家好,我是阿里云 Serverless 产品经理刘宇,很高兴可以和大家一起探索 Serverless 架构的前世今生。

从云计算到云原生再到 Serverless 架构,技术飞速发展的轨迹都有一定规律可循,那么 Serverless 架构为何而来,因何而生呢?
从世界第一台通用计算机 ENIAC 开始,计算机科学与技术的发展就从未停止过前进的脚步,近些年来,更是日新月异。有不断突破和创新的人工智能领域,有 5G 带来更多机会的物联网领域,还有不断走进寻常百姓家的云计算。

在图中可以看到三个关键词,这是2003年到2006年间,谷歌发表了三篇重要的论文,这些文章指明了HDFS(分布式文件系统),MapReduce(并行计算)和Hbase(分布式数据库)的技术基础以及未来机会,正式奠定了云计算的发展方向。关于这三个文章,或者这三个技术点,也有人曾说“因为它们,云计算才正式拉开帷幕”。
云计算发展是飞速的,也是有目共睹的;但是随着云计算的进程,另一个名词诞生并迅速占领了“风口大旗”,被大众更为广泛地关注,那就是——云原生。
通过对云计算与云原生的文字组成结构分析,可以看到云原生实际上就是在云与计算之间,加了一个 Native,所以可以认为,云计算的飞速发展,无论是从技术迭代还是从概念升级,最终产生了如今耳熟能详的:云原生计算。
云计算是什么?其实早在1961年云计算的雏形概念就已经诞生了,在麻省理工学院百周年纪念典礼上,约翰·麦卡锡,也就是1971年图灵奖获得者,第一次提出了一个概念,这个概念后来被喻为是云计算的“最初的、超前的”遐想模型。它翻译大意为:“计算机在未来,将变成一种公共资源,会像生活中的水、电、煤气一样,被每一个人使用。”时间到了1996年,云计算这个词被正式提出;而到了2009年,UC Berkeley(加利福尼亚大学伯克利分校)更是在发布的论文中,对云计算进行了较为细致描述,它说云计算是一个即将实现的古老梦想,是计算作为基础设施这一长久以来梦想的新称谓,它在正快速变为商业现实。同时在该文章中,也明确地为云计算做了定义:云计算包含互联网上的应用服务,以及在数据中心提供这些服务的软硬件设施。

时至今日,云原生技术的发展同样迅猛,那么什么是云原生呢?在文章“什么是真正的云原生”中,给出了一个非常明确的解释:因云而生的软件、硬件、架构,就是真正的云原生;因云而生的技术,就是云原生技术。确实如此,出生于云,成长在云,因云而生,就是云原生。
那么云原生都包括哪些东西呢?耳熟能详的技术,加上云原生三个词,就都是云原生相关技术了,例如:数据库,云原生数据库;网络,云原生网络等。在 CNCF Landscape 中,可以看到云原生基金会对云原生产品维度的一个描述,包括了数据库、流、消息、包括容器镜像、包括servicemesh、包括网关、包括K8S、当然,这里还包括一个非常热门的词汇:Serverless。
在很多时候 Serverless 架构被称为是一种粘合剂,它将云原生的其他很多产品和用户的业务进行了链接,同时又提供了极其诱人技术红利,为此也被很多项目,业务所选择。那么什么是 Serverless 架构?
通过 Serverless 的结构,不难发现其所要传递的心智,Server指的是服务器,Less表示的是更少的精力,所以Serverless架构所传递的心智是:把更专业的事情交给更专业的人,开发者能够较少地关注服务器等底层相关内容,把更多的精力放在更具价值的业务逻辑之上。

2009年,UC Berkeley发表了一篇关于云计算的文章,在文章中,UC Berkeley为云计算做出了明确的定义,同时也提出了包括服务的可用性,数据安全性和可审计性等在内的十项云计算所面临的各种困难和挑战,并断言云计算将会引领未来的十年。
2019年,恰好时隔十年,UC Berkeley再次发文,不仅从多角度说明了什么是Serverless架构,例如从结构角度,肯定了Serverless是FaaS与BaaS的结合;从特性角度,对于被认为是Serverless架构的产品或者服务需要具备按量付费和弹性伸缩的特点;并非常激进地表示 Serverless 将会成为云时代默认的计算范式,将会取代 Serverful 计算,由此也意味着服务器 - 客户端模式的终结。

从IaaS,到PaaS,再到Serverless,云计算的发展,越来越清晰,也越来越明确,去服务器化也越来越明显。

无论此时我们说云原生,还是 Serverless 架构,云的概念确实是在不断地升级,云的技术也在不断地迭代,而这一切的改变其实都是为了效能提升,为了安全提升,为了成本降低,生产力驱动。
尽管对于 Serverless 架构的定义,并没有一个非常明确的表述,但是 Serverless 是 FaaS 与 BaaS 的组合这种说法,却被很多人所接受。所谓的 FaaS 就是函数即服务,而 BaaS 则指的是后端即服务,两者搭配,共同成为 Serverless 架构不可获取的部分,为开发者提供降本提效的技术红利。
诚然,CNCF 云原生基金会在 Serverless 白皮书中,肯定了 Serverless 是 FaaS 与 BaaS 的结合这种说法;而UC伯克利在论文中,肯定这种说法的同时,也从特性角度指出,对于被认为是 Serverless 架构的产品或者服务,还需要具备按量付费和弹性伸缩等特点,但是这也都是2019年的“描述”了。
时至今日,Serverless 架构已经完成了“自我更新与迭代”。在信通院发布的 Serverless 的白皮书中,明确指出 Serverless架构计算平台包括了函数纬度和应用纬度两种形态,而随着时间的发展,阿里云领先性地推出了 Serverless 应用引擎(SAE),以应用为维度进行 Serverless 化的平台,换句话说,它其实可以是应用 Serverless 化的最佳实践。

至此,Serverless 架构的组成已经逐渐明确:
从结构角度,Serverless是计算平台与BaaS产品的结合。计算平台包括了事件触发的函数计算,也包括了应用Serverless化的最佳实践Serverless应用引擎。BaaS层面则包括了Api网管,CDN,对象存储,数据库等一系列的云服务。
从特性角度,就像UC Berkeley所说,对于被认为是 Serverless架构的产品或者服务,还需要具备按量付费和弹性伸缩等特点。

作为云时代新的计算范式,Serverless架构本身属于一种天然的分布式架构,其工作原理较于传统架构虽没有翻天覆地的变化,但也是有细微的不同。
如图所示,传统架构下,开发者开发完成应用之后,还需要购买虚拟机服务,初始运行环境,安装需要的软件(例如MySQL等数据库软件,Nginx等服务器软件等),完成环境的准备之后,还需要上传开发好的业务代码,启动该应用,此时用户才可以通过网络请求,成功的访问到目标应用。但是,如果应用的请求量过大或者过小时,开发者or运维人员,还需要针对实际的请求数量进行相关资源的扩充或缩容,并在负载均衡&反向代理模块增加相对应的策略,以确保扩缩容操作的及时生效;同时,在做这些操作的时候还要保证线上用户不会受到影响。
而在Serverless架构下,整个应用发布的过程和工作的原理,将会发生一定的变化:
当开发者开发完整业务代码之后,只需要部署或更新到对应的 FaaS 平台即可,完成之后根据真实的业务需求,进行相关的触发器配置,例如为了对外提供Web应用服务,可以配置HTTP触发器等,此时用户就可以通过网络,访问到开发者所发布的应用。在这个过程中,开发者不需要再额外关注服务器的购买,运维等相关的操作,也无需对一些软件的安装,应用资源的扩缩容进行额外的精力支出;开发者所需要关注的仅仅是自身的业务逻辑,至于在传统架构下需要安装配的各种服务器软件等,都变成了配置项交给云厂商来管理;同样,传统架构下需要根据服务器的利用,而进行资源的扩缩行为,也全都自动化地交给云厂商来实现。

传统意义上的弹性伸缩,指的是当项目的容量规划与实际集群负载间出现矛盾时,即当现有集群的资源无法承载压力时,通过调整集群的规模或者进一步分配相对应的资源,以保障业务的稳定性。当集群负载较低时,系统可以尽量降低集群的资源配置从而减少闲置资源的浪费,以进一步节约成本开销。但是在Serverless架构下,弹性伸缩被进一步泛化,即在用户侧的表现,取消了项目本身容量规划的过程,而是完全由平台调度决定资源的增加与缩减。
在UC Berkeley的文章中,对Serverless架构特点与优势的描述,有这样的表达:“代码的执行不再需要手动分配资源。不需要为服务的运行指定需要的资源(比如使用几台机器、多大的带宽、多大的磁盘等),只需要提供一份代码,剩下的交由Serverless平台去处理就行了。当前阶段的实现平台分配资源时还需要用户方提供一些策略,例如单个实例的规格和最大并发数,单实例的最大CPU使用率。理想的情况是通过某些学习算法来进行完全自动的自适应分配”,其实作者在此处所描述的“完全自动的自适应分配”指的就是Serverless架构的弹性伸缩的特点。
Serverless架构下的弹性伸缩指的是,Serverless架构可以根据业务流量波动,自动进行资源的分配和销毁,并最大程度化地平衡稳定性、高性能、提升资源利用率。即当开发者完成业务逻辑的开发,把业务代码部署到 Serverless 平台之后,平台通常并不会立即分配计算资源,而是将业务代码与配置等相关内容进行持久化,当流量请求到来时,Serverless平台会根据真实流量以及配置情况,自动的进行实例的启动,反之也会自动的进行实例的缩减,甚至在某些时候实例的个数可以缩减到0,即平台并未分配资源给对应函数。
Serverless 架构的核心技术红利的:弹性伸缩能力,在一定程度上也代表着提升资源利用率,朝着绿色计算方向不断前进的过程。
在上图弹性伸缩部分:左侧是传统云主机架构下流量与机器负载示意图,右侧是Serverless架构弹性模式下流量与负载的示意图,在这两个图中,橙色面积部分表示的是用户侧所感知的资源负载能力,蓝色的折线表示的是某网站在某天的流量走势图。通过这两张图对比,不难发现,传统云主机架构下,需要人工进行资源的增加与缩减,变化的粒度是主机级别,所以实现性受到严重考验,粒度过粗仍然没办法有效地平衡资源浪费与性能稳定之间的关系。
在图中,蓝色线以上的橙色面积,是被浪费掉的资源;右侧是 Serverless 架构弹性模式下流量与负载的示意图,在这个图中可以清晰地看到负载能力始终在和流量是匹配的,即并不需要像左侧传统云主机架构,需要在技术人员的人为干预下应对流量的波峰波谷;这一切的弹性能力(包括扩容和缩容),均由云厂商提供;这种模式下所带来的好处一方面是降低业务运维人员的压力,以及降低其工作复杂度,另一方面可以看到在用户侧的感知是,真实的资源消耗与所需的资源消耗是成正相关的,可以极大程度的降低资源浪费的情况,在一定程度上也是符合绿色计算思想的。
所谓的按量付费是一种先使用后付费的计费方式,通过按量付费,用户无需提前购买大量资源,而是可以根据资源的使用量进行后付费。即便非Serverless架构的产品或者服务,也具备一定的按量付费能力,例如云主机等产品均有按量付费的选项。但是之所以Serverless架构可以将按量付费作为一种技术红利,其很大的一部分原因在于它按量付费的粒度会更细,在用户侧的资源利用率表现为近乎100%(实际上资源利用率是没有达到100%,仅仅指代的是在请求粒度下,用户侧在Serverless架构下的一种感知)。
以某网站为例,在白天时资源利用率相对较高,夜晚时间段资源利用率相对较低,但是一旦购买了服务器等资源,实际上无论当天流量多少,费用都是持续支出的过程;即便采用按量付费的模型,也会因为计费粒度过粗,而没办法最大可能性地提升资源利用率。按照《福布斯》杂志的统计,在商业和企业数据中心的典型服务器仅提供5%~15%的平均最大处理能力的输出,这无疑也证明了传统服务器的资源使用率过低和浪费过多的情况。
而 Serverless 架构的出现,可以让用户委托服务提供商管理服务器、数据库和应用程序甚至逻辑,这样的做法一方面减少了用户自己维护的麻烦,另一方面用户可以根据自己实际使用函数的粒度进行成本的支付。对于服务商而言,他们可以将更多的闲置资源进行额外的处理,从成本的角度、“绿色”计算的角度来说,都是非常不错的。而从另一个角度,尽管 Serverless 架构的按量付费模型也是按照资源使用量进行收费的,但是计费粒度更为细腻:
在上图中按量部分,是该网站的某天的流量图,图中的蓝色的折线为一个网站在某天的流量走势:通过对“传统云主机架构流量与费用支出示意”与“Serverless架构弹性模式下费用支出示意图“进行对比,不难发现,左侧的传统云主机架构下流量与费用支出示意图,通常业务在上线之前是需要进行资源使用量评估的,当该网站的资源使用量评估之后,购买了一台可以承受每小时最大1300PV的服务器,那么在一整天的时间内,这台服务器所提供的算力总量为橙色面积,所需的费用也是橙色面积对应算力的费用;但是我们明显可以看到,真正有效的资源使用与费用支出仅仅是流量曲线下面的面积,而流量曲线上方的橙色面积部分则为资源损耗与额外的支出部分;而右侧的Serverless架构弹性模式下费用支出示意图,费用支出和流量基本是成正比的,即当流量处于一个较低水位时,对应的资源使用量是相对较少的,同样对应的费用支出也是相对较少的;当流量处于一个比较高的数值时,借助Serverless架构的弹性伸缩能力与按量付费能力,资源使用量和费用支出将会成正相关增长;在整个过程中,能够清晰看到并未像左侧传统云主机架构下流量与费用支出示意图,产生明显的资源浪费与额外的成本支出。
视频应用、社交应用等场景下,用户上传的图片、音视频往往总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。例如:对于用户上传的图片,可以使用多个函数对其分别处理,包括图片的压缩、格式转换、鉴黄鉴恐等,以满足不同场景下的需求。例如:

除此之外,Serverless还可以在实时文件处理,实时流处理、机器学习、IOT 后端、移动应用后端、web 应用程序等多种场景下发挥作用:

阿里云是国内较早一批提供 Serverless 服务的厂商,在过去的几年实践中,也取得了优异的成绩。包括不限于,2021年Q1,Forrester 评测中,阿里云的 Serverless 产品能力位居中国第一;CNCF 2020年云原生调研报告中,阿里云 Serverless市场份额是国内第一;信通院2020年中国云原生用户调研报告中,阿里云Serverless用户占比同样国内第一。

阿里云 Serverless 产品和服务,之所以可以得到广大开发者的认可,其根本原因是阿里云 Serverless 架构安全、技术稳定领先的基础上,还有着以用户为核心的态度。

从上图中,可以看到在最底层是计算平台和 BaaS 产品层。计算产品部分,有事件驱动的—— 函数计算 FC,也有应用 Serverless 化的最佳实践——Serverless 应用引擎 SAE;在 BaaS 服务联动部分,有不同层面的服务,数据库,网络,消息等,而这些产品也正在不断的 Serverless 化,从云到云原生再到Serverless化;在上层有开发者工具和应用中心,为广大开发者提供前后端一体化、WebAPI以及数据库处理、AI推理等一系列的All On Serverless 解决方案和场景。

在生态层面,阿里云 Serverless 团队开源了无厂商锁定工具——Serverless Devs,秉承着让 Serverless 更简单,可以在 Serverless 应用全生命周期发挥作用的态度,Serverless Devs 不仅仅在底层规范模型上,推动信通院一同发布 Serverless 工具链模型,也在工具层面捐赠项目到 CNCF Sandbox,成为了全球首个 CNCF Serverless Tools 中的 Sandbox 项目。
综上所述,做 Serverless 架构,我们是认真的,也是专业的。做感动的产品,做好用的工具,做有责任感的工作,做踏实又创新的内容,感谢大家对阿里云 Serverless 架构的关注。

更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。
一、介绍一下vercelvercel是一个站点托管平台,提供CDN加速,同类的平台有Netlify和GithubPages,相比之下,vercel国内的访问速度更快,并且提供Production环境和development环境,对于项目开发非常的有用的,并且支持持续集成,一次push或者一次PR会自动化构建发布,发布在development环境,都会生成不一样的链接可供预览。但是vercel只是针对个人用户免费,teams是收费的首先vercel零配置部署,第二访问速度比github-page好很多,并且构建很快,还是免费使用的,对于部署个人前端项目路、接口服务非常方便vercel类似于git
Serverless时代已经到来!企业的技术架构,总是伴随着不断增长的数据与日趋复杂的业务持续演进。如何通过构建更易用的技术架构来聚焦在业务本身,而不必在底层基础设施的管理上投入过多的精力,是数据驱动型企业需要思考的重要议题。 ServerlessData作为云原生数据服务的下一代技术架构与“新常态”,正在推动云计算的进一步发展,并且已经成为云原生数据库、大数据分析乃至人工智能等云计算服务的重要发展趋势。Serverless所带来的不仅仅是IT技术领域的创新性飞跃,同时也是数字经济趋势下,企业实现快速发展的重要机遇。十七年持续创新全方位拥抱Serverless从2006年亚马逊云科技的第一个
互联网(信息去中心化)已颠覆世界,区块链(信用去中心化)却要颠覆互联网。一、概述区块链的本质是一个可共享的、可信的、每个人都可以检查的公开账本,但是没有任何一个单一的用户能够控制它。整个区块链系统的参与者一起来不断更新,让这本总账本为最新,它能够且只能按照严格的规则和公开的协议来进行修订。 互联网上的贸易,几乎都需要借助可以信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术,基于密码学原理而不基于信用,使得任何达成一致的双方直接支付,从而不需要第三方中介的参与。二、区块链起源(从比特币到区块链)20
Datawhale干货 作者:钱博文,中国移动云能力中心前言近年来,随着各大厂商的激烈角逐,预训练模型(ThePretrainedFoundationModels,PFMs)的发展可谓百花争鸣,谁都想在这场没有硝烟的战争中力压群雄,作为下游任务的基础,像BERT、GPT-3、MAE、DALLE-E和ChatGPT基于大规模数据训练,可为各种下游应用提供合理的参数初始化。这种迁移学习范式,让预训练模型以一种高傲的姿态在各种任务和应用中大放异彩。特别是最近大火ChatGPT,带着其独有的"思维”在各大领域乱杀,也将人工智能推向了新一轮高潮。本文也是从预训练模型成长的几个关键因素做了系统阐述,旨在
看文章之前,希望各位读者能先点个赞和关注,创作不易。如果实验过程中有什么问题也可私信,看到了一定回文章目录Serverless应用构建零售创新应用是如何运作的?二、项目应用结构前端后端1.部署模板创建堆栈1.1快速创建模板(二选一)1.2进入CloudFormation创建堆栈(二选一)2.构建工作流程第1部分2.1创建stepfunctions下的状态机2.1.1进入stepfunctions2.1.2点击创建状态机2.1.3选择创作方法2.1.4设计工作流2.1.5检查生成的代码2.1.6指定状态机设置2.1.7最后创建状态机状态机工作流总揽序号1参数序号2参数序号3参数序号4参数序号5参
前言博主有幸参加了亚马逊云科技与CSDN联合组织的BuildOn第三季动手实验——基于Serverless构建零售创新应用,实际上早就对无服务应用开发非常感兴趣,一直苦于没有机会去实践,还有就是云厂商对于这个需要付费,所以作为白嫖党,一直处于劝退状态;这次在CSDN看到亚马逊BuildOn活动的开展,也是第一时间报名参加,希望能够更加完整学习无服务器开发知识,并进行应用。实验简介这次实验的主题是:基于Serverless构建零售创新应用在技术创新的驱动下,传统零售服务业正在数字化转型升级。BuildOn将带来通过Serverless的事件驱动架构搭建零售行业场景应用,以满足小微企业的转型需求,
2022年11月,人工智能公司OpenAI推出了一款啥都会的聊天机器人:ChatGPT。它能聊天、能翻译、能做题,还会写情书、写论文、写小说……功能强大到马斯克都表示“我们离强大到危险的AI不远了”。ChatGPT是平地起高楼吗?是横空出世吗?当然不是。伴随着人工智能领域不断更新迭代的研究及不断增长的算力,才有了今天震撼世界的ChatGPT。悠络客自成立以来一直致力于建立前沿深度学习和算法平台。今天,我们就从技术角度出发,立足基本概念和基础研究,循序渐进对ChatGPT及相关热点内容进行介绍。#1NLP(自然语言处理)NLP的全称是NaturalLanguageProcessing(自然语言处
摘要:Serverless能够给企业客户和开发者带来非常直观的收益,包括成本节约和效率提升。作者:冯嘉一、Serverless发展历程及现状1.1.Serverless概念通常意义上来讲,Serverless可以看作是一种云计算服务模型,它允许开发者在不需要管理服务器的情况下通过事件驱动的方式运行代码。与传统应用服务开发模式不同,开发者只需编写并上传他们的应用代码到云服务商提供的平台上,云平台会自动为应用分配资源,并处理应用的部署、扩缩容。这使得开发者可以更加专注于自己的业务需求和应用逻辑,而不需要考虑服务资源的申请、创建、管理和维护等。从这个意义上讲,我们也可以认为Serverless是一个
咩吖,Serverless编程🚄Serverless编程是什么|专注业务为了解决什么问题成功案例DowJones案例开发流程AWSLambda+springboot入门访问Serverless云服务商的服务总结Serverless编程是什么|专注业务Serverless是一种新型的云计算服务模式,可以让开发者在不需要管理底层服务器和运维的情况下,快速开发和部署各种应用程序。Serverless的编程方式主要是以事件驱动的方式进行,即开发者只需要编写函数(Function),并在云端注册事件触发器(Trigger),当事件发生时,函数会自动被调用,完成对应的处理逻辑。Serverless提供了高
上周六(也就是12月24日)那天,我参加了咱们亚马逊云科技BuildOn的第三季,Serverless专场,首先我对这一场的主题,个人是非常感兴趣的,因为目前所在的工作中,其实很多前端开发的小伙伴已经在工作中用到了无服务器开发了,只不过是结合国内的一些其他的第三方产品来做的,还没有运用到亚马逊的一些技术服务来做(但是作为全球云计算、云服务的技术风向标的亚马逊,还没接触直接我都已经感觉亚马逊的云服务器技术应该能做到比国内的一些竞品要更强大了。)好了,闲话不多扯,其实早在活动预热的时候,我都已经参加了本次BuildOn的训练营,玉龙老师先是围绕了传统开发方式与现代无服务器开发方式的鲜明对比,然后针