聊聊 Serverless
Serverless is like teenage sex: Everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.
每种新技术,都是这样的。最开始大家都在谈论,都不知道怎么落地,最诡异的是大家都是自己在做。
2019 年 2 月,UC 伯克利大学发表了一篇标题为《Cloud Programming Simplified: A Berkeley View on Serverless Computing》的论文,论文中也有一个非常清晰形象的比喻,文中这样描述:
在云的上下文中,Serverful 的计算就像使用低级的汇编语言编程,而 Serverless 的计算就像使用 Python 这样的高级语言进行编程。例如如 c = a + b 这样简单的表达式,如果用汇编描述,就必须先选择几个寄存器,把值加载到寄存器,进行数学计算,再存储结果。这就好比今天在云环境下 Serverful 的计算,开发首先需要分配或找到可用的资源,然后加载代码和数据,再执行计算,将计算的结果存储起来,最后还需要管理资源的释放。
serverless落地实现的话,搬砖的工作,大部分人会失业。
基础设施,架构,业务设计和实现,彻底分开了。
软件工程,真正走向建筑工程。
一部分人研究新材料,做成新的预制板,钢精,玻璃,一部分人做设计,设计大楼,一部分人设计装修,,,一部分人或机器搬砖,实施。
好消息是,距离我们还有一段较长的时间。
晓磊:华为云早就有了serverless服务了。感觉是提供一个运行环境,nodejs的这种代码非常合适,丢上去就运行了。是不是一个东西?
回复:现在的serverless,都是炒概念,还没搞出了工业级可用的东西。
按现在的一些所谓serverless,以前的asp/php就成,云厂商部署一个iis或apache server,然后建几个虚拟目录,让用户往里丢asp/php代码或文件,实时生效。
对外看起来,是不是就是一个serverless?
可以参考《Cloud Programming Simplified: A Berkeley View on Serverless Computing》,了解一下好好思考什么是serverless。
现在的开发人员可以看做是在做汇编语言,你需要考虑怎么去部署,这叫面向申请资源去编程。所谓的云计算,实际上也是给你预留了多少内存、多少核,你付钱的是这些预留资源,无论你部署不部署应用,你的虚拟机,云磁盘,云数据库,都在计费。
到了serverless时代,你就只需要考虑你的计算逻辑,它不需要考虑任何部署方案。你也不用买云主机,买云磁盘和数据库。你的应用逻辑代码,会被整个基础设施调度和执行。并且只有被执行了,才按执行的次数,或占用的资源计费。
发现了没?天生无状态,天生支持弹性。所有的高可用问题,基础设施帮你做掉,啥也不用考虑了。软件工程的工业化时代,到这时候真正来临了。
版权声明: 本文为 InfoQ 作者【kimmking】的原创文章。
原文链接:【http://xie.infoq.cn/article/be91835661d0f73e53b13086a】。文章转载请联系作者。
评论