1. 课程导入与Serverless全景
在传统应用部署中,我们通常先申请计算实例、安装运行时、配置网络与安全组,再部署应用并持续维护操作系统补丁、扩缩容策略和空闲资源。Oracle Cloud Serverless 的核心思路是把“服务器生命周期管理”从开发者职责中剥离出来:你只交付代码、容器镜像或函数逻辑,平台负责按请求或事件触发、按需分配计算资源、自动伸缩,并在没有流量时缩容到零。这里的“无服务器”并不是没有服务器,而是服务器不再由你直接管理。
Oracle Cloud 的 Serverless 能力主要由三块组成:OCI Functions(函数即服务,FaaS)、OCI API Gateway(托管 API 入口)以及 OCI Container Instances / OKE 虚拟节点等容器化无服务器形态。它们共享一个关键特征:资源按使用量计费,空闲不产生计算费用。理解这一点,是理解后续所有架构设计取舍的起点。
1. 零运维——无需管理主机、补丁、扩缩容;
2. 弹性伸缩——从 0 到高并发自动响应,无需预置容量;
3. 按需计费——按调用次数、执行时长和内存规格计费;
4. 事件驱动——天然对接对象存储、消息队列、数据库变更等事件源。
那么它适合什么场景?典型适用场景包括:突发或不可预测流量的 Web API、图片/视频上传后的异步处理、定时批处理任务、事件驱动的数据管道、以及需要快速验证的微服务原型。相反,长时间稳定高负载、对冷启动极度敏感、或需要复杂本地状态的应用,则未必是 Serverless 的最佳选择。这个判断标准会贯穿整个课程。
为了把“是什么”落到“怎么做”,我们先看一个最小可运行示例。假设你要在 OCI Functions 中部署一个处理图片上传的函数,典型流程如下:
# 1. 创建应用(函数容器)
oci fn application create \
--compartment-id <compartment_ocid> \
--display-name demo-fn-app \
--subnet-ids '["<subnet_ocid>"]'
# 2. 生成并部署函数
fn init --runtime python demo-fn
cd demo-fn
fn deploy --app demo-fn-app
# 3. 调用测试
fn invoke demo-fn-app demo-fn
这段命令背后发生了三件事:函数代码被打包成容器镜像并推送到 OCI Registry;平台在指定子网中创建执行环境;调用时按需拉起实例执行。你可以通过 fn invoke 观察返回结果,也可以在 OCI 控制台的函数指标中查看调用次数、执行时长和错误率。判断部署是否成功,关键看三点:函数状态为 Active、调用返回预期输出、指标中出现对应调用记录。
接下来需要建立整体学习路径。本课程共 30 章,建议按“认知—构建—集成—运维—优化”五个阶段推进:
- 认知阶段:理解 Serverless 定义、计费模型与适用边界;
- 构建阶段:掌握 Functions 开发、部署、配置与 API Gateway 暴露;
- 集成阶段:对接对象存储、消息队列、数据库与事件规则;
- 运维阶段:日志、监控、告警、权限与网络配置;
- 优化阶段:冷启动治理、并发控制、成本分析与架构演进。
下面这张图把本节的核心对象、触发路径与学习路径放在同一张关系图中,帮助你在进入后续章节前建立全局坐标。