1.无服务器架构
在云计算不断发展的背景下,无服务器架构(Serverless Architecture)作为一种新的服务架构和云计算模式被提出。Serverless
中的“-less”并不是指不再需要后端服务器,而是指开发人员可以摆脱后端服务器的设置和管理工作,将这些操作交由云服务商来完成,自己则专注于业务的开发。无服务器架构是一种以事件驱动的云计算模式,通过在云端部署一系列的“云函数(Cloud
Function)”并绑定相应的事件源,将其组织为微服务来支撑应用程序的运行。
无服务器架构的主流表现形式为Serverless = FaaS+BaaS,两者各有侧重:
(1)FaaS(Function as a
Service,函数即服务)指的是一系列由开发人员编写和部署、由云服务商统一进行调度和管理的云函数。每个云函数可以看作是系统中的一个执行单元,具有无状态的特点,且一般由事件驱动。当云函数被触发时,云服务商会根据被执行程序的资源需求实例化相应的临时容器来运行它,并在请求执行完毕后的一段时间内回收容器资源。云服务商通过统计云函数执行的次数或时间来按量收取费用,这是无服务器架构具有成本优势的重要原因。
(2) BaaS(Backend as a
Service,后端即服务)泛指其他一切可在云函数中调用的云服务,通常包括消息队列、对象存储、数据库等服务,这些服务通常也按照使用量进行付费。BaaS
的存在使开发人员在编写云函数时不用再考虑其他云服务的运维工作。
![无服务器架构 无服务器架构](//ziboxinyan.com/FileUpload/ueditor_s/upload/2022-9/9/63798339996560.jpg)
2.无服务器架构的优势
(1)开发速度更快
由于开发人员仅需专注于业务逻辑功能的开发,无需关心应用系统部署、调度、流量分发、弹性伸缩等功能的研发,软件架构和软件功能实现都大大简化,不仅节省开发时间,更可提升开发效率,降低开发难度。
(2)简化设备运维
在 Serverless 架构中,开发人员面对的将是自定义或者第三方开发的 API 和
URL,云厂商部署好底层基础设施与运维设施,让开发人员专注于核心代码和应用的开发。
(3)提升可维护性
目前,一些公有云服务中提供了大量的服务,如登录、鉴权服务,云数据库服务等第三方服务,它们在安全性、可用性、性能方面都进行了大量优化,在
Serverless 架构下,第三方公司集成了各类服务,运维服务的有效性得到很大的提升,降低成本。
(4)低运营成本
在传统应用系统的部署实施中,必须按业务峰值需求来构建业务系统,但在大部分时间里该业务系统是空闲的,这就导致了严重的资源浪费和成本上升。在
Serverless 架构下,不同用户能够通过共享网络、硬盘、CPU 资源,峰谷时按需自动缩容,按调用次数收费,不调用不收费,有效节约企业成本支出。
3.无服务器架构的特点
(1)自动扩缩容
用户无需关注 FaaS 函数的水平扩展,Serverless 平台会自动根据调用量扩展运行代码所需要的容器,轻松做到高并发调用。函数即应用,各 FaaS
函数可以独立地进行扩缩容,粒度小扩容快。
(2)运行成本更低
目前主流的公有云计费模式都采用包月计费模式,比如你在亚马逊公有云上申请一台虚拟机后,不管有没有用户访问你的应用,也不管你有没有部署应用,你都要付相同的钱。而对基于
Amazon Lambda 开发的 Serverless 应用来说,你只需要根据实际使用的资源量(FaaS 执行次数 ×FaaS 函数的运行时间 ×
计算资源模板费用)进行付费,也即用多少付多少,不用不收费。
(3)No0ps
计算资源服务化,用户通过 API 使用计算资源,以用户算法代码为核心,不关注基础设施的部署,Serverless 是把 Ops 外包给第三方平台,让
Dev专注于业务逻辑的实现而不用操心 Ops 相关的工作。
(4)事件驱动
FaaS函数是短暂且临时的,用完就销毁,FaaS函数在接收请求时产生资源消耗,不使用就没有消耗,用完资源后就会马上释放。
以上梳理了无服务器架构的定义、特点及优势,希望对你有所帮助,如果你想了解更多相关内容,敬请关注三个皮匠报告的行业知识栏目。
推荐阅读:
什么是无服务器计算?优势有?应用介绍
什么是服务器虚拟化?好处有哪些?
什么是网络服务器?分类有哪些?作用介绍