
准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Create the lab resources
/ 20
Create the Cloud Build Triggers
/ 20
Deploy the first versions of the application
/ 20
Deploy the second versions of the application
/ 20
Roll back the production deployment
/ 20
在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。
在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。
若想滿分達標,就必須在時限內成功完成所有任務!
這個實驗室適合在 Google Cloud 實作 DevOps 工作流程課程的學員。準備好迎接挑戰了嗎?
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
這個實驗室需要 GitHub 帳戶才能完成。您可以使用現有的帳戶,如果沒有,則需建立 GitHub 帳戶
幾個月前,您開始在 Cymbal Superstore 擔任 DevOps 工程師,如今已瞭解公司電子商務網站的運作細節。具體來說,DevOps 團隊正在建構大規模的 CI/CD pipeline,希望能獲得您的協助。有了這個 pipeline,公司就能幫助開發人員將工作自動化、提升與其他團隊的合作效率,並更頻繁可靠地發布軟體。Cymbal Superstore 希望能完全使用原生的 Google Cloud 服務建構 pipeline,您在 GitHub、Artifact Registry、Docker 和 Cloud Build 的經驗會很有幫助。
在開始這項專案前,DevOps 團隊想先請您展現新技能。為此他們列出了一張工作清單,希望您在沙箱環境和規定的時間內完成。
要完成的工作如下:
整體而言,您會使用 GitHub 存放區、Artifact Registry 和 Cloud Build 建立簡單的 CI/CD pipeline。
在這個部分中,您會為示範環境初始化 Google Cloud 專案。您將啟用必要 API、在 Cloud Shell 設定 Git、建立 Artifact Registry Docker 存放區,並建立 GKE 叢集來執行正式版和開發版應用程式。
在 Cloud Shell 執行下列指令,設定 Git 和 GitHub:
成功登入後,您的 GitHub 使用者名稱會出現在 Cloud Shell 輸出內容中。
在
建立名為 hello-cluster
的 GKE Standard 叢集,並使用下列設定:
設定 | 值 |
---|---|
可用區 | |
發布管道 | 一般 |
叢集版本 |
1.29 以上版本
|
叢集自動配置器 | 已啟用 |
節點數量 | 3 |
節點數量下限 | 2 |
節點數量上限 | 6 |
prod
和 dev
命名空間。點選「Check my progress」,確認目標已達成。
在這項工作中,您會在 GitHub 存放區建立名為 sample-app 的存放區,並使用程式碼範例加以初始化。這個存放區會用來保存 Go 應用程式程式碼,也是觸發建構作業的主要來源。
在 GitHub 存放區建立名為 sample-app 的空存放區。
在 Cloud Shell 複製 sample-app GitHub 存放區。
使用下列指令,將程式碼範例複製到 sample-app
目錄:
cloudbuild-dev.yaml
和 cloudbuild.yaml
檔案中的 <your-region>
和 <your-zone>
預留位置:建立 GitHub 存放區並命名為 sample-app
。
建立存放區後,使用新增至 sample-app
目錄的程式碼範例進行首次修訂,接著將變更內容推送至 master 分支版本。
建立名為 dev 的分支版本。使用新增至 sample-app 目錄的程式碼範例進行修訂,接著將變更內容推送至 dev
分支版本。
確認程式碼範例和各分支版本已儲存至 GitHub 存放區。
您剛才複製的程式碼包含簡單的 Go 應用程式,其中有兩個進入點:Red 和 Blue。每個進入點都會在網頁上會顯示簡單的有色方塊,顯示的顏色取決於您選擇的進入點。
在這項工作中,您會建立兩項 Cloud Build 觸發條件。
第一項觸發條件會監聽 master
分支版本,在出現變更時建構應用程式的 Docker 映像檔,並推送至 Google Artifact Registry,接著將最新版本的映像檔部署到 GKE 叢集的 prod 命名空間。
第二項觸發條件會監聽 dev
分支版本,在出現變更時建構應用程式的 Docker 映像檔,並推送至 Google Artifact Registry,接著將最新版本的映像檔部署到 GKE 叢集的 dev 命名空間。
使用下列設定,建立名為 sample-app-prod-deploy 的 Cloud Build 觸發條件:
GitHub (Cloud Build GitHub App)
sample-app
^master$
cloudbuild.yaml
使用下列設定,建立名為 sample-app-dev-deploy 的 Cloud Build 觸發條件:
sample-app
^dev$
cloudbuild-dev.yaml
觸發條件設定完成後,分支版本的任何變更都會觸發相應的 Cloud Build pipeline,接著該 pipeline 就會根據 cloudbuild.yaml
檔案建構及部署應用程式。
點選「Check my progress」,確認目標已達成。
在本部分中,您會建構正式版和開發版應用程式的最初版本。
在 Cloud Shell 查看 sample-app 目錄中的 cloudbuild-dev.yaml
檔案,瞭解建構程序的各個步驟。將 cloudbuild-dev.yaml
檔案第 9 和 13 行程式碼的 <version>
換成 v1.0
。
前往 dev/deployment.yaml
檔案,將第 17 行程式碼的 <todo>
更新為正確的容器映像檔名稱。此外,也請將 PROJECT_ID
變數換成容器映像檔名稱中實際的專案 ID。
在 dev
分支版本進行修訂並推送變更。這會觸發 sample-app-dev-deploy 的建構工作。
在 Cloud Build 的「記錄」頁面確認建構作業已順利執行,接著確認 development-deployment 應用程式已部署到叢集的 dev
命名空間。
在通訊埠 8080 向名為 dev-deployment-service
的 LoadBalancer 服務公開 development-deployment 部署項目,並將容器的目標通訊埠,設為 Dockerfile 內指定的通訊埠。
前往該服務的負載平衡器 IP,並在網址結尾加上 /blue
進入點,確認應用程式已開始運作。網址應與以下類似:http://34.135.97.199:8080/blue
。
改為前往 master
分支版本。查看 sample-app 目錄中的 cloudbuild.yaml
檔案,瞭解建構程序的各個步驟。將 cloudbuild.yaml
檔案第 11 和 16 行程式碼的 <version>
換成 v1.0
。
前往 prod/deployment.yaml
檔案,將第 17 行程式碼的 <todo>
更新為正確的容器映像檔名稱。此外,也請將 PROJECT_ID
變數換成容器映像檔名稱中實際的專案 ID。
在 master
分支版本進行修訂並推送變更。這會觸發 sample-app-prod-deploy 的建構工作。
在 Cloud Build 的「記錄」頁面確認建構作業已順利執行,接著確認 production-deployment 應用程式已部署到叢集的 prod
命名空間。
在通訊埠 8080 向名為 prod-deployment-service
的 LoadBalancer 服務公開 prod
命名空間的 production-deployment 部署項目,並依 Dockerfile 的指定內容,設定容器的目標通訊埠。
前往該服務的負載平衡器 IP,並在網址結尾加上 /blue
進入點,確認應用程式已開始運作。網址應與以下類似:http://34.135.245.19:8080/blue
。
點選「Check my progress」,確認目標已達成。
在這個工作中,您會建構正式版和開發版應用程式的第二個版本。
dev
分支版本。main.go
檔案中的 main()
函式更新為下列程式碼:main.go
檔案加入下列函式:查看 cloudbuild-dev.yaml
檔案,瞭解建構程序的各個步驟。將 Docker 映像檔的版本更新為 v2.0
。
前往 dev/deployment.yaml
檔案,將容器映像檔名稱更新為新版本 v2.0
。
在 dev
分支版本進行修訂並推送變更,以觸發 sample-app-dev-deploy 的建構工作。
在 Cloud Build 的「記錄」頁面確認建構作業已順利執行,接著確認 development-deployment 應用程式已部署到叢集的 dev
命名空間,且使用的是 v2.0
映像檔。
前往該服務的負載平衡器 IP,並在網址結尾加上 /red
進入點,確認應用程式已開始運作。網址應如下所示:http://34.135.97.199:8080/red
。
master
分支版本。main.go
檔案中的 main()
函式更新為下列程式碼:main.go
檔案加入下列函式:查看 cloudbuild.yaml
檔案,瞭解建構程序的各個步驟。將 Docker 映像檔的版本更新為 v2.0
。
前往 prod/deployment.yaml
檔案,將容器映像檔名稱更新為新版本 v2.0
。
在 master
分支版本進行修訂並推送變更,以觸發 sample-app-prod-deploy 的建構工作。
在 Cloud Build 的「記錄」頁面確認建構作業已順利執行,接著確認 production-deployment 應用程式已部署到叢集的 prod
命名空間,且使用的是 v2.0
映像檔。
前往該服務的負載平衡器 IP,並在網址結尾加上 /red
進入點,確認應用程式已開始運作。網址應如下所示:http://34.135.245.19:8080/red
。
太好了!您已成功為正式版和開發版應用程式建立運作正常的 CI/CD 管道。
點選「Check my progress」,確認目標已達成。
在這個部分中,您會將正式版部署項目復原至前一個版本。
v1.0
版本。/red
進入點。頁面應會顯示 404
。點選「Check my progress」,確認目標已達成。
恭喜!您在這個實驗室中證明了自己的技能,順利在 Google Cloud 實作開發運作工作流程。您首先建立了用於執行應用程式的 GKE 叢集,以及用於託管程式碼集的 git 存放區。接著您建立 Cloud Build 觸發條件、修改程式碼和範本,並將更新內容推送至存放區,在該處建立了開發版和正式版應用程式的最初版本。您也將更新內容推送至應用程式以建立新版本,再將正式版應用程式復原至前一個版本。您現在已準備好在自己的環境進行開發運作工作了!
這個自學實驗室是在 Google Cloud 實作 DevOps 工作流程課程的一部分。完成這個技能徽章課程即可獲得上方的徽章,表彰您的成就。您可以在履歷表和社群平台張貼徽章,並加上 #GoogleCloudBadge 公開這項成就。
這個技能徽章課程是 Google Cloud 雲端開發運作工程師學習路徑的一部分。您可以報名 Monitor and Log with Google Cloud Observability 課程,繼續精進專業能力。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
手冊上次更新日期:2024 年 6 月 26 日
實驗室上次測試日期:2024 年 6 月 26 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验