Serverless直译是无服务器的意思,俗称“无服务器架构”;所谓“无服务器”,并不是说基于 Serverless架构的软件应用不需要服务器就可以运行,其指的是用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量,软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。传统的软件开发流程中,软件开发人员需要考虑真正的服务器,因为应用是跑在这个服务器上的,服务器之间相互通过网络通信,通过IP去互相发现,如果服务器down掉,也需要去考虑应用的恢复等等问题。而无服务器架构中应用和服务完全依赖于第三方服务,比如认证,存储,数据库等等,可以称为后端即服务(BaaS),整体采用云平台提供的生态系统。
Serverless早期用于描述那些大部分或者完全依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用,这些应用通常是富客户端应用(单页应用或者移动端 App),建立在云服务生态之上,包括数据库(Parse、Firebase)、账号系统(Auth0、AWS Cognito)等,这些服务最早被称为“(Mobile) Backend as a Service”,简称为 “BaaS”,其中AWS Lambda 是目前热门的FaaS 实现之一,包括国内前几年较火的低代码平台也是Serverless的一种早期形态。
实际上,不管是哪种角度去看可以了解到无服务器架构很大的依赖于云平台的基础特性,高可用,X即服务(XaaS)等,这样应用的开发者需要的各种后端服务只需要从云中获取接口使用即可,而所有的通信都是基于事件、消息的,各个服务和应用可以完成解耦,这样开发者完全不用考虑是否存在服务器,都不需要提供、管理服务器的状态下运行自己的代码。
听了极客时间,蒲松洋,Serverless入门课的前几节,对Serverless有了基本的概念,大前端的愿景还是相当诱人的!
Serverless指的是什么?主要有狭义和广义两种理解,狭义的Serverless,即Serverless计算架构 = BaaS+FaaS;广义的Serverless = 服务端免运维(No-OPS);具备这两种特性的云服务即称为Serverless服务!
先看广义的Serverless,全知全能的服务(即自动化工具)覆盖研发部署所有的需要,当然,No-OPS是理想状态,所以是Serverless,不是ServerZero,智能无限逼近No-OPS;Server限定了解决问题的边界,即服务端运维,less说明了解决问题的方向,即No-OPS,结合在一块就是服务端免运维;Serverless要解决的问题,让研发同学的工作只关心业务,不用关心部署、运维监控等各种线上问题,Serverless就是对互联网的服务端运维工作进行抽象的结果。Serverless对Web服务开发的革命性作用之一,就是极度的简化了服务端运维的模型,使一个服务端新手,也能搭建一个高性能、低成本的服务端应用!
服务端免运维(No-OPS)会不会对后台研发产生影响,当然有,后台开发人员要转型,转型做更底层的服务,做基础架构的建设,提供更加智能,更加节省资源的服务,上层的同学更专心地做业务,后台工程师则可以转型为底层架构师!
Serverless可以简单理解为让开发者较少关心服务端,Server解决问题的边界是服务端的运维,Serverfull是服务端运维由后台开发人员负责,而Serverless服务端运维主要由自动化工具负责;Serverless + Node.js 激发了前端工程师的创造力,让前端工程师享受云时代的红利,学习Serverless是前端开发者最合适的切入点!
一点体会:
当前众多云平台公司在大力推广应用Serverless平台产品,包括国内的低代码平台作为Serverless另一种形式的存在,也在持续发力,当然,相对云平台厂商表现的热情更高些;他们更多是直接将Serverless平台作为开放产品进行推广和应用,服务对象是不具备Serverless架构能力,但又希望享受Serverless红利的中小型软件公司;对于使用自有平台业务产品的开发,则需要在建自有平台的基础上,实现业务的Serverless化,当前应用Serverless的主要的方式有:
1. 自建云平台,构建私有的Serverless平台,自有产品逐渐Serverless化;
2. 使用三方的Serverless平台;
通俗的理解,对类似运营小程序的初创公司来说,原来需要团队去构建小程序后端的所有业务,包括认证,会员,ERP,购买,支付等等复杂的业务都需要重新实现一遍,后端团队和服务器运维成本高企,无论是使用自建私有云或者公有云PaaS平台,需要付出的开发和运维成本都很高!而依托开放Serverless云平台,则只需要前端同事,编写前端业务逻辑,利用云厂家提供的BaaS和FaaS能力,编排后端业务,然后上传到云平台,就可以快速验证业务,由此所带来的成本节省是非常可观的。
参考:
https://github.com/pfan123/Articles/issues/41
https://jimmysong.io/Serverless-handbook/core/overview.html
https://github.com/cncf/wg-Serverless
-------------------广告线---------------
项目、合作,欢迎勾搭,邮箱:promall@qq.com
本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com