函数计算概述¶
Serverless 为函数即服务(Function as a Service,FaaS)产品,提供无服务器(Serverless)和 FaaS 的计算平台。运行方式依赖事件触发,因此在和触发事件源结合时,云函数就可以被触发源所产生的事件触发运行。
函数计算服务的架构如下图所示:
函数计算的主要产品功能包括:
应用集中管理¶
通过创建产品作为函数应用的集合,实现对函数服务和成员的集中管理。
代码管理¶
支持多种开发语言,支持在线编辑、本地上传代码 Zip 包,和 Git 同步三种代码上传方式。
函数模板¶
为不同业务场景提供定制运行环境和代码示例,提供函数模板支持快速创建函数服务。
预配计算资源¶
预配计算资源,以弹性、可靠的方式运行函数应用的代码,无需手动配置计算资源,函数服务可根据请求量自动横向扩缩,自动安排合理的计算资源满足业务需求。
多种触发方式¶
提供了一种事件驱动的计算模型。函数的执行是由事件驱动的。函数的执行可以通过 CronJob 与 Kafka 两种方式触发。用户可以在指定函数中创建触发器,该触发器描述了一组规则,当某个事件满足这些规则,事件源就会触发相应的函数。
监控和日志¶
除了提供对接云的日志服务和监控服务,支持基于日志和监控的多种查询、过滤、告警功能之外,还提升了使用工具的调试能力。
概念¶
无服务器
无服务器是指对于开发者来说,无需了解底层的服务器情况也能使用到相关资源,因此称为无服务器。无服务器也可以从更广的角度来识别,针对无需配置和了解底层的服务器就可以直接使用的云服务,在一定程度上也可以称为无服务器。在函数服务中,我们针对的是无服务器场景中的计算场景。Serverless 函数服务提供的是无服务器模式下的 FaaS 能力。
函数即服务
函数即服务提供了一种直接在云上运行无状态的、短暂的、由事件触发的代码的能力。
适用场景¶
函数服务适用于应用后端服务和大规模的数据处理和计算,包括:
IoT/物联网传感器输入消息
随着物联网设备增加,并且多是使用消息协议(如 MQTT),函数服务可以快速响应突然涌入的消息,并实现弹性扩展。
批处理作业或计划任务
适合能以异步方式进行强大的并行计算、IO 或网络访问的作业,可以以弹性方式有效地消费所需的资源,并且在不被使用的剩余时间内不会产生资源成本。
HTTP REST API 和 Web 应用程序
单个 REST 调用(例如微服务中的 GET,POST,UPDATE 和 DELETE),可以独立扩展并单独计费。
持续集成管道
函数服务可以消除传统的 CI 需要预配置主机的需求,构建作业由新代码提交或 PR 合并触发,调用来运行构建和测试用例,仅在所需的时间内执行,并且在未使用时不会产生成本。降低了成本,并可通过自动扩展来减少瓶颈以满足需求。