1.2 Serverless技术能力

Serverless领域包含FaaS和BaaS。BaaS涵盖广义的第三方服务,例如经典的对象存储服务、数据库存储服务、缓存服务等。BaaS不是本书介绍的重点,本书介绍的重点是FaaS,FaaS是Serverless领域中计算引擎的一个重要产品形态,其遵循服务函数化理念,支持一键创建和部署函数,能够屏蔽资源和运维细节,极大地降低开发者的开发和运维成本。本书将重点介绍FaaS的高可用架构和核心技术,从大规模落地实践出发,介绍触发器和弹性伸缩的实现原理,接着探讨以应用为中心的广义Serverless演进的技术突破,从云上的经典FaaS运行时到轻量级运行时,赋能云边一体的关键技术落地实践。

Serverless以FaaS作为底层各个基础组件的“黏合剂”,对接消息队列、对象存储事件、数据库binlog等,高效完成事件处理领域的开发需求。Serverless支持微服务体系、HTTP(hypertext transfer protocol,超文本传送协议)服务、RPC(remote procedure call,运程过程调用)服务、异步模式,支持PaaS(Platform as a Service,平台即服务)到FaaS的演进。FaaS产品主要提供的技术能力如下:

支持Go、Python、Node.js、Rust、Java等定义函数或者服务,提供依赖管理和部署发布的能力;

支持消息队列、对象存储触发器、数据库binlog触发器、定时触发器以及HTTP调用;

支持原生HTTP,用户可搭建原生HTTP应用;

支持gRPC/Thrift RPC,用户可搭建原生RPC应用;

支持轻量级运行时WebAssembly、V8,以及配套的Global KV、Local Cache等存储产品,部署云端和边缘机房。