无服务器如何改变应用开发?


无服务器VSFaaS服务在最近奥斯汀的Serverlessconf中,关于主题演讲最引人注目的事情是,多少种不同的无服务器定义都被抛在脑后。这表明了这项技术的生命周期有多早,但一般来说,参与这一运动的大多数人都会同意“无服务器”指的是软件架构,而“功能即服务(FaaS)”描述了开发人员在该体系结构中实现业务逻辑的关键机制。例如,你可以在AWSS3服务上运行一个静态的HTML网站,这将被视为无服务器架构。但是在商业逻辑中,如果没有消费者数据的用户交互,那么这个网站也做不了很多事。现在,四大云服务商都提供FaaS服务。我看到FaaS的最佳定义是由ServerlessFramework首席执行官奥斯汀·柯林斯提供的,他们的公司可能是这个领域最热门的创业公司。对于柯林斯,FaaS的定义特征如下图所示:FaaS平台的内部运作在历史背景下考虑FaaS运行时间,根据多长时间把一个计算单元可用于一段代码是有帮助的。在20世纪90年代初,我们只有裸机来运行我们的代码,而获得一个新的计算单元需要几个月。随着虚拟机管理程序的发明,虚拟机能够缩短到几分钟。使用不需要管理程序开销的不同Linux内核资源分离技术,容器现在可以在几秒钟内给我们一个计算单元。FaaS平台又是如何实现毫秒级的响应?想象一下,已经分离容器的装配线在其中具有语言运行时,如Node.js或Python,但还没有业务逻辑代码。当事件被触发时,只有这样,存储你写入该事件的业务逻辑的函数才能从磁盘中读取,并将其插入预热容器中,并使用相应的语言。这个序列会有变化,包括将代码放在一个完全温暖的容器中,以便下一次处理相同的事件。但关键概念是FaaS平台以创造性的方式使用容器,并将功能执行映射到特定的事件。当你链接这些事件(如数据库写入或IoT设备信号)时,电源就会从更小的组件中创建更大的应用程序。这一切都将走向哪里?如果看看罗杰斯创新采纳曲线,那么无服务器仍然是一个年轻的市场,位于曲线的开始阶段。但是,已经有一些大玩家落后了(传统的IT决策者绝不会因为在这上面打赌而被解雇),很多健康的开源替代品,以及为初创公司提供免费工具的市场开端。无服务器一个有趣的方面是它有可能把供应商锁定的概念放在头上。假设你真的喜欢亚马逊Polly的语音转文本,但你更喜欢IBM沃森进行文字情感分析。你的前端应用程序可以记录口语,将记录发送到AWS上的Polly,并将结果发送到沃森。因此,你可以为特定任务找到正确的工具,而不是被锁定在一个供应商或生态系统中。当你使用功能即服务构建时,各个部件足够小,松动耦合足以选择每个提供商。