Serverless了解

简介

Serverless指的是由开发者实现的Server逻辑运行在无状态的计算容器中,开发者只需要关注业务逻辑的开发,不需要关注底层资源的调度、管理以及维护服务器等基础设施。这些容器一般由事件触发,根据负载进行自动扩缩容,按需使用,按量付费,能极大的节省用户运维成本和服务使用成本。(Goofy,ByteFaaS就是这一类产品)一般认为其由FaaS(函数即服务)和BaaS(后端即服务)组成。

FaaS

由事件驱动的全托管计算服务,用户只需要编写函数代码以及选择对应的触发器(trigger),如MQ、Cron、HTTP等,其余的诸如流量调度、扩缩容、部署、容灾、监控、日志等功能全部由FaaS服务提供商托管。同时,用户只需要为代码实际运行时消耗的资源付费。

如下一段FaaS代码,用户在使用时调用对应sdk:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import dayjs from 'dayjs';
// import xxx from '~/xxx';
// 可通过 '~/xxx'来引用其他云函数

export default async (params: FaaS.Params, context: FaaS.Context) => {
console.log('invoke faas: ', params);
// 调用其他云函数
// xxx();
return {
message: 'Hello World!',
time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
user: (await sdk.auth.getCurrentUser()) + '111',

token: await sdk.redis.get("xxx'),
};
};

也就是说,FaaS服务商帮我们做好业务之外的事情,我们根据业务需要书写函数就好,而且按量计费的方式也会对有明显波峰的场景节约成本。

BaaS

是一种自动化后端开发和维护云基础设施的平台。使用 BaaS后,开发者将把运维程序逻辑的责任外包给第三方,并将重点放在前端或客户端开发上。BaaS服务提供商将诸如身份验证、文件存储、数据存储、消息通知等多种能力整合,让开发者通过API或者SDK的方式提供,方便缺少后端知识的前端/客户端开发工程师接入,缩短开发周期。

贴一个链接


Serverless了解
https://jing-jiu.github.io/jing-jiu/2022/08/07/探索/ServerLess了解/
作者
Jing-Jiu
发布于
2022年8月7日
许可协议