题干与适用场景
面试官问:“我们的 B2B SaaS 已在两个区域复制,是否应该让客户在主区域故障时自行触发切换?”请先假设客户不能直接操作底层数据库,产品需要保护租户隔离、数据驻留和审计。目标岗位是平台产品经理、基础设施产品经理或技术项目负责人。
这道题考察的是产品边界,不是简单回答“自动化更快”。AWS 将多区域用于极端韧性场景,同时提醒跨区域依赖会削弱可靠性;Google Cloud 强调必须设计、构建并测试恢复;Azure 则要求用业务需求决定区域、RTO、RPO、成本和复杂度。
面试官考察点
- 能否把“客户想要控制权”拆成可验证的 RTO、RPO、数据驻留和合规要求。
- 能否区分自动切换、运营人员批准切换、客户请求切换三种权限。
- 能否指出复制延迟、双写、DNS 缓存、配额不足和误判造成的失败场景。
- 强回答会把客户操作限制在租户级控制面,提供预检、审批、演练、审计和回切;普通回答只说“给一个 failover 按钮”。
回答前需要澄清的问题
客户要解决什么故障?
单租户应用故障可用隔离和重启解决;整个区域不可用才需要跨区域切换。若只是低延迟需求,多区域不一定比单区域多可用区更合适。
RTO 与 RPO 是多少?
异步复制意味着切换可能丢失最近写入;若客户要求零数据丢失,就不能承诺一个普通的异步副本按钮。RTO 决定是否需要预热容量,RPO 决定能否接受复制滞后。
哪些数据可以离开原区域?
数据驻留、加密密钥、备份和日志的边界会改变候选区域。不能把“备用区域”默认当作合规可用区域。
30 秒回答框架
“我会先按租户的可用性目标、可接受数据丢失和驻留约束分层。默认由平台根据健康信号自动或经运营批准切换;只有通过预检的客户,才可以提交受审计的切换请求,而不是直接提升副本。请求必须检查复制延迟、目标容量、密钥、版本和依赖健康度,并先进入只读或冻结写入阶段。切换后持续观察错误率、写入状态和 RPO,满足回切条件再恢复。先在少量租户演练,比较恢复时间、误切换和客户影响,再决定是否扩大权限。”
分步骤深入解答
- 定义产品契约。 把“区域故障转移”定义为租户级灾备操作,写明预计 RTO、最大 RPO、不可用功能、费用和客户责任。未达到契约的复制状态不能显示为可切换。
- 建立三层控制。 平台自动切换适合明确的区域健康信号;运营批准适合有业务影响的共享依赖;客户请求只产生受限工单或 API 命令,由策略引擎批准。客户不能直接改 DNS、提升数据库或重放消息。
- 执行预检。 检查副本追平时间、目标区域配额、应用版本、密钥可用性、队列积压、外部依赖和数据驻留。任何一项不满足都返回可行动原因,而不是接受请求后才失败。
- 保护写入一致性。 先停止或排空主区域写入,记录最后可确认位点;提升副本后只允许一个写入权威。异步复制的未知窗口要向客户标明,不能声称“复制完成”就等于零丢失。
- 验证和回切。 用合成事务验证登录、读写、异步任务和审计;监控错误率、复制位点、队列年龄和租户成功率。回切前先反向追平并演练冲突,避免主区域恢复后双主写入。
- 选择发布策略。 先给内部租户和愿意演练的客户开放只读模拟,再开放人工批准切换,最后评估自动化。每一步都设置停止条件:误切换、RPO 超标、目标容量不足或审计缺失即暂停。
高质量示范回答
我不会把按钮直接交给客户。先确认客户是否真的需要跨区域 RTO,以及他们能接受多少 RPO 和哪些数据驻留限制。产品可以提供“请求切换”能力,但请求先经过租户策略、复制位点、目标容量、版本、密钥和依赖健康检查。
切换时平台冻结或排空主区域写入,记录最后确认位点,只提升一个写入副本,并给出预计丢失窗口和受影响功能。切换完成后用合成交易验证读写、任务和审计,再按租户维度观察错误率、复制状态和恢复时间。回切必须先反向追平并证明没有双主写入。
我会从内部租户开始演练,再开放人工批准,最后才考虑自动化。若误切换率、RPO 或容量预检失败超过阈值,就关闭客户触发入口并保留审计记录。这样既提供客户需要的可见性和控制,也避免把底层灾备风险转嫁给客户。
常见错误
- 把多区域当作自动高可用 → 忽略副本提升、依赖和回切 → 为每个组件写出 RTO/RPO、演练和回切步骤。
- 让客户直接提升数据库 → 可能造成双主写入或跨租户影响 → 客户只调用租户级受审计命令,由策略引擎执行。
- 只检查区域健康 → DNS 正常不代表数据、密钥和配额可用 → 将复制位点、容量、版本、密钥和外部依赖纳入预检。
- 承诺零数据丢失 → 异步复制存在未追平窗口 → 明确 RPO,记录最后确认位点并展示可能丢失范围。
- 没有回切计划 → 主区域恢复后产生双写和漂移 → 设计反向追平、冲突检测和分阶段回切。
追问及应对
客户要求零 RPO,怎么回答?
先说明异步复制无法提供零 RPO。可评估同步复制或业务级双写,但要重新核算跨区域延迟、可用性、成本和一致性;若目标不成立,应把契约改为可测量的最大丢失窗口。
健康检查误报导致自动切换怎么办?
增加多信号确认、最短持续时间和人工中止窗口;对高价值租户先进入冻结和预检状态,不立即提升副本。记录每次判定,按误切换率和恢复时间调整阈值。
客户触发后目标区域没有容量怎么办?
预检配额和容量,并为关键租户保留容量预算或自动扩容计划。预检失败时返回明确原因并保留主区域状态,不能为了满足按钮成功率而切换到未准备好的区域。
数据驻留限制在故障时能否例外?
不能默认例外。把允许的备用区域、加密密钥和日志范围纳入租户合同与策略;若法律或客户政策不允许跨境,就提供同区域多可用区或明确的降级方案。