函数计算概述

Serverless 为函数即服务(Function as a Service,FaaS)产品,提供无服务器(Serverless)和 FaaS 的计算平台。运行方式依赖事件触发,因此在和触发事件源结合时,云函数就可以被触发源所产生的事件触发运行。


函数计算服务的架构如下图所示:


../../_images/serverless_arch.png

函数计算的主要产品功能包括:

应用集中管理

通过创建产品作为函数应用的集合,实现对函数服务和成员的集中管理。

代码管理

支持多种开发语言,支持在线编辑、本地上传代码 Zip 包,和 Git 同步三种代码上传方式。

函数模板

为不同业务场景提供定制运行环境和代码示例,提供函数模板支持快速创建函数服务。

预配计算资源

预配计算资源,以弹性、可靠的方式运行函数应用的代码,无需手动配置计算资源,函数服务可根据请求量自动横向扩缩,自动安排合理的计算资源满足业务需求。

多种触发方式

提供了一种事件驱动的计算模型。函数的执行是由事件驱动的。函数的执行可以通过 CronJob 与 Kafka 两种方式触发。用户可以在指定函数中创建触发器,该触发器描述了一组规则,当某个事件满足这些规则,事件源就会触发相应的函数。

监控和日志

除了提供对接云的日志服务和监控服务,支持基于日志和监控的多种查询、过滤、告警功能之外,还提升了使用工具的调试能力。

概念

无服务器

无服务器是指对于开发者来说,无需了解底层的服务器情况也能使用到相关资源,因此称为无服务器。无服务器也可以从更广的角度来识别,针对无需配置和了解底层的服务器就可以直接使用的云服务,在一定程度上也可以称为无服务器。在函数服务中,我们针对的是无服务器场景中的计算场景。Serverless 函数服务提供的是无服务器模式下的 FaaS 能力。


函数即服务

函数即服务提供了一种直接在云上运行无状态的、短暂的、由事件触发的代码的能力。

适用场景

函数服务适用于应用后端服务和大规模的数据处理和计算,包括:


IoT/物联网传感器输入消息

随着物联网设备增加,并且多是使用消息协议(如 MQTT),函数服务可以快速响应突然涌入的消息,并实现弹性扩展。


批处理作业或计划任务

适合能以异步方式进行强大的并行计算、IO 或网络访问的作业,可以以弹性方式有效地消费所需的资源,并且在不被使用的剩余时间内不会产生资源成本。


HTTP REST API 和 Web 应用程序

单个 REST 调用(例如微服务中的 GET,POST,UPDATE 和 DELETE),可以独立扩展并单独计费。


持续集成管道

函数服务可以消除传统的 CI 需要预配置主机的需求,构建作业由新代码提交或 PR 合并触发,调用来运行构建和测试用例,仅在所需的时间内执行,并且在未使用时不会产生成本。降低了成本,并可通过自动扩展来减少瓶颈以满足需求。