4. Google Cloud基础架构规划

在把业务系统迁移到 Google Cloud 之前,基础架构规划决定了后续资源能否被安全、可控、可扩展地管理。Google Cloud 的资源模型不是“先建虚拟机再想权限”,而是从组织节点开始自上而下继承策略:组织(Organization)→ 文件夹(Folder)→ 项目(Project)→ 资源(Resource)。理解这条层级链,是规划一切网络、权限、配额和成本归属的前提。

组织架构:策略继承的起点

组织节点对应一个 Cloud Identity 或 Google Workspace 域,是 IAM 策略、组织策略(Organization Policy)和配额继承的最高层。典型做法是按“业务单元—环境—团队”建立文件夹树,例如:根组织下建 fldr-prod、fldr-nonprod、fldr-shared 三个文件夹,再在 fldr-prod 下按业务线建子文件夹。这样,生产环境的“禁止创建外部 IP”“限制可用区域”等组织策略只需在文件夹层设置一次,即可被其下所有项目继承,避免逐项目重复配置。

需要特别区分两类约束:IAM 角色决定“谁能对什么资源做什么”,组织策略决定“资源本身允许具备什么形态”。例如,即使某成员拥有 compute.instances.create 权限,若其所在文件夹设置了 constraints/compute.vmExternalIpAccess 为拒绝,他仍然无法给实例分配外部 IP。规划时应先定组织策略基线,再分配 IAM 角色。

项目结构:资源与边界的基本单元

项目是启用 API、结算、配额和 IAM 的实际边界。规划项目时建议遵循“环境隔离 + 职责单一”原则,而不是把所有资源塞进一个默认项目。一个可落地的示例结构如下:

项目 ID 示例用途关键边界
prj-net-hub-prod共享 VPC 宿主项目集中管理网络、子网、防火墙
prj-app-order-prod订单业务生产环境仅使用宿主项目子网,不建独立 VPC
prj-data-warehouse数据分析与 BigQuery独立结算与配额,限制外部访问
prj-sandbox-dev开发测试沙箱低配额、自动清理、禁止访问生产数据

共享 VPC(Shared VPC)是大型组织的常见选择:宿主项目持有 VPC 网络,服务项目通过 IAM 绑定使用其子网。这样网络团队集中管控路由与防火墙,业务团队专注应用部署,避免每个项目各自建网导致 IP 冲突和策略碎片化。

VPC 设计:子网、路由与连通性

VPC 是全球性资源,子网是区域级资源。规划时先确定地址空间,再按区域和用途划分子网。假设企业规划使用 10.0.0.0/8 作为整体私网空间,可按如下方式切分:

10.10.0.0/16   asia-east1  生产子网(GKE 节点、VM)
10.20.0.0/16   asia-east1  生产子网(数据库、中间件)
10.30.0.0/16   us-central1 灾备子网
10.40.0.0/16   asia-east1  开发测试子网
10.50.0.0/16   全局预留     未来扩展与对等互联

子网创建时需选择“区域”和“私有 Google 访问”等选项。若使用 GKE,还需为 Pod 和 Service 预留二级 CIDR 范围,例如 Pod 用 10.60.0.0/14、Service 用 10.64.0.0/20,避免与节点子网重叠。路由方面,默认路由负责子网间通信;跨 VPC 可用 VPC Peering 或 Network Connectivity Center。防火墙规则应遵循“默认拒绝入站、按需放行”的原则,用标签(Tag)或服务账号(Service Account)作为目标选择器,而不是直接写 IP。

组织节点 Organization Cloud Identity 域 · 策略继承起点 fldr-prod 生产策略基线 fldr-nonprod 开发测试策略 fldr-shared 共享服务策略 prj-net-hub-prod 共享VPC宿主 prj-app-order-prod 订单业务生产 prj-data-warehouse 数据分析 prj-sandbox-dev 开发沙箱 共享 VPC 网络(宿主项目 prj-net-hub-prod) asia-east1 生产子网 10.10.0.0/16 GKE 节点 / VM asia-east1 数据子网 10.20.0.0/16 数据库 / 中间件 us-central1 灾备子网 10.30.0.0/16 跨区域容灾 asia-east1 开发子网 10.40.0.0/16 沙箱 / 测试 GKE 二级 CIDR 预留 Pod: 10.60.0.0/14 · Service: 10.64.0.0/20 防火墙策略 默认拒绝入站 · 按标签/服务账号放行 区域(Region)决定子网位置 · 可用区(Zone)决定实例分布 · 配额与标签贯穿所有层级

区域与可用区选择

区域(Region)是地理概念,可用区(Zone)是区域内的独立故障域。选择区域时需同时考虑:用户延迟、合规要求、服务可用性、价格和碳足迹。例如面向中国大陆及东亚用户,asia-east1(台湾)和 asia-east2(香港)延迟较低;若需满足数据驻留要求,则必须选择对应区域。高可用架构应在同一区域内至少跨两个可用区部署,例如 asia-east1-a 和 asia-east1-b,再通过区域级托管实例组或 GKE 多可用区节点池实现故障转移。跨区域灾备则选择 us-central1 等距离较远但网络稳定的区域,并评估跨区域流量费用。

配额与标签策略

配额(Quota)是项目级资源上限,分为速率配额和总量配额。迁移前应检查关键配额,例如 CPUS_ALL_REGIONS、IN_USE_ADDRESSES、DISKS_TOTAL_GB。若计划在 asia-east1 部署 200 个 vCPU,而当前区域配额仅为 100,则需提前提交配额调整申请,通常 1~3 个工作日批复。配额不足会导致实例创建失败,错误信息类似 Quota 'CPUS' exceeded. Limit: 100.0 in region asia-east1。

标签(Label)是键值对,用于成本分摊、自动化和资源检索。建议统一标签规范,例如:

env: prod | nonprod | sandbox
app: order | payment | data
owner: team-payments
cost-center: cc-1024
data-class: internal | confidential

标签可配合结算导出到 BigQuery,按 cost-center 或 app 聚合费用。注意标签与网络标签(Network Tag)不同:标签用于元数据和成本,网络标签用于防火墙规则匹配。规划阶段就应把标签键值写入 Terraform 模块或部署模板,避免后期人工补标。

规划检查顺序建议:先定组织与文件夹策略基线 → 再划分项目边界 → 设计共享 VPC 与子网 CIDR → 选择区域和可用区 → 核对配额并统一标签规范。每一步都影响后续迁移的自动化程度和治理成本。

把上述五件事串起来看,组织架构决定治理边界,项目结构决定资源归属,VPC 决定网络连通与隔离,区域与可用区决定可用性和延迟,配额与标签决定可扩展性和成本可见性。迁移前完成这套规划,后续的虚拟机、GKE、数据库和数据分析服务才能在同一套规则下稳定运行。