接手 GCP 项目与故障演练

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。

接手已有 Project 时,先确认项目身份、运行责任和当前健康状态,再安排变更。一个业务系统可能跨多个 Project;每个 Project 分别盘点,并记录跨项目依赖。初次盘点使用获批的只读权限,未知项标记为待确认。

接手顺序#

要回答的问题 查看位置或命令
谁付费、项目归谁、有哪些环境? Billing、Resource Manager、组织/文件夹层级
人和程序分别是谁? IAM、Groups、SA、WIF provider、审计日志
请求从哪里进来? DNS → LB / IAP → Cloud Run / GKE / VM
数据存在哪里、如何恢复? SQL、Storage、Pub/Sub、BigQuery、备份与保留策略
如何发布与回滚? 仓库、Cloud Build/GitHub、镜像 digest、Terraform state
如何知道业务坏了? SLO、告警接收人、日志关联字段、值班手册

快速盘点#

要完成的检查 留下的证据
核对当前身份、Project ID / Number、Organization / Folder、环境、业务与技术负责人 明确正在接手哪个 Project,以及关联的其他 Project
查看 Asset Inventory、已启用 API 和各服务资源列表 找到入口、计算、数据库、存储、消息与定时任务
找代码与 Terraform 仓库、CI/CD、制品、部署身份、最近一次发布 能说清发布审批与回滚入口
看监控面板、未关闭告警、近期错误日志和值班通知渠道 判断当前健康状态,知道故障找谁
看 Project、Folder、Organization 与关键资源的 IAM,确认运行 SA 和部署身份 列出高权限主体及授权来源
核对 Billing account、近 30 天成本趋势、预算及告警接收人 知道谁承担费用、谁处理异常

先向原负责人索取架构图、值班手册、部署和回滚说明、备份恢复记录、近期事故与重大变更。凭据只记录保管位置和负责人,不通过交接记录传递口令或私钥。

下面是只读盘点示例。显式指定 Project,避免复用其他项目的 CLI 默认值;部分资源命令还需指定实际 Region。没有相应权限时记录缺口,请管理员提供清单,不为盘点申请 Owner。

PROJECT_ID='REPLACE_PROJECT_ID'
REGION='REPLACE_REGION'
gcloud auth list
gcloud config list
gcloud projects describe "$PROJECT_ID"
gcloud services list --enabled --project="$PROJECT_ID"
gcloud asset search-all-resources --scope="projects/$PROJECT_ID"
gcloud projects get-iam-policy "$PROJECT_ID" --format=json
gcloud run services list --project="$PROJECT_ID" --region="$REGION"
gcloud compute instances list --project="$PROJECT_ID"
gcloud sql instances list --project="$PROJECT_ID"
gcloud pubsub subscriptions list --project="$PROJECT_ID"
gcloud artifacts repositories list --project="$PROJECT_ID" --location="$REGION"

Project 的 IAM 输出不是完整有效权限清单。 还要检查 Folder / Organization 继承、各资源 policy 和 Group 授权。Asset Inventory 也不覆盖所有资源类型;查询不到不能证明资源不存在。先完成盘点再变更。

第一天:确认能否运营#

  • 沿“DNS → 入口 → 应用 → 数据/消息 → 外部依赖”画出实际请求路径,标明 Region、Project、负责人和故障时的联系人。
  • 核对发布审批、流水线、运行身份、制品来源与回滚手册。找最近一次成功发布的记录;真实回滚演练应约定维护窗口。
  • 核对关键告警的通知接收人、值班升级路径和未关闭事件。检查日志位置、保留期及 Data Access 审计日志是否按需启用。
  • 列出关键数据、备份状态、RPO / RTO、最近恢复演练及其业务核对证据。只有“备份成功”不足以证明可恢复。
  • 检查账单趋势、预算通知和成本归属;告警型预算不会自动阻止消费。发现风险时记录负责人和处理期限,不直接删除未知资源或授权。

第一周:完成正式交接#

  1. 与原负责人核对架构图、跨项目依赖、关键 SA、权限申请与撤销渠道。
  2. 跟班处理一次常见告警,并走查发布、回滚及恢复步骤;记录实际入口和卡点。
  3. 补齐无人接收的告警、无负责人的资源和未验证的恢复流程,分别建立跟进项。
  4. 请业务和技术负责人确认交接记录、值班渠道与未关闭风险。

交接记录模板#

每个 Project 复制一份;敏感信息只填写管理入口或保管位置。

项目 记录
日期、记录人、Project ID / Number、环境、Organization / Folder
业务负责人、技术负责人、值班与升级渠道
架构图、代码 / IaC 仓库、关键服务与跨项目依赖
发布审批、部署身份、最近发布、回滚手册
监控面板、告警接收人、未关闭事件、日志位置与保留期
关键数据、备份状态、RPO / RTO、最近恢复演练
Billing account、费用负责人、近 30 天趋势、预算告警
高权限组、关键 SA、权限申请与撤销渠道
未确认事项 / 风险 / 负责人 / 完成期限
原负责人确认日期

初步接手完成时,应能回答:系统现在是否健康、故障找谁、如何发布与回滚、关键数据如何恢复、费用由谁处理。尚未验证的控制保留为待办。权限与成本的进一步盘点见 资源治理;日志和告警见 Logging 与 Monitoring。

综合项目故障表#

注入 预期信号 恢复与验收
撤销 API SA 的 topic publisher POST 返回 5xx,日志 PermissionDenied 恢复 topic binding,重新提交同一订单 ID
撤销 worker 的 Bucket objectCreator SQL 已存在订单,push 返回 5xx,重投增加 恢复权限;对象补齐;SQL 仍只有一行
禁用 DB Secret 后发布新 worker revision 新实例不能读取密码,部署/启动失败 启用版本,恢复已知健康 revision
删除 NAT(仅网络实验) 无公网 IP VM 不能访问普通互联网 重建 NAT,验证公网 HTTPS
发布坏镜像 新 revision 不健康或错误率升高 将流量切回旧 revision
删除 SQL 测试行 业务结果缺失 在独立恢复实例/实验实例恢复备份,核对记录

每次只注入一个故障,记录开始时间、发现时间、根因、恢复时间。云 IAM 有传播延迟,恢复后重复验证。

运维交付检查#

  • 一张包含身份和网络路径的架构图。
  • 可复建的命令或 IaC、镜像 digest、配置清单。
  • 至少一次拒绝访问、消息重投、告警、发布回滚、数据恢复证据。
  • 资源费用清单和清理结果。

把“服务健康”与“业务完成”分开:HTTP 202 只代表接受,订单在 SQL 和归档对象中出现才算本项目处理完成。

新项目还要检查#

  • DNS:父域委派、公共/私有视图、TTL、DNSSEC;证书:到期、自动续期与验证记录。
  • 入口:CDN 是否误缓存私有内容,WAF 是否能绕过,员工登录与机器调用是否共用错误入口。
  • 异步:Scheduler 重复运行、Tasks 重试上限、Eventarc 过滤范围、消息积压和死信补偿。
  • 数据:SQL 恢复与对象/缓存/查询投影是否一致,KMS 旧版本是否仍被数据使用。
  • 治理:区域与服务配额、账单导出、无人认领资源、清理后的保留数据费用。

对应实验:DNS、项目进阶、资源治理、PITR。

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭