要定义无服务器架构(以下称SA),请考虑它不是什么。SA并不意味着没有物理基础设施或机器。SA实际上是一个从企业角度来看的术语。
建立后端基础设施需要时间和持续维护。设置物理机或虚拟设备,安装应用程序,版本控制,配置,扩展,负载平衡,故障安全机制,访问限制......列表是无止境的。一般而言,后端即服务(BaaS)或云计算通过繁重的工作来缓解大部分任务,因此,毫不奇怪,它在软件开发中的受欢迎程度。但任何问题都没有银弹。
BaaS / Cloud面临着自身的挑战。想象一下,在任何流行的BaaS平台上运行的服务每隔“M”分钟处理“N”个请求。我们假设这导致CPU使用率为5%。如果您将服务处理的时间与24小时,一周,一个月等进行比较,则使用此费率......使用成本效率极低。输入FaaS(功能即服务)或无服务器体系结构。
FaaS或SA使企业能够“按需”运行服务器组件
无服务器体系结构基本上包括运行一小段时间并由事件作为公共HTTP请求或有时间限制(Timer)触发或调用的函数。当这样的请求上升时,FaaS平台启动,初始化(如果还没有)并执行该功能。执行完成后,系统将关闭,直到下一次执行。因此,与传统的BaaS“永远在线”设置不同,我们有一个“并不总是”无服务器架构。请注意,此过程因提供商而异!
无状态
SA最适合无状态执行。由于服务器配置和基础架构现在由云提供商管理,因此无法保证将保留先前调用服务所维护的状态。这并不意味着FaaS不支持有状态操作,而只是声明任何状态都需要在FaaS实例之外处理。作为无服务器的状态完整操作的一个非常好的示例是通过AWS Lambda上传到S3
自动缩放
在扩展方面,SA的好处是巨大的。水平扩展是自动的,由底层平台处理。如果在特定时间点传入流量很高,则调用FaaS的多个实例。如果流量暂停,则实例会自动减少。该平台甚至可以处理底层资源管理和分配
实施/部署
FaaS函数可以在各种语言中实现,并且不需要对任何特定框架或任何库进行编码。例如,所有主要提供商都支持JS,Go等语言。代码/功能是编写的,只需上传即可。通过AWS lambda等服务,可以在AWS控制台本身编写代码。需要零配置。对于像产品创业这样的中小型组织来说,这是一件非常重要的事情.
优点
缺点
结论
无服务器架构只是一种范式,其中设置,扩展,配置服务器端系统的责任被委托给另一个实体。它提供成本效益,更精简的开发时间,可以为企业带来连带效应。同时,它根本无法取代构建在不同架构模型上的所有现有系统。可以作为FaaS实现的是依赖于上下文的!