赞
踩
Serverless(又称为无服务器)架构是一种全新的云计算模式,它是在容器技术和当前服务模式基础之上发展起来的,它更多的是强调后端服务与函数服务相结合,使开发者无需关注后端服务具体实现,而更侧重关注自己业务逻辑代码的实现。
随着云原生技术的不断发展,应用部署模式已逐渐趋向于“业务逻辑实现与基础设施分离”的设计原则。Serverless架构完美诠释了这种新型的应用部署模式和设计原则。从云原生整体发展路线来看,Serverless模式更趋近于云原生最终的发展方向。
云计算发展历程从IaaS(Infrastructure as a Service,基础设施即服务)到PaaS(Platform as a Service,平台即服务),再到SaaS(Software-as-a-Service,软件即服务),逐渐的将去服务器化的趋势表现的愈发明显,而SaaS的下一个阶段可能就是
BaaS+FaaS+Others,即Serverless。
提到Serverless,我们首先得解下什么是BaaS和FaaS。
BaaS(Backend as a Service,后端即服务)和FaaS(Functions as a Service,函数即服务)是Serverless两种主要的实现方式。BaaS可以理解为是一个整合和开放各种在应用开发中需要的服务能力的平台,它通过创建大量重复的代码功能,方便应用基于服务的快速开发和构建。FaaS是Serverless主要的实现方式,开发者通过编写一段逻辑代码来定义函数调用方式,当事件触发时函数被调用执行。
FaaS本质上是一种事件驱动并由消息触发的服务,事件类型可以是一个HTTP请求,也可以是一次用户操作,函数可以看作是完成某个功能或任务的代码片段。相比传统应用运行模式,Serverless业务代码被拆分成了函数粒度,不同函数表示不同的功能,函数之间调用关系也更加复杂。
云计算发展历程与FaaS所处的地位
通常Serverless应用都是基于无服务器应用框架Serverless Framework构建完成的。开发者无需关心底层资源,即可快速部署完整可用的Serverless应用架构,同时Serverless平台具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期,帮助开发者联动各类云组件资源,迅速构建完整的 Serverless 应用。
目前常见的云厂商Serverless应用服务支持各类 Web 框架快速创建、迁移上云,可以实现Express、Next.js、Python Flask、PHP Laravel、Koa、Egg.js、Nuxt.js等框架应用的快速部署。开发者无需进行复杂的配置,通过Web Fuction即可快速搭建各类场景下的Serverless应用,轻松实现云函数、API网关、COS、DB 等资源的创建、配置和部署。Serverless提供从初始化、编码、调试、资源配置和部署发布,到业务监控告警、实时日志、故障排查的一站式解决方案。
从架构层面来看,Serverless由BaaS和FaaS共同构成了完整的应用架构。Serverless计算平台可以帮助开发者完成构建服务运行环境,开发者无需购买服务器,云厂商负责提供并维护基础设施资源和后端服务组件。Serverless架构具有自动扩缩容的特性,当应用部署后云计算平台会为Serverless应用提供足够的资源来支持应用稳定运行。
Serverless组件架构图
无服务器云函数(Serverless Cloud Function,SCF)是一种为企业和开发者们提供的无服务器执行环境。开发者通过Web IDE或者本地IDE编写代码,然后将代码和所需依赖一起打包部署到云函数平台。开发者会在业务代码中会提前定义好函数具体调用方式,如访问数据库、对象存储、第三方服务等接口,用户通过提前定义好的请求方式去访问对应的服务,平台会根据用户请求去拉起相应的计算资源运行业务代码。
Serverless运行原理图
由于Serverless后端基础设施和服务主要是由云厂商负责的,但是Serverless应用本身是面向
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。