什么是无服务器架构Serverless?有哪些优势?
Posted 梯度科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是无服务器架构Serverless?有哪些优势?相关的知识,希望对你有一定的参考价值。
Serverless架构是云的自然延伸,我们回顾一下云计算IaaS和PaaS的发展,2006年AWS推出EC2(Elastic Compute Cloud),作为第一代IaaS(Infrastructure as a Service),用户可以通过AWS快速的申请到计算资源,并在上面部署自己的互联网服务。IaaS从本质上讲是服务器租赁并提供基础设施外包服务。PaaS(Platform as a Service)是构建在IaaS之上的一种平台服务,提供操作系统安装、监控和服务发现等功能,用户只需要部署自己的应用即可,在PaaS上最广泛使用的技术就要数docker了,因为使用容器可以很清晰的描述应用程序,并保证环境一致性。PaaS是对软件的一个更高的抽象层次,已经接触到应用程序的运行环境本身,可以由开发者自定义,而不必接触更底层的操作系统。
无服务器架构Serverless是服务端逻辑运行在无状态的容器中,由事件触发,被第三方管理,业务层面的状态则被开发者使用的数据库和存储资源所记录。Serverless 是云原生技术发展的高级阶段,使开发者更聚焦在业务逻辑,而减少对基础架构的关注。
Serverless包含了两个领域后端即服务BaaS(Backend as a Service)和函数即服务FaaS(Function as a Service)。BaaS(Backend as a Service),是一个个的API调用后端或别人已经实现好的程序逻辑,FaaS(Functions as a Service),FaaS是无服务器计算的其中一种形式,其中AWS的Lambada使用最多。
如下图是对云计算的分层概括, serverless 就是构建在虚拟机和容器之上的那一层,与应用本身的关系密切:
Serverless 应用优点和应用场景:
1.异步并发,组件独立部署和扩展;
2.应对突发或服务使用量不可预测,可节约成本, Serverless 应用在不运行时不收费;
3.短暂、无状态的应用,对冷启动时间不敏感;
4.无需提前申请资源,可以快速开发迭代的业务;
Serverless 主要应用在ETL、机器学习及 AI 模型处理、图片处理、IoT 传感器数据分析、聊天机器人等场景。
Serverless架构的优点:
Serverless架构,如下图:
在serverless架构中,服务器端代码中不需要存储任何会话状态,直接存储在NoSQL中,应用程序无状态,弹性扩展,前端可以直接利用BaaS而减少后端的编码需求,这样架构的本质上是减少了应用程序开发的人力成本,降低了自己维护基础设施的风险,而且利用云的能力更便于扩展和快速迭代。
Serverless架构的优点主要有:
1.降低成本,资源灵活使用
降低运营和开发成本,Serverless是非常简单的外包解决方案,Serverless作为服务的结果是整个应用程序组件被商品化,产生规模经济效应,降低成本。降低人力成本和运维成本;减少资源开销成本,在申请主机资源一般会评估最大峰值,可能导估值不准确,造成资源浪费,Serverless不计划资源,根据实际需要来请求资源,当根据使用时间来付费,计费的粒度更小,将更有利于降低资源的开销。
2.扩展能力强,管理简单
Serverless架构一个明显的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。从基本的基础设施方面受益最大的好处是,您只需支付您所需要的计算能力。Serverless架构组件更少,架构更简单,管理起来更加简单;
3.降低风险
组件越多越复杂的系统,出故障的风险就越大。使用BaaS或FaaS将它们外包出去,让专业人员来处理这些故障,利用专业人员来降低停机的风险,缩短故障修复的时间,使得系统稳定性更高。
4.增加缩放的灵活性
平台接收到第一个触发函数的事件时,它将启动一个容器来运行你的代码。如果此时收到了新的事件,而第一个容器仍在处理上一个事件,平台将启动第二个代码实例来处理第二个事件。自动的零管理水平缩放,将持续到有足够的代码实例来处理所有的工作负载,默认执行函数最大并发数,避免产生高额的成本。
5.缩短创新周期
以docker为代表的容器技术仅仅是缩短了应用程序的迭代周期,而serverless技术是直接缩短了创新周期,从概念到最小可行性部署的时间,让初级开发人员也能在很短的时间内完成以前通常要经验丰富的工程师才能完成的项目。
许多主流的云服务商不断完善优化产品,未来Serverless 将无处不在,和容器生态将更加紧密融合,Serverless 的计算密度将会持续提高,实现最佳的性能和价格比。未来,serverless架构依然是将处于高速发展状态并产生巨大的影响力。
以上是关于什么是无服务器架构Serverless?有哪些优势?的主要内容,如果未能解决你的问题,请参考以下文章
分布式系统开发实战:什么是Serverless架构?它的典型应用有哪些
SolarWinds:什么是无服务器架构?它有哪些优点和缺点?