Google PCD: 應用程式資料、狀態與儲存模式 — 學習指南

屬於 Google Professional Cloud Developer — 學習指南. 使用經過驗證的解答練習: Google 考試中心, 或參加限時模擬考試: ExamRoll.io.

總覽

在 Google Cloud 上的現代應用程式,通常會結合多種資料儲存庫,以便在延遲、一致性、擴充性、成本和維運複雜度之間取得平衡。選擇符合用途的服務和模式,並了解其故障模式,是彈性設計的核心。本節摘要了 Cloud SQL、Cloud Spanner、Firestore、Bigtable、Memorystore 和 Cloud Storage 的實務指南,並探討了遷移、分區和資料保護等議題。

Cloud SQL 上的關聯式資料

Cloud SQL 提供託管的 MySQL、PostgreSQL 和 SQL Server,具備大家所熟悉的 RDBMS 語意。

常見的故障模式與緩解措施:

Cloud Spanner 上的全球規模關聯式資料庫

Cloud Spanner 提供水平擴充性以及全球一致性選項。

權衡取捨:

NoSQL 維運型儲存區:Firestore 與 Bigtable

選擇符合查詢模式與吞吐量特性的 NoSQL 模型。

快取與物件儲存模式

遷移、一致性、分區與資料保護

實務問題情境

Aurora Outfitters 正在將一個單體式電商平台遷移至 Google Cloud。他們必須:1) 將 MySQL 直接遷移 (lift-and-shift) 以降低風險,2) 處理 500 MB 的產品媒體上傳而不過載應用程式,3) 擴展產品目錄的讀取吞吐量,以及 4) 在銷售高峰期間強制執行每個使用者的速率限制。

解決方法:

  1. 將 MySQL 遷移至 Cloud SQL,使用私有 IP 與區域級 HA

    • 理由:私有 IP 消除了公網暴露與 IP 允許清單,簡化了從 GKE 和 Compute Engine 進行安全連線的複雜性。區域級 HA 可防止區域性故障;預期在故障轉移時會有短暫的連線中斷,因此應用程式將實作可重試的交易與重新連線邏輯。
  2. 啟用自動備份與 PITR,並驗證還原

    • 理由:自動備份與交易日誌可用於從使用者或應用程式錯誤中進行時間點還原 (point-in-time recovery)。每週排程還原至非生產實例,以驗證備份的可用性並衡量 RTO。
  3. 為目錄讀取新增唯讀複本

    • 理由:將目錄查詢移至唯讀複本可減少主實例上的競爭。當需要寫後讀時(購物車/結帳),應用程式從主實例讀取;而在瀏覽目錄時,則從複本讀取,並理解複本延遲的權衡。
  4. 在應用程式端引入連線池並限制並行數量

    • 理由:PgBouncer/HikariCP 限制並重複使用連線,避免在自動擴展和 HA 故障轉移期間發生連線風暴。連線池的大小根據 CPU 核心數設定,而非最大 pod 數量,以防止過載。
  5. 將媒體上傳卸載至 Cloud Storage,使用簽署的 URL 與可續傳的上傳

    • 理由:應用程式發放短期的簽署 URL,供客戶端直接上傳。可續傳的上傳可適應不穩定的網路;媒體服務監聽 Pub/Sub 的完成通知以觸發處理。使用 Precondition 標頭 (ifGenerationMatch) 可防止覆寫的競爭條件。
  6. 實作 Memorystore for Redis 用於頁面快取、session 與速率限制

    • 理由:Read-through 快取可減少產品頁面的資料庫負載,其 TTL 與更新頻率保持一致。Session 資料以短 TTL 暫存在 Redis 中;應用程式狀態仍保留在 Cloud SQL。使用固定視窗的 token 策略,透過 INCR/EXPIRE 實現每個使用者的請求上限。快取被視為非權威性;應用程式能容忍快取遺失並在未命中時重新填入。
  7. 為高吞吐量的目錄瀏覽功能準備一個分階段遷移至 Cloud Bigtable 的路徑

    • 理由:隨著流量增長,將非正規化、為讀取優化的目錄視圖移至 Bigtable。Row key 設計為 bucket#category#reverse_ts,以分散寫入並支援時間排序的列表,而不會產生熱點。
  8. 建立 schema 遷移與回滾程序

    • 理由:遷移是可新增的:新增欄位/索引,透過冪等性作業回填資料,部署可同時讀寫新舊格式的程式碼,然後再移除舊欄位。功能旗標保護新的路徑;回滾時會停用對新欄位的寫入,而無需破壞性的 DDL。
  9. 設定資料生命週期與保護政策

    • 理由:Cloud Storage 值區使用生命週期規則將縮圖轉移至較冷的儲存空間,並刪除過期的暫存上傳。定期還原 Cloud SQL 備份以及 Spanner/Bigtable 備份(在採用後)進行驗證。稽核日誌記錄刪除工作流程;在合規文件中承認 Bigtable GC 是非同步的。
  10. 在客戶端與伺服器端實作帶有 truncated exponential backoff 的重試機制

    • 理由:在流量高峰期間,Cloud Storage 可能會回傳 429/5xx;backoff 可平滑負載並降低錯誤率。資料庫與快取操作使用冪等性鍵以確保重試的安全性,尤其是在故障轉移與網路不穩時。

此計畫透過 Cloud SQL 的私有連線與 HA 立即降低風險,透過快取與簽署 URL 上傳保持應用程式的回應速度與成本效益,並隨著流量增長,為擴展讀取吞吐量與資料彈性建立一條清晰的路徑。


API 設計、整合與事件驅動開發 · 所有領域 · 身分、驗證與應用程式安全

練習這些題目 → · 在 ExamRoll.io 上限時練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通過考試 →

瀏覽 Google →

Related guides

一站式存取

一份訂閱。所有考試。

每個方案都可無限存取答案搜尋、練習測驗、AI 解釋和完整的資源庫 — 支援 20 多種語言。

每月
24.87
Just €0.83/day
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

最佳價值
12 個月
179.87
Just €0.49/daySave 40%
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

✓ 包含免費方案 · ✓ 隨時取消 · ✓ 所有方案解鎖完整產品