开发者学堂课程【Serverless 技术进阶:【音频】Serverless应用开发经验】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/995/detail/15011
【音频】从云计算到 Serverless
内容介绍:
一、从云计算到Serverless
一、从云计算到Serverless
自世界第一台通用计算机ENIAC诞生以来,计算机科学与技术的发展就从未停止过前进的脚步。尤其是近些年,计算机的发展更是日新月异,有不断突破和进化的人工智能领域,有5G带来更多机会的物联网领域,还有可信的区块链技术,当然也有不断更新,不断迭代,不断走进“寻常百姓家”的云计算。
说起云计算,不得不说“utility computing”。在1961年麻省理工学院百周年纪念典礼上,约翰·麦卡锡第一次提出了“utility computing”的概念,这个概念可以认为是云计算的一个“最初的””超前的”下降模型,它翻译成现今的大意就是:计算机在未来,将变成一种公共资源。会像生活中的水、电、煤气一样被每一个人使用。1984年,SUN公司联合创始人JohnGage(约翰·盖奇)提出了“网络就是计算机(TheNetworkistheComputer)”的重要猜想,用于描述分布式计算技术。而再过12年,即1996年,康柏(Compaq)公司的一群技术主管在讨论计算业务的发展时,首次使用了CloudComputing这个词,并认为商业计算会向CloudComputing
的方向转移。这也是“云计算”从雏形到正式被提出的基本过程。
自“云计算”被提出之后,其可谓是如同雨后春笋般,蓬勃发展:2003年到2006年间,谷歌发表了TheGoogleFileSystem、MapReduce:SimplifiedData ProcessingonLargeClusters、Bigtable:ADistributedStorageSystemfor StructuredData等文章,这些文章指明了分布式文件系统、并行计算和分布式数据库的技术基础以及未来机会。至此,奠定了云计算的发展方向。2006年,Google首席执行官官埃里克·施密特(EricSchmidt)在搜索引擎大会首次公开正式提出了能计算的概念,同年亚马逊第一次将其弹性计算能力作为云计算服务进行售卖,这也标志着云计算这种新的商业模式正式诞生。两年后,2008年,微软发布云计算平台Windows azure platform,尝试将技术和服务托管化、线上化。到了2019年,UCBerkeley发表了:AbovetheClouds:ABerkeleyView
ofCloudComputing,在该文章中,明确指出:云计算是一个即将实现的古老梦想,是计算作为基础设施这一长久以来梦想的新称谓,它在最近正快速变为商业现实。在该文章中,明确的为云计算做了定义:云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施。同时在该文章中,也提出了云计算所面临的挑战和机遇。
在UC Berkeley的这篇文章中,作者不仅仅对云计算进行了一个比较明确和细腻的定义,提出了面临的挑战和存在的机遇,更对云计算的未来发展方向等进行大胆预测。同年,阿里软件在江苏南京建立首个电子商务云计算中心及现在的阿里云。至此,云计算进入到了更加快速的发展阶段。
如上图所示,在云计算飞速发展的阶段,云计算的形态也在不断的演进。云计算逐渐的找到了正确的发展方向,2012年由Iron.io的副总裁KenForm所写的一篇名为WhyTheFutureofSoftwareand AppsisServerless的文章中,提出了一个新的观点:即使云计算已经逐渐的兴起,但是大家仍然在围绕着服务器转。不过,这不会持续太久,云应用正在朝着无服务器方向发展。这将对应用程序的创建和分发产生重大影响。这篇文章首次将“Serverless”这个词带进了大众的视野。2014年Amazon发布了AWSLambda让“Serverless”这一范式提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系结构,至此再也不需要在服务器上持续运行进程以等待HTTP请求或API调用,而是可以通过某种事件机制处罚函数执行。通常这只需要在aws的某台服务器上配置一个简单的功能。此后,AntStanley在2015年的7月名为ServerareDead**…的文章中更是围绕AWSLambda及刚刚发布的AWS APIGateway这两个服务解释了他心目中的Serverless,并表示服务器已经死了,只是他们还不知道罢了。
到了2015年,在AWS的re:Invent大会上,Serverless的这个概念更是反复地出现,其中包括了TheServerlessCompanyUsingAWSLambda和JAWS:
TheMonstrouslyScalableServerlessFramework的这些演讲。随着Serverless这个概念的进一步发酵,2016年10月在伦敦举办了第一届的ServerlessConf,在两天时间里面,来自全世界40多位演讲嘉宾为开发者分享了关于这个领域进展,并且对未来进行了展望,提出了Serverless的发展机会以及所面临的挑战,这场大会是针对Serverless领域的第一场具有较大规模的会议,在Serverless 的发展史上具有里程碑的意义。
如上图所示,截止2017年,国内外各大云厂商基本上都已经在Serverless进行了基础的布局。尤其是在国内的几大云厂商,也都先后在这一年迈入了“Serverless时代”,从IaaS到PaaS再到SaaS的过程中如下图所示,云计算所表现出的去服务器化越来越明显。那么KenForm所提出来的Serverless又是什么,它在云计算发展的过程中,又在扮演什么角色呢?他的去服务化又到了什么程度呢?
Serverless翻译成中文是无服务器?所谓无服务器,并非是说不需要依靠服务器等词语。而是说,开发者再也不用过多的考虑服务器的问题,可以更加专注的在产品代码上,同时计算资源也开始作为服务出现,而不是作为服务器的概念出现。Serverless是一种构建和管理基础微服务架构的完整流程,允许用户在服务部署级别。Serverless是一种构建和管理基于微服务架构的完整流程,允许用户在服务部署级别而不是服务,如弃部署级别来管理用户的应用部署与传统架构的不同之处在于,它完全由第三方管理,由事件处罚存在于无状态,暂存在计算容器内,Serverless部署应用,无需涉及更多的基础设施建设,就可以基本实现自动构建、部署和启动服务。
近年来,微服务是软件架构领域另一个热门的话题。如果说微服务是以专注于单一责任与功能的小型功能块儿为基础,利用模组化的方式组合出复杂的大型应用程序,那么可以进一步认为Serverless架构可以提供一种更加“代码碎片化”的软件架构范式,而这一部分称之为的软件架构范式,而这一部分称之为Functionasa Services(FaaS)。所谓的“函数”提供的是相比微幅更加细小的程序单元,例如,可以通过微服务代表对某个客户执行所有操作所需的代码,而FaaS中的函数可以代表客户所要执行的每个操作:创建、读取、更新以及删除。当触发“创建账户”事件后,将通过函数的方式执行相应的“函数”。单就这一层意思来说,可以简单地将Serverless架构与FaaS概念等同起来。但是就具体的概念深刻探索的话,Serverless和FaaS还是不同的,Serverless和FaaS被广为接受的关系是:Serverless=FaaS+BaaS(+.....)。
在这个关系中,可以看到Serverless的组成除了FaaS和BaaS之外,还有一系列的省略号。其实这是Serverless给予大家的遐想空间,给予这个时代的一些期待。
随着大厂商逐渐布局Serverless领域,Serverless也逐渐从起启蒙阶段,市场教育阶段向更深一步生产应用,最佳实践阶段前进。
同样在2017年,Serverless 成立了,并且开始以社区的力量推动Serverless快速前进。包括CNCFServerlessWhitepaper、CloudEvents等相关的立项研究与探索,2017年年末,eWEEK的Chris J. Preimesberger发表文章Predictions 2018: Why Serverless Processing May Be Wave of the Future来表达在全新阶段下大家对Serverless的看法。在这篇文章中,有来自知名团队以及公司的相关负责人对Serverless表达了自己的想法。
● SumoLogic产品营销副总裁认为。Serverless可能试剂容器之后的未来。
● AvereSystems技术总监说我们将看到更多Serverless技术和托管服务。
● Atlassian平台负责人指出,2018年将改变软件的构建方式。
● Evident.io的首席执行官和客户解决方案副总裁这样说,容器和Serverless正在兴起,但他们会带来安全问题。
● Contino美国副总裁指出。Serverless将继续增加其影响力。
● 美国OVH的现场布道师原理系统工程师提及,到2018年将会更清楚地认识到Serverless可能解决哪些问题。
● 数据探险首席执行官说,SethNoble将在2018年与其他技术进行集成。
● Platform9首席执行官指出,Kubernetes将在Serverless产品AWS Lambda部署中发挥更大的影响力。
● Accelerite首席执行官表示,Serverless将改变开发模式。到了2018年,Serverless的发展速度要比想象中的更加快速。在这一年,Google发布了Knative,一个基于Kubernetes的开源Serverless框架。它具备构建容器、流量调配、弹性伸缩、零实例、函数事件等能力。AWS发布了Firecracker,一个开源的虚拟化技术。面向基于函数的服务,创建和管控安全的、多租户的容器。Firecracker的目标是把传统虚拟机安全性和隔离。与容器的诉求、资源、效率结合起来。在这一年,CNCF也正式发布了Serverless领域的白皮书,阐述Serverless技术概况、生态系统状态,为CNCF的下一步动作做指导,同时CloudEvnent规范进入CNCF Sandbox。在这一年,UC Berkeley发文Serverless Computing:One Step Forward,Two Steps Back,表达了对Serverless的担忧和挑战。在这篇文章中,作者认为Serverless会对开源服务创新有所阻塞。作者认为Serverless是:One Step Forward,Two Steps Back,关于这个部分,内容描述如下:
One steps forward
是指通过提供自动缩放功能,今天的FaaS产品在云编程方面迈出了一大步,它提供了一种实际上可管理的,看似无限的计算平台。
Two steps back
首先,他们忽略了高效数据处理的中。其次,他们阻碍了分布式系统的开发。
任何一个新的技术概念出现,都会遇到一定的挑战和担忧,就如同当年云计算出现时,也被一些人认为只是又一个商业炒作的概念,毫无新意,甚至蠢不可及当然,事实也证明,任何一个新的事物都只有在经历各种挑战和质疑后,才能更茁壮的成长,Serverless也不例外。从2019年开始,Serverless进入到了一个真正意义上的生产应用最佳实践快速发展的阶段,而2019年对Serverless而言是非常关键的一年,也是Serverless具有里程碑式发展的一年。被很多人定义为“Serverless正是发展的元年”,而这一年不仅有KubeCon在中国上海的CloudNativeCon中关于Serverless的海量主题演讲。这些演讲包括来自Capital one银行的Kevin Hoffman a somebody无服务器和云,IBM的Doug Davis的CNCF CloudEvents项目,迈向无服务器互操作的一步。在这一年,更有UC Berkeley发布的最新文章也被称之为Serverless Double us领域UC Berkeley断言:Cloud Programming Simplified: A Berkeley View on Serverless Computing,在这篇文章中,经历了一年的发展,UC Berkeley的学者们也从1年前的质疑、悲观转变成了一种自信与期待。在这篇文章中,作者犀利断言,Serverless将会在接下来的十年被采用,将会得到飞速的发展。并且说出了一些观点:
1、新的BaaS存储服务会被发明,以扩展在Serverless计算上能够运行更加适配的应用程序类型。这样的存储能够与本地块存储的性能相匹配,而且具有零食和持久可供选择的能力。
2、比现有的X86微处理器更多的异构计算机。
3、更加安全、易用的编程,不仅具有高级语言的抽象能力,还有很好的细粒度的隔离性。
4、基于Serverless计算的价格将低于Serverless计算,至少不会高于Serverful计算。
5、Serverless将会接入更多的后台支撑服务,如OLTP数据库。消息队列服务等。
6、Serverless计算一旦取得技术上的突破,将会导致搜索服务的下滑期。
7、Serverless将会成为云时代默认的计算范式,将会取代斯洛夫计算,因此也意味着服务器客户端模式的终结。
在学术界,不仅仅UC Berkeley对Serverless发表过多篇论文,其实国内外高校都已经在Serverless领域投入足够的精力进行科研探索。就目前来看,Serverless已经成为学术界的研究热点,从2017年开始,每年相关论文数成两倍速增长。
从2012年,Serverless概念被提出之后,2014年AWS带领Lambda开启了Serverless的商业化,再到2017年各大厂商纷纷布局Serverless领域,再到2019年Serverless成为技术议题。在KubeCon被众多人参与探讨,UC不可以发文断言Serverless将引领云计算的下一个十年,Serverless随着时间的不断推进,各种技术的不断进步,正在逐渐的朝着更完整、更清晰的方向发展。随着5G时代的到来,Serverless将会在更多领域发挥至关重要的作用。
从IaaS到FaaS再到SaaS,再到如今的Serverless,云计算的发展,在近十余年中发生了翻天覆地的变化。从虚拟空间到云主机,从自建数据库等业务到云数据库等服务,云计算的发展是迅速的、未来的方向和形态就是模糊的没有人知道云计算的终态是什么。诚然,现在有人说Serverless实现了当初云计算的目标,Serverless才是真正的云计算,但是没有人可以肯定的说,Serverless就是云计算的终态表现,或者Serverless也仅仅是一个过渡的产物,但是这就要交给时间去验证了,目前就不得而知了。