Serverless 是什么?
Serverless computing is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. It can be a form of utility computing. -- wikipedia.org
Serverless architectures are application designs that incorporate third-party “Backend as a Service” (BaaS) services, and/or that include custom code run in managed, ephemeral containers on a “Functions as a Service” (FaaS) platform. -- 《Serverless Architectures》
无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如 AWS Lambda 服务),客户端逻辑和服务托管远程过程调用的组合。-- 亚马逊 AWS 官方博客
Serverless(无服务器架构)是指服务端逻辑由开发者实现,运行在无状态的计算容器中,由事件触发,完全被第三方管理,其业务层面的状态则存储在数据库或其他介质中。-- 《无服务架构实践手册》
优缺点
优势
低成本
运维成本
服务器、中间件、数据库等均托管于 BaaS/FaaS 平台,用户无需再参与基础设施及软件的维护,省去了集群的运维成本
开发成本
对比 IaaS 或者 PaaS 平台的服务器或者操作系统,Serverless 的架构中,用户操作的是服务化的组件,比如存储服务、授权服务等,可以缩短开发周期,节约时间成本
按需计费
Serverless/FaaS 区别于 IaaS/PaaS 预先分配计算资源的计费方式,其计费方式通常是按请求次数及运行时间。如此一来,不仅可以最大程度地利用资源,还能实现真正的按需计费,以降低用户的使用成本
高扩展
自动进行横向扩展(毫秒级部署,秒级生命周期)
高资源利用率
提供细粒度的计算能力,最大限度满足实时需求,使得资源利用率大幅度提升
NoOps
运维的发展经历了,人肉运维、自动化运维、DevOps、AiOps 等。而 Serverless 模式下,用户只需要关心业务编码,真正实现了零运维成本
从更广泛的意义上来讲,Ops 除了指服务器维护,还会包括部署、网络、安全、监控、故障恢复和水平扩展等
劣势
状态管理
对于有状态的服务,使用 Serverless 可能会导致灵活性降低
延迟
Serverless 应用程序是无状态、分布式、低耦合的,导致很难实现低延迟
应用场景
流式事件处理(视频流、图片流等)
事件驱动架构
响应式架构
IoT 物联网
资源利用率低的业务(大部分时间空闲,只在固定时间触发计算)
流量突发场景(难以预估流量高峰的峰值或时间点)
混合云场景
边缘计算
架构
Serverless 发展路线图
公众号不支持渲染甘特图,详见《宇宙湾》原文
云计算发展路线图
IDC
物理机房
IaaS
定义
IaaS,全称 Infrastructure as a Service,表示基础设施即服务,也有称作 Hardware as a Service
分类
公有云
公有云是放在公共的互联网上的,只要是平台上的用户都可以使用
私有云
私有云是为某一个客户单独构建,可以最大程度地保证数据安全和服务质量
混合云
混合云融合了公有云和私有云,将重要数据保存在本地私有云环境,同时将非核心数据上传公有云处理
平台
国内
阿里云™、知名 IaaS 平台™、青云™、盛大云™、华为云™、太平洋电信™、51IDC™、UCloud™
国外
Amazon AWS(Elastic Compute Cloud)™、Google Compute Engine™、EMC™、IBM™
PaaS
定义
PaaS,全称 Platform as a Service,表示平台即服务。用户可以自己部署操作系统和软件
平台
国内
AppCan™、APICloud™、Testin™、Coding™、八百客™、云之讯™、追信魔盒™、机智云™
国外
Google App Engine™、Amazon Elastic Beanstalk™、Microsoft Azure™、VMware Cloud Foundry™
SaaS
定义
SaaS,全称 Software as a Service,表示软件即服务。软件的开发、管理、部署都交给第三方,不需要担心任何技术问题,可以拿来即用。省去技术团队,直接应用云端系统进行运营和使用即可
平台
国内
阿里钉钉™、用友超客™、明道™、今目标™、Tower™、纷享销客™、红圈营销™、小满科技™、腾腾科技™、麦客™、美洽™、销售易™、快消总管™、EC 营客通™、店小三™、逸创云客服™
国外
Salesforce™、Sales cloud™、Zendesk™、Zoho™、IBM Lotus Live™
BaaS
定义
BaaS,全称 Backend as a Service,表示后端即服务。为客户(开发者)提供整合云后端的服务,例如提供文件存储、数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用
FaaS
定义
FaaS,全称 Function as a Service,表示函数即服务。服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护基础架构。按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用