
上QQ阅读APP看书,第一时间看更新
2.3 BaaS服务介绍
本节主要介绍BaaS服务的产生背景和分类。BaaS服务和FaaS服务密切相关,都是Serverless架构的重要组成部分。
2.3.1 BaaS服务的产生背景
随着FaaS技术的发展,开发者可以通过更便捷、更低成本的方式使用计算资源。随之而来的是对其他关联服务的需求,例如数据库服务、数据存储服务、消息推送服务等。当这些服务被抽象为按需付费、弹性扩缩容平台的时候,用户无须关心底层运维和实现,开发者可以更快速、更低成本地开发移动或Web应用。FaaS结合BaaS的服务形态极大地拓展了开发者的能力边界,众多类似的服务提供商也应运而生。
2.3.2 BaaS服务的分类
BaaS服务的概念非常广泛,也有众多服务商提供不同类型的BaaS服务。BaaS服务可提供一系列具备Serverless特点的服务端/后端能力,整体而言,可以分为以下几类。
- 接入层服务:和FaaS服务结合最紧密的BaaS服务之一,最典型的是API网关服务,通过提供Serverless的接入层,请求弹性伸缩,转发到FaaS服务进行处理。
- 登录/鉴权服务:提供便捷接入的登录鉴权服务,典型的如AWS Cognito。
- 数据库服务:包括非关系型NoSQL和关系型SQL两种,并且符合Serverless的特征,即按需付费、弹性伸缩。Serverless数据库不需要客户管理连接池、优化数据库性能,典型的关系型数据库如AWS Aurora Serverless、腾讯云PostgreSQL Serverless;非关系型数据库有AWS Dynamo DB等。
- 存储服务:用于提供数据的存储,通常用来存储静态资源、视频、图片等文件,能起到加速访问的作用。典型的存储服务如AWS S3、腾讯云COS对象存储等。
- 提醒推送服务:基于消息队列等技术,提供短信、邮件等提醒推送服务,无须用户应用搭建推送服务器,直接调用对应的服务API/SDK即可实现消息推送。提醒推送服务经常用于短信验证、业务告警提醒等场景。
- API服务:通过调用多种API服务,提供成熟的应用解决方案,如基于图像处理、机器学习的图片识别、文字识别、基于自然语言处理的NLP对话平台服务等。这些能力极大地拓展了Serverless技术的覆盖边界,让全面Serverless化成为可能。
本书将在第4章对上述服务的原理进行详细说明,并结合实际应用场景,简单介绍一些产品化BaaS服务平台的使用方法。