GCP 核心概念
GCP 核心概念:从零掌握 Google Cloud 基础
Google Cloud Platform (GCP) 为开发者、数据工程师和 IT 专业人员提供了大量云服务。理解其核心概念是高效使用 GCP 的前提。本教程将带你理清最关键的抽象与组件,无需任何预知知识。
1. GCP 资源层级与项目
1.1 项目 (Project)
项目是 GCP 中组织资源的基本单元。 每个虚拟机、存储桶、数据库实例都必须属于一个项目。项目提供了:
- 命名空间:同一项目内资源名称必须唯一。
- 计费:所有资源使用量汇总到绑定在项目上的计费账户。
- 隔离边界:默认情况下,不同项目的资源相互隔离。
- API 与服务启用:可以按项目启用或停用特定的 GCP 服务。
当你登录 GCP 后创建的第一个实体就是项目。你会获得一个自动生成的项目 ID(全局唯一且不可更改)、一个可修改的项目名称和一个数字形式的项目编号。
1.2 文件夹与组织节点
对于企业用户,可以在项目之上建立文件夹和组织节点,形成层级树。这允许你:
- 集中管理所有项目的访问控制策略。
- 在组织级别设置 IAM 策略,并向下继承到文件夹和项目。
- 实现更精细的治理,例如按部门(
/财务、/工程)分组项目。
GCP 资源层级通常是:组织 → 文件夹 → 项目 → 资源。
2. 身份与访问管理 (IAM)
2.1 核心组件
IAM 定义了谁(身份)对哪个资源(通过角色)拥有什么权限。三个关键元素:
- 成员 (Member):可以是 Google 账号、服务账号、Google 群组或 G Suite 域名。
- 角色 (Role):一组权限的集合。分为基本角色(所有者、编辑者、查看者)、预定义角色(由 Google 为特定服务提供,如
roles/compute.admin)和自定义角色。 - 策略 (Policy):绑定在资源上的角色-成员映射列表,声明“哪类成员被授予了哪些角色”。
2.2 资源级权限
GCP IAM 是强一致性的:策略可以在组织、文件夹、项目或个别资源(如存储桶)级别设置。继承规则为:子资源默认继承父级的策略,但可以通过在子资源上直接设置策略来加宽权限(无法缩窄继承的权限,因为权限是累加的)。
2.3 服务账号 (Service Account)
不要与人混淆。服务账号是一个特殊的 GCP 账号,代表应用程序或虚拟机而非个人用户。虚拟机通常关联一个服务账号,以便安全地调用其他 GCP API,而无需将真实用户凭证嵌入代码。服务账号通过密钥或 GCP 自动管理的短期凭证进行身份验证。
3. 计算引擎核心概念
Google Compute Engine 提供可扩缩的虚拟机。理解以下概念有助于你快速启动实例:
-
区域 (Region) 与可用区 (Zone)
区域是独立的地理位置(如us-central1、europe-west1)。每个区域包含多个可用区(如us-central1-a、us-central1-b),它们是相互隔离的故障域。将你的应用跨可用区部署可获得高可用性。 -
机器类型 (Machine Family)
预定义类型分为通用型(N1、N2、E2、C3、C4)、计算优化型(C2)和内存优化型(M1、M2)。你也可以创建自定义机器类型,精确组合 vCPU 和内存。 -
永久磁盘 (Persistent Disk)
虚拟机存储分为标准永久磁盘(HDD)和 SSD 永久磁盘,可根据性能需求动态调整大小,并可独立于 VM 实例存在。 -
映像 (Image) 与快照 (Snapshot)
映像用于创建虚拟机实例,由 Google 或社区提供(如 Ubuntu、Red Hat)。快照是对永久磁盘增量数据的即时备份,可用来新建磁盘或迁移数据。
4. 网络概念
GCP 中的网络是软件定义网络,具有全局特性,无需配置物理设备。
4.1 VPC (Virtual Private Cloud)
VPC 是 GCP 内资源(如 VM)的隔离网络。关键特征:
- 全球性:一个 VPC 可以跨多个区域,而无需在区域间建立 VPN。单个 VPC 中的子网可以分布在不同区域。
- 子网:划分 VPC 的 IP 地址范围。子网是区域性的,但 VPC 内的实例可以通过内部 IP 直接通信,无视区域边界。
- 防火墙规则:默认拒绝所有入站流量,允许所有出站流量。你可以按标签、服务账号或 IP 范围定义允许的流量。
4.2 Cloud Load Balancing
提供全局的 HTTP(S)、SSL 代理、TCP/UDP 负载均衡。全局负载均衡只需一个任播 IP 地址,即可将流量智能路由到最近可用后端,后端可跨不同区域。
4.3 Cloud CDN & Cloud DNS
- Cloud CDN 与负载均衡器集成,在 Google 边缘缓存内容,降低延迟。
- Cloud DNS 是托管在 Google 基础架构上的权威 DNS 服务,支持 Anycast 和私有区域。
4.4 Cloud Interconnect & VPN
- Cloud VPN 使用 IPsec 隧道将你的本地网络安全连接到 GCP VPC。
- Cloud Interconnect 提供专用的高带宽、低延迟物理连接,分为专用互连和合作伙伴互连。
5. 存储与数据库概览
GCP 将存储抽象成匹配不同访问模式的专用服务:
-
Cloud Storage
对象存储服务。数据以对象形式存放在存储桶 (Bucket) 中。特点:无限容量,自动冗余,适用于备份、静态网站托管和数据分析湖。存储类别包括 Standard、Nearline、Coldline、Archive,按访问频率与最低存储时长成本递减。 -
Persistent Disk 和 Local SSD
已随 Compute Engine 介绍。Persistent Disk 可独立保留,Local SSD 提供极低延迟但生命周期与 VM 绑定。 -
Filestore
面向企业的高性能文件存储,提供 NFS 挂载点,适合需要共享文件系统的应用。
5.1 Cloud SQL, Cloud Spanner, Bigtable
理解这些托管数据库的适用场景:
- Cloud SQL:托管的关系型数据库(MySQL、PostgreSQL、SQL Server)。适用于传统 Web 应用、CMS 等。
- Cloud Spanner:全球分布式、强一致性的关系型数据库。横向扩展,用于极大规模的事务处理。
- Cloud Bigtable:稀疏、宽列的 NoSQL 数据库,为分析和实时大数据工作负载设计,延迟极低。
- Firestore / Datastore:无服务器 NoSQL 文档数据库,面向移动与 Web 应用。
6. 管理与运行无服务器应用
6.1 Cloud Run
一个全托管的计算平台,让你直接运行基于容器的工作负载。是无服务器的,按请求计费,从零快速扩缩。支持任何语言编写的 HTTP 服务或后台任务。
6.2 Cloud Functions
事件驱动的函数即服务。一小段单用途代码,由 GCP 事件(如 Cloud Storage 上传、Pub/Sub 消息)触发。极易上手,适合轻量集成和自动化。
6.3 App Engine
平台即服务,你只需上传代码,GCP 负责部署、扩缩和负载均衡。提供标准和灵活两种环境,适合 Web 应用和移动后端。
7. 运维与可观测性
7.1 Cloud Monitoring & Cloud Logging
- Cloud Monitoring:实时监控 GCP 资源及自托管基础设施,提供仪表盘、警报和正常运行时间检查。
- Cloud Logging:从 GCP 服务和应用中集中收集、分析和存储日志,支持基于日志的指标和导出到 BigQuery。
7.2 Cloud Trace & Cloud Profiler
- Cloud Trace:分布式追踪系统,帮助定位请求在微服务中的延迟瓶颈。
- Cloud Profiler:持续分析生产应用中的 CPU 和内存消耗,低开销。
7.3 错误报告 (Error Reporting)
自动聚合并实时通知应用程序抛出的崩溃和异常,减轻开发者的排查负担。
8. 核心 API 与工具
8.1 Cloud SDK & gcloud
gcloud 是用于管理 GCP 资源的命令行工具。你可以通过 gcloud compute instances create 等命令完全控制环境。Cloud SDK 也包含 gsutil(操作 Cloud Storage)和 bq(操作 BigQuery)。
8.2 Cloud Console & Cloud Shell
- Cloud Console:基于 Web 的图形界面,用于创建和管理 GCP 资源。
- Cloud Shell:控制台内嵌的临时虚拟机,预装 SDK 和常用工具,无需本地设置即可执行命令。
8.3 Terraform & Deployment Manager
基础设施即代码(IaC):
- Terraform:开源、多云支持,声明式配置。
- Deployment Manager:GCP 原生的模板驱动的自动化部署工具。
总结:你的 GCP 心理模型
当你开始使用 GCP 时,脑中应建立如下模型:
- 选择项目 (Project) 作为工作边界。
- 利用 IAM 为团队成员和服务账号分配最小权限。
- 在 VPC 内部署计算资源,注意区域与可用区分布。
- 按访问模式挑选存储:对象(Cloud Storage)、块存储(PD)、文件(Filestore)或数据库(Cloud SQL/Spanner/Bigtable)。
- 无服务器场景优先考虑 Cloud Run 或 Cloud Functions。
- 用 Monitoring + Logging 观察一切。
掌握这些核心概念后,你就能游刃有余地设计 GCP 架构并开始实践。下一步建议:在 Cloud Console 中创建一个项目,启用 Compute Engine API,并启动你的第一个 e2-micro 虚拟机实例。