ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、概述 Serverless并不是说再也不需要服务器了,而是指开发者不用考虑服务器的问题,计算资源作为服务而不是服务器的概念出现; Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务级别而不是服务器级别来部署管理你的应用,甚至可以部署管理某个具体功能或端口的,这就能让开发者更专注于业务,而无需操心计算资源; 2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路; Serverless ,按中文翻译,称为无服务器。这究竟是一种什么样的形态或产品呢?无服务器,就是真的没有服务器吗?其实,在行业内,目前对于 Serverless 有几种解读方法:**在某些场景可以解读为一种软件系统架构方法,通常称为 Serverless 架构;而在有些情况下,又可以代表一种产品形态,称为 Serverless 产品**; Serverless无服务器架构是传统的云计算平台延申,是 PaaS向更细粒度的BaaS和FaaS的发展,Serverless=BaaS+FaaS+...! Serverless 真正实现了云计算的目标; ``` Serverless=FaaS+BaaS ``` >[danger] > 1、Serverless并不是真的无服务,而是关于有服务的不归你管,云服务商帮你搞定,比如腾讯云、阿里云、百度云等; > 2、各大云厂商无服务产品; > ![](https://img.kancloud.cn/18/2d/182d2e7dc322b265ce1ed0ca52f089ed_1920x942.png) > ![](https://img.kancloud.cn/09/bc/09bc531937fb64cdb85f22bc52bdf09f_1920x942.png) ### **函数即服务 FaaS** 函数即服务 FaaS,作为一种新的计算能力提供方式,让用户抛弃了对服务器的配置和管理,仅需编写和上传核心业务代码,交由平台完成部署、调度、流量分发、弹性伸缩等能力。FaaS的出现,会从底层开始变革计算资源的形态,提供了一种新的方式来提供计算资源,同时也会给软件架构与应用服务部署带来新的设计思路,进一步降低云计算的使用门槛,推动全行业在服务架构上的创新步伐; ### **后端即服务 BaaS** 后端即服务 BaaS,其实大家已经使用很久了,这里的后端,指的就是各种云产品和云服务,例如对象存储,消息队列CMQ,云数据库CDB、TDSQL,云缓存CRedis、CMemcached,甚至到各种以 API 形式提供的服务如万象优图 CI,视频处理 VC。这些产品或服务,用户直接开通即可使用,无需考虑部署、扩容、备份、优化、安全等各种运维工作,做到了开箱即用,无需自己去进行服务器或应用的维护和管理,因此同样也是Serverless的一部分; ### **Serverless架构** 利用 Serverless 形态的产品实现的应用架构,这种架构完全依托于云厂商或云平台提供产品完成系统的组织及构建。在这种架构中,用户无需关注支撑应用服务运行的主机,而将关注点投入在系统架构,业务开发,业务支撑运维上; ### **Serverless产品** 无需理解、管理服务器,按需使用,按使用付费的产品。Serverless 产品中,其实也可以包含存储、计算等多种类型的产品,而典型的计算产品,就是**云函数**这种形态; 云函数,或者称为函数即服务 Function as a Service,它和后端即服务 Backend as a Service 一起,都可以称为 Serverless 产品;而通过组合使用这些产品,开发者可以构建自身的业务 Serverless 架构; ### **价值** 1、从开发者使用的来说,不用更多的去考虑服务器的相关内容,无需再去考虑服务器的规格大小、存储类型、网络带宽、自动扩缩容问题;同时,也无需再对服务器进行运维了,无需不断的打系统补丁、应用补丁、无需进行数据备份、软件配置等工作了; 2、Serverless 产品是完全自动化的弹性扩缩容的;在业务高峰时,产品的计算能力、容量自动扩容,承载更多的用户请求,而在业务下降时,所使用的资源也会同时收缩,避免资源浪费; 3、随着完全自动化的弹性所带来的,是全新的计量计费模式;开发者仅需根据使用量来付费,而在深夜无业务量的情况下,不会有空闲资源占用,因此也不会有费用产生; ## 二、技术特点 1. Serverless意味着无维护,代表去除有关对服务器运行状态的关心和担心,它们是否在工作,应用是否跑起来正常运行等等;代表的是你不要关心运营维护问题;有了Serverless,可以几乎无需Devops了; 2. Serverless不代表某个具体技术,尽管有些人会给他们的语言框架取名为Serverless; 3. Serverless中的服务或功能代表的只是微功能或微服务,Serverless是思维方式的转变;从“构建一个框架运行在一台服务器上,对多个事件进行响应;”变为:“构建或使用一个微服务或微功能来响应一个事件;”,你可以使用各种技术框架来实现,Serverless本身超越这些框架概念;框架变得也不那么重要了; ## 三、应用 ### **WEB 及移动后端** 通过结合使用云函数和 API 网关或 HTTP 触发器,可以对外提供 URL 访问地址,成为 Web、小程序、或移动应用等的后端服务。Serverless 架构既可以直接用于构建后台来服务应用,也可以通过类似 BFF 模式,构建中台和应用间的桥梁; ### **物联网** 物联网设备所采集的数据将可以作为云函数的触发事件,而实现数据的实时处理、分析和应用; ### **运维及集成** 通过对接云函数以及云上的各个产品、日志服务、监控告警系统,云时代的运维也都可以用云函数来构建。定时触发的云函数,将可以方便的替代需要在主机上来运行的定时任务;而日志或告警触发的云函数,将可以对云中的事件作出立刻回应及处理; ### **对象存储文件处理** 在 Serverless 应用场景中,由对象存储中的文件上传事件,来触发云函数的运行,也是一种常见场景。针对图片文件的上传,可以借助云函数完成图片的缩略图生成、二维码或水印标记、图片优化处理;而针对数据文件的上传,可以启动数据的自动化分析;