[GCP DevOps] Cloud Deploy 的 Release 是什麼東東?

Release 在 Cloud Deploy 中是一個非常核心的概念,它代表了應用程式的一個特定版本及其部署相關設定檔的快照。

我以前也不懂為什麼會有 Cloud Deploy 這個東西,因為原本 DevOps 相關的工具已經夠多了,後來看到這個 Release 才懂,它的確有其必要性。

具體來說:

Release 的組成部分包含如下:

  • 容器映像檔(Container image)
  • 部署設定檔(如 Kubernetes 清單)
  • 部署相關的中介資料(metadata)
  • 環境特定的設定

Release 的特點:

  • 不可變性(Immutable):一旦創建就不能修改
  • 可追蹤性:每個 release 都有唯一的標識符
  • 可重複使用:同一個 release 可以部署到不同環境

創建 Release 的方式:

gcloud deploy releases create release-001 \
  --delivery-pipeline=my-pipeline \
  --region=asia-east1 \
  --source=/path/to/source

Release 的生命週期:

  • 創建(Create):打包應用程式和配置
  • 部署(Deploy):部署到目標環境
  • 推進(Promote):將相同的 release 推進到下一個環境

Release 的優點:

  • 確保一致性:相同的 release 在所有環境中保持一致
  • 版本控制:每個 release 都有版本記錄
  • 回滾能力:可以輕易回滾到之前的 release
  • 稽核追蹤:可以追蹤每個 release 的部署歷史

Cloud Deploy Release 實際應用例子:

Release-001
├── 容器映像: gcr.io/my-project/my-app:v1.0.0
├── 部署配置: 
│   ├── deployment.yaml
│   ├── service.yaml
│   └── configmap.yaml
└── 中繼數據:
    ├── 創建時間
    ├── 創建者
    └── 描述信息

Cloud Deploy Release 與環境的關係:

  • 開發(Dev)環境:初始部署和測試
  • 暫存(Staging)環境:整合測試
  • 生產(Production)環境:最終部署
    每個環境可能需要不同的配置,但基礎映像和應用邏輯保持一致。

使用 Release 的好處

通過使用 release,團隊可以:

  • 確保部署過程的可重複性
  • 維護清晰的部署歷史
  • 在問題發生時快速回滾 (Rollback)
  • 實現更安全和可控的部署流程

這種方式最能保證部署的一致性和可靠性。

返回頂端