库存 Lambda 工作负载
创建具有足够证据的迁移记录,以重现和比较源行为。
要清点 lambda 工作量,请执行以下步骤:
- 记录配置、部署路径、相关项、层、本机库、环境变量、VPC 设置、IAM 角色、触发器、责任人和运营联系人。
- 捕获基线度量:调用速率、峰值并发性、p95 和 p99 持续时间、最长持续时间、已用内存、有效负载大小、错误、超时、限制、重试次数、DLQ 或故障计数、队列使用时间或积压、预警阈值以及下游容量限制。
- 保存具有代表性的成功事件、格式错误的事件、重复事件、超时案例、权限故障、下游故障示例以及编写敏感值的源日志示例。
查找:包含证据链接、初始风险注释和需要所有者确认的缺口的完整库存记录。
输出:不要仅依赖于配置导出。日志、度量、预警和代表性事件通常会揭示配置本身未显示的行为。
评估 OCI 函数迁移的每个采样函数
记录每个采样函数的要求、所需的更改和迁移决策。
要评估 OCI 函数迁移的每个采样函数,请为每个采样函数完成包含以下项的评估记录:
- 函数名称和应用程序所有者
- 业务目的和重要性
- 运行时和版本
- 触发和传入事件格式
- 使用的 AWS 服务和 SDK 调用
- 执行时间、内存、并发性和有效负载大小
- 重试、排序、重复交付和失败行为
- IAM 权限和网络相关性
- 当前日志、指标、预警和服务级别目标
- 必需的 OCI 函数配置和触发器模式
- 所需的代码、适配器或部署更改
- 已知的差距和未解决的风险
使用以下评估结果之一:
- OCI Functions 迁移就绪:工作负荷可以通过有限的更改迁移到 OCI Functions 。
- 包含更改的 OCI Functions 迁移:工作负载需要适配器、目标代码更改、配置更改或操作更改。
- 需要例外复查:OCI Functions 可能不满足记录的工作量要求。没有本手册中介绍的例外复查,请勿继续使用非功能体系结构。
应用程序所有者和迁移所有者应在实施开始之前审核评估。
评估 OCI 函数迁移要求
确定工作负载的 OCI 函数迁移方法。
要评估 OCI Functions 迁移要求,请执行以下步骤:
OCI Functions 是 Lambda 迁移计划的默认目标,可满足工作负载的功能、性能、安全性和运营要求。
设计目标 OCI 体系结构
定义调用、身份、密钥、网络、依赖关系、可观测性和切换模式。
要设计目标 OCI 体系结构,请执行以下步骤:
- 选择调用路径和文档预期的验证、有效负载配置、标头或元数据、延迟、重试次数、排序、批处理行为、重复传送、筛选和故障目标。
- 定义 OCI 函数应用程序、区间、映像资料档案库、VCN、子网、路由表、安全规则、服务网关或 NAT 网关、专用访问、出站要求和下游端点。
- 识别运行时函数调用的每个 OCI 服务或外部端点,包括 OCI Object Storage 、OCI Queue、 OCI Streaming 、 OCI Vault 、数据库和第三方 API。
- 定义操作信号,例如日志字段、关联 ID、调用计数、持续时间、错误、超时、容量症状、下游故障、仪表盘视图、预警和运行手册步骤。
查找包含组件列表、集成路径、安全设计、运营设计和图表重绘指导的目标架构摘要。
注意事项:仅当描述正常流、重试流、故障流、拒绝访问流和回滚流时,体系结构设计才完成。
设计注意事项和目标选择
在设计审核期间使用这些注意事项。
他们有意以行动为导向,因此审查者可以要求证据,而不是接受准备的一般声明。
- 目标拟合:使用 OCI 函数进行无状态、事件驱动、短期运行、符合目标限制和调用模型的可容器化工作。使用另一个目标来运行长时间、有状态、类似守护进程、编排繁重、类似工作进程或 AWS 服务耦合的工作负载。
- 有效负载和超时:记录实际请求和响应大小、最长持续时间、超时计数和调用方响应语义。通过引用通过 OCI Object Storage 、OCI Queue、 OCI Streaming 或其他存储(而不是通过函数有效负载)传递大数据。
- 依赖项:将 ZIP 和 Lambda 层假设转换为映像或共享基本映像依赖项。测试本机库、映像大小、依赖关系版本、启动行为、嵌入式 SDK 假设和运行时行为。
- 并发和扩展:库存使用 AWS 预留或预配并发的原因:预留容量、流量上限、冷启动减少、事件源限制或下游保护。通过容量规划、适当的并发预配、触发控制、后压和下游限制来设计 OCI 行为。
- 触发器:验证事件配置、重试、排序、批处理行为、重复传送、筛选、故障目标和幂等性。触发行为通常是风险最高的迁移区域。
- 操作:将日志、度量、预警、仪表盘、跟踪、运行手册、回退触发器和回退所有者视为迁移可交付项,而不是切换后清除。
目标选择指南
| 工作量特性 | 建议的 OCI 目标 | 使用理由 |
|---|---|---|
| 无状态、事件驱动、短期运行、可容器化功能 | OCI 功能 | 满足有效负载、超时、内存、触发器、依赖性、网络和并发约束时,最适合。 |
| 具有简单请求/响应行为的 HTTP API 函数 | OCI API Gateway 和 OCI Functions | 验证、标头、有效负载大小、超时、延迟、状态代码和响应语义时非常适合。 |
| 对象、通知、队列、流或日志事件处理器 | OCI Functions (包含 OCI Events 、 OCI Notifications 、 OCI Connector Hub 、 OCI Streaming (通过 Connector Hub)或重新设计的消息传递流) | 潜在拟合,但必须重新设计和测试交付、重试、排序、批处理、重复、毒药消息和失败行为。 |
| 长时间运行的职务或类似员工的流程 | OCI Container Instances 、 OKE 、 OCI Compute 或分解的工作流 | 避免函数调用和运行时约束,同时保留基于容器或服务的部署路径。 |
| 集中式编排 | Oracle Integration 、工作流服务或重新设计 | 当工作负载协调系统、等待外部状态或管理补偿步骤(而不是执行一小部分计算)时,可以更好地适应。 |
| 有状态进程、本地持久状态或守护进程 | OCI Compute 、 OKE 或重新设计 | OCI Functions 不是持久的本地状态或守护进程执行模型。 |
准备 OCI 资源和部署访问
准备构建、部署和烟雾测试所需的最低目标环境。
要准备 OCI 资源和部署访问,请执行以下步骤:
- 创建或标识区间、 OCI Functions 应用程序、VCN 子网、OCI Container Registry 存储库、 OCI Vault 密钥位置、日志记录资源和监视预警。
- 配置开发人员和 CI/CD 访问,以构建映像、推送映像、部署功能、调用烟雾测试和读取日志。
- 为运行时访问创建动态组规则和策略语句。尽可能按区间和资源进行范围,特别是存储桶、流、队列、 OCI Vault 密钥和数据库。
- 烟雾测试映像推送、函数部署、直接调用、日志发射、秘密读取、拒绝秘密读取以及一个代表性的下游服务调用。
查找具有记录的访问路径和通过烟雾测试的就绪目标环境。
注意事项:当进程需要不同的权限时,请确保部署标识和运行时标识是分开的。