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。
区域与可用区选择
区域(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 决定网络连通与隔离,区域与可用区决定可用性和延迟,配额与标签决定可扩展性和成本可见性。迁移前完成这套规划,后续的虚拟机、GKE、数据库和数据分析服务才能在同一套规则下稳定运行。