GSP1077
Ringkasan
Cloud Build adalah layanan yang menjalankan build Anda di Google Cloud. Cloud Build dapat mengimpor kode sumber, menjalankan build, dan lainnya.
Di lab ini, Anda akan membuat pipeline continuous integration dan continuous deployment (CI/CD) yang otomatis membangun image container dari kode yang di-commit, menyimpan image di Artifact Registry, dan memperbarui manifes Kubernetes di repositori Git, serta men-deploy aplikasi ke Google Kubernetes Engine menggunakan manifes tersebut.

Untuk lab ini, Anda akan menggunakan 2 repositori Git yang dihosting di server Git Gitea khusus yang dihosting sendiri (git-server):
-
app: berisi kode sumber aplikasi (hello-cloudbuild-app)
-
env: berisi manifes deployment Kubernetes (hello-cloudbuild-env)
Saat Anda mengirim perubahan pada app repository, pipeline Cloud Build akan menjalankan pengujian, membangun image container, dan mengirim perubahan tersebut ke Artifact Registry. Setelah mengirim image, Cloud Build memperbarui manifes deployment dan mengirimnya ke repositori env. Tindakan ini memicu pipeline Cloud Build lain yang menerapkan manifes ke cluster GKE dan, jika berhasil, menyimpan manifes di cabang repositori env lain.
Repository app dan env disimpan secara terpisah karena keduanya memiliki siklus proses dan penggunaan yang berbeda. Repositori app dikhususkan untuk aplikasi tertentu, dan biasanya digunakan oleh manusia. Repositori env dapat digunakan bersama oleh beberapa aplikasi dan digunakan oleh sistem otomatis (seperti Cloud Build). Repositori env dapat memiliki beberapa cabang, yang masing-masing dipetakan ke lingkungan tertentu dan mereferensikan image container tertentu, sedangkan repositori app tidak demikian.
Setelah menyelesaikan lab ini, sistem Anda dapat dengan mudah:
- Membedakan antara deployment yang gagal dan berhasil dengan melihat histori Cloud Build.
- Mengakses manifes yang saat ini digunakan dengan melihat cabang produksi dari repositori
env.
- Melakukan rollback ke versi sebelumnya dengan mengeksekusi kembali build Cloud Build yang sesuai.

Tujuan
Di lab ini, Anda akan mempelajari cara melakukan hal-hal berikut:
- Membuat cluster Kubernetes Engine.
- Menghubungkan ke server Git khusus dan menginisialisasi repositori Git.
- Menjalankan pipeline Cloud Build dari repositori kode sumber.
- Mengotomatiskan pengujian dan memublikasikan image container yang dapat di-deploy melalui Cloud Build.
- Mengelola resource yang di-deploy di cluster Kubernetes Engine melalui Cloud Build.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Konsol Google Cloud
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
-
Klik untuk melanjutkan ke halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Memulai lab Anda
Dalam tugas ini, Anda akan menyiapkan lingkungan:
- Mengimpor project ID, nomor project, dan IP server Git Anda sebagai variabel
- Mengaktifkan API untuk GKE, Cloud Build, Secret Manager, dan Artifact Analysis
- Membuat repositori Docker Artifact Registry
- Membuat cluster GKE untuk men-deploy aplikasi contoh lab ini
- Di Cloud Shell, jalankan perintah berikut untuk menetapkan project ID, nomor project, dan region Anda:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export REGION={{{ project_0.default_region }}}
gcloud config set compute/region $REGION
export GIT_SERVER_IP=$(gcloud compute instances describe git-server --zone={{{ project_0.default_zone }}} --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
echo "Git Server IP is: ${GIT_SERVER_IP}"
- Jalankan perintah berikut untuk mengaktifkan API untuk GKE, Cloud Build, Secret Manager, dan Artifact Analysis:
gcloud services enable container.googleapis.com \
cloudbuild.googleapis.com \
secretmanager.googleapis.com \
containeranalysis.googleapis.com
- Buat repositori Docker Artifact Registry dengan nama
my-repository dalam region untuk menyimpan image container Anda:
gcloud artifacts repositories create my-repository \
--repository-format=docker \
--location=$REGION
- Buat cluster GKE untuk men-deploy aplikasi contoh lab ini:
gcloud container clusters create hello-cloudbuild --num-nodes 1 --region $REGION
- Jalankan perintah berikut untuk mengonfigurasi Git di Cloud Shell:
git config --global user.name "giteaadmin"
git config --global user.email "student@qwiklabs.net"
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengaktifkan layanan, membuat artifact registry dan cluster GKE
Tugas 2. Menghubungkan ke repositori Git di server Git
Dalam tugas ini, Anda akan melakukan inisialisasi dua repositori Git (hello-cloudbuild-app dan hello-cloudbuild-env) di server Git khusus (git-server) dan mengirim kode contoh awal.
- Download kode contoh dari Cloud Storage:
cd ~
git clone http://${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-app.git
Kode yang Anda buat clone berisi aplikasi "Hello World" sederhana:
from flask import Flask
app = Flask('hello-cloudbuild')
@app.route('/')
def hello():
return "Hello World!\n"
if __name__ == '__main__':
app.run(host = '0.0.0.0', port = 8080)
Tugas 3. Membuat image container dengan Cloud Build
Dalam tugas ini, dengan Dockerfile yang sudah ada, Anda akan menggunakan Cloud Build untuk membuat dan menyimpan image container.
Kode yang Anda buat clone sebelumnya berisi file Docker:
FROM python:3.11-slim
RUN pip install flask
WORKDIR /app
COPY app.py /app/app.py
ENTRYPOINT ["python"]
CMD ["/app/app.py"]
Dengan Dockerfile ini, Anda dapat menggunakan Cloud Build untuk membuat image container dan menyimpannya di Artifact Registry.
- Di Cloud Shell, buat build Cloud Build berdasarkan commit terbaru dengan perintah berikut:
cd ~/hello-cloudbuild-app
COMMIT_ID="$(git rev-parse --short=7 HEAD)"
gcloud builds submit --tag="${REGION}-docker.pkg.dev/${PROJECT_ID}/my-repository/hello-cloudbuild:${COMMIT_ID}" .
Cloud Build mengalirkan log yang dihasilkan oleh pembuatan image container ke terminal saat Anda menjalankan perintah tersebut.
- Setelah build selesai, di kolom judul Konsol Google Cloud, masukkan Artifact Registry di kolom Search, lalu klik Artifact Registry di hasil penelusuran. Pastikan image container baru Anda memang benar tersedia di Artifact Registry. Klik my-repository untuk melihat image
hello-cloudbuild di daftar Image.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat image container dengan Cloud Build
Tugas 4. Membuat dan menjalankan pipeline Continuous Integration (CI)
Dalam tugas ini, Anda akan mengonfigurasi dan menjalankan Cloud Build untuk otomatis menjalankan pengujian unit, membangun image container, dan mengirimnya ke Artifact Registry.

File cloudbuild.yaml yang sudah disertakan dalam kode adalah konfigurasi pipeline.
- Lakukan commit pada perubahan Anda dan kirim ke server Git:
cd ~/hello-cloudbuild-app
git add .
git commit -m "Trigger CI pipeline"
git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-app.git main
- Kirim build ke Cloud Build menggunakan perintah berikut:
gcloud builds submit --config=cloudbuild.yaml --substitutions=SHORT_SHA=$(git rev-parse --short=7 HEAD) .
- Di Konsol Google Cloud, telusuri Cloud Build dan klik History di panel kiri. Anda dapat memeriksa log eksekusi build CI Anda.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat Pipeline Continuous Integration (CI)
Tugas 5. Menyimpan kunci rahasia SSH di Secret Manager
Pada langkah ini, Anda akan menyimpan kunci rahasia pribadi di Secret Manager dan memberikan izin Cloud Build untuk mengakses Secret Manager.
Membuat kunci SSH dan menyimpannya di Secret Manager
-
Di Cloud Shell, buat kunci SSH:
mkdir -p ~/workingdir && cd ~/workingdir
ssh-keygen -t rsa -b 4096 -N '' -f id_rsa -C "student@qwiklabs.net"
-
Simpan kunci SSH pribadi di Secret Manager dengan menjalankan perintah berikut di Cloud Shell:
gcloud secrets create ssh_key_secret --data-file=$HOME/workingdir/id_rsa
Atau, di Konsol Google Cloud:
a. Pertama, download id_rsa ke komputer Anda: di Cloud Shell, klik More (
) > Download file, masukkan workingdir/id_rsa, lalu klik Download.
b. Telusuri Secret Manager dan klik Secret Manager.
c. Klik Create Secret.
d. Tetapkan Name ke ssh_key_secret.
e. Di bagian Secret value, pilih Upload dan upload file id_rsa yang didownload.
f. Klik Create secret.
Memberikan izin akun layanan untuk mengakses Secret Manager
Jalankan perintah berikut di Cloud Shell untuk memberikan izin kepada akun layanan default Compute Engine untuk mengakses Secret Manager:
PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format='value(projectNumber)')
gcloud projects add-iam-policy-binding ${PROJECT_NUMBER} \
--member=serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \
--role=roles/secretmanager.secretAccessor
Klik Periksa progres saya untuk memverifikasi tujuan.
Menyimpan secret kunci SSH di Secret Manager
Tugas 6. Membuat lingkungan pengujian dan pipeline CD
Anda juga dapat menggunakan Cloud Build untuk pipeline continuous delivery. Pipeline dijalankan setiap kali commit dikirim ke cabang kandidat repositori hello-cloudbuild-env. Pipeline menerapkan manifes versi baru ke cluster Kubernetes dan, jika berhasil, menyalin manifes ke cabang produksi. Proses ini memiliki properti berikut:
- Cabang kandidat adalah histori upaya deployment.
- Cabang produksi adalah histori deployment yang berhasil.
- Anda dapat melihat deployment yang berhasil dan gagal di Cloud Build.
- Anda dapat melakukan rollback ke deployment sebelumnya dengan mengeksekusi ulang build yang sesuai di Cloud Build. Rollback juga memperbarui cabang produksi agar mencerminkan histori deployment secara akurat.
Selanjutnya, Anda akan memodifikasi pipeline continuous integration untuk memperbarui cabang kandidat repositori hello-cloudbuild-env, yang memicu pipeline continuous delivery.
Memberikan akses Cloud Build ke GKE
Untuk men-deploy aplikasi di cluster Kubernetes, Cloud Build memerlukan peran Kubernetes Engine Developer.
- Di Cloud Shell, jalankan perintah berikut:
PROJECT_NUMBER="$(gcloud projects describe ${PROJECT_ID} --format='get(projectNumber)')"
gcloud projects add-iam-policy-binding ${PROJECT_NUMBER} \
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
--role=roles/container.developer
Anda harus memulai repositori hello-cloudbuild-env dengan dua cabang (produksi dan kandidat) serta file konfigurasi Cloud Build yang menjelaskan proses deployment.
- Di Cloud Shell, download kode contoh dari Cloud Storage:
cd ~
git clone http://${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git
- Di Cloud Shell, ganti konten
cloudbuild.yaml di repositori hello-cloudbuild-env dengan menjalankan perintah berikut:
cd ~/hello-cloudbuild-env
cat <<'EOF' > cloudbuild.yaml
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
substitutions:
_COMMIT_SHA: 'v1.0'
steps:
# This step deploys the new version of our container image
# in the hello-cloudbuild Kubernetes Engine cluster.
- name: 'gcr.io/cloud-builders/kubectl'
id: Deploy
args:
- 'apply'
- '-f'
- 'kubernetes.yaml'
env:
- 'CLOUDSDK_COMPUTE_REGION={{{ project_0.default_region }}}'
- 'CLOUDSDK_CONTAINER_CLUSTER=hello-cloudbuild'
# This step copies the applied manifest to the production branch
- name: 'gcr.io/cloud-builders/gcloud'
id: Copy to production branch
entrypoint: /bin/sh
args:
- '-c'
- |
set -x && \
git clone -b production http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git prod_repo && \
cd prod_repo && \
git config user.email "student@qwiklabs.net" && \
git config user.name "Cloud Build" && \
cp ../kubernetes.yaml kubernetes.yaml && \
git add kubernetes.yaml && \
git commit -m "Deployed manifest from commit $_COMMIT_SHA" && \
git push origin production
options:
logging: CLOUD_LOGGING_ONLY
EOF
sed -i "s/\${GIT_SERVER_IP}/$GIT_SERVER_IP/g" cloudbuild.yaml
Lakukan commit dan kirim update ke hello-cloudbuild-env:
cd ~/hello-cloudbuild-env
git checkout candidate
git add cloudbuild.yaml
git commit -m "Create cloudbuild.yaml for deployment"
git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git candidate
Mengubah pipeline continuous integration untuk memicu pipeline continuous delivery
Selanjutnya, update pipeline continuous integration di hello-cloudbuild-app untuk menghasilkan versi baru manifes Kubernetes dan kirim ke hello-cloudbuild-env untuk memicu pipeline CD.
- Di Cloud Shell, ganti
cloudbuild.yaml di hello-cloudbuild-app dan ganti IP server Git Anda dengan menjalankan perintah berikut:
cd ~/hello-cloudbuild-app
cat <<'EOF' > cloudbuild.yaml
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
substitutions:
_SHORT_SHA: 'v1.0'
_COMMIT_SHA: 'v1.0'
steps:
# This step runs the unit tests on the app
- name: 'python:3.11-slim'
id: Test
entrypoint: /bin/sh
args:
- -c
- 'pip install flask && python test_app.py -v'
# This step builds the container image.
- name: 'gcr.io/cloud-builders/docker'
id: Build
args:
- 'build'
- '-t'
- '{{{ project_0.default_region }}}-docker.pkg.dev/$PROJECT_ID/my-repository/hello-cloudbuild:$_SHORT_SHA'
- '.'
# This step pushes the image to Artifact Registry
- name: 'gcr.io/cloud-builders/docker'
id: Push
args:
- 'push'
- '{{{ project_0.default_region }}}-docker.pkg.dev/$PROJECT_ID/my-repository/hello-cloudbuild:$_SHORT_SHA'
# This step clones the hello-cloudbuild-env repository
- name: 'gcr.io/cloud-builders/gcloud'
id: Clone env repo
entrypoint: /bin/sh
args:
- '-c'
- |
git clone http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git && \
cd hello-cloudbuild-env && \
git checkout candidate && \
git config user.email "student@qwiklabs.net" && \
git config user.name "Cloud Build"
# This step generates the new manifest
- name: 'gcr.io/cloud-builders/gcloud'
id: Generate manifest
entrypoint: /bin/sh
args:
- '-c'
- |
sed "s/GOOGLE_CLOUD_PROJECT/${PROJECT_ID}/g" kubernetes.yaml.tpl | \
sed "s/COMMIT_SHA/${_SHORT_SHA}/g" > hello-cloudbuild-env/kubernetes.yaml
# This step pushes the manifest back to hello-cloudbuild-env candidate branch
- name: 'gcr.io/cloud-builders/gcloud'
id: Push manifest
entrypoint: /bin/sh
args:
- '-c'
- |
set -x && \
cd hello-cloudbuild-env && \
git add kubernetes.yaml && \
git commit -m "Deploying image {{{ project_0.default_region }}}-docker.pkg.dev/$PROJECT_ID/my-repository/hello-cloudbuild:${_SHORT_SHA}
Built from commit ${_COMMIT_SHA} of repository hello-cloudbuild-app
Author: $(git log --format='%an <%ae>' -n 1 HEAD)" && \
git push origin candidate
options:
logging: CLOUD_LOGGING_ONLY
EOF
sed -i "s/\${GIT_SERVER_IP}/$GIT_SERVER_IP/g" cloudbuild.yaml
- Lakukan commit pada modifikasi, kirimkan ke server Git, dan kirimkan build pipeline:
cd ~/hello-cloudbuild-app
git add cloudbuild.yaml
git commit -m "Trigger CD pipeline"
git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-app.git main
gcloud builds submit --config=cloudbuild.yaml --substitutions=_SHORT_SHA=$(git rev-parse --short=7 HEAD),_COMMIT_SHA=$(git rev-parse HEAD) .
Tindakan ini akan memicu pipeline continuous integration di Cloud Build, yang membangun image aplikasi dan mengirim manifes kubernetes.yaml baru ke repositori hello-cloudbuild-env Anda.
- Ambil manifes yang dihasilkan di
hello-cloudbuild-env dan picu build deployment Continuous Delivery (CD):
cd ~/hello-cloudbuild-env
git pull http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git candidate
gcloud builds submit --config=cloudbuild.yaml --substitutions=_COMMIT_SHA=$(git rev-parse HEAD) .
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat Lingkungan Pengujian dan Pipeline CD
Tugas 7. Meninjau pipeline Cloud Build
Dalam tugas ini, Anda akan meninjau pipeline Cloud Build di konsol.
- Di konsol, buka Cloud Build > History.
- Klik build terbaru untuk mengikuti eksekusinya dan memeriksa log-nya.
- Pastikan semua langkah dalam pipeline build berhasil dijalankan
Tugas 8. Menguji pipeline yang lengkap
Sekarang Anda telah mengonfigurasi pipeline CI/CD lengkap. Dalam tugas ini, Anda akan melakukan pengujian menyeluruh.
- Di konsol, pada Navigation menu (
), klik Kubernetes Engine > Gateways, Services & Ingress > Services.
Seharusnya terdapat layanan tunggal bernama hello-cloudbuild dalam daftar. Layanan ini dibuat oleh build continuous delivery yang baru saja berjalan.
- Klik endpoint untuk layanan hello-cloudbuild. Anda akan melihat "Hello World!". Jika tidak ada endpoint, atau jika terjadi error load balancer, Anda mungkin harus menunggu beberapa menit sampai load balancer benar-benar diinisialisasi. Jika perlu, klik Refresh untuk memperbarui halaman.

- Di Cloud Shell, ganti "Hello World" dengan "Hello Cloud Build", di aplikasi dan di pengujian unit:
cd ~/hello-cloudbuild-app
sed -i 's/Hello World/Hello Cloud Build/g' app.py
sed -i 's/Hello World/Hello Cloud Build/g' test_app.py
- Lakukan commit dan kirim perubahan ke server Git, lalu kirim build CI:
git add app.py test_app.py
git commit -m "Hello Cloud Build"
git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-app.git main
gcloud builds submit --config=cloudbuild.yaml --substitutions=_SHORT_SHA=$(git rev-parse --short=7 HEAD),_COMMIT_SHA=$(git rev-parse HEAD) .
- Tarik manifes yang telah diupdate ke
hello-cloudbuild-env dan kirim build pipeline deployment untuk men-deploy versi aplikasi baru:
cd ~/hello-cloudbuild-env
git pull http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git candidate
gcloud builds submit --config=cloudbuild.yaml --substitutions=_COMMIT_SHA=$(git rev-parse HEAD) .
Setelah beberapa menit, muat ulang aplikasi di browser. Anda akan melihat "Hello Cloud Build!".

Tugas 9. Menguji rollback
Dalam tugas ini, Anda akan melakukan rollback ke versi aplikasi yang menampilkan "Hello World!".
- Di kolom judul konsol, ketik Cloud Build Dashboard di kolom Search, lalu klik Cloud Build di hasil penelusuran. Pastikan History dipilih di panel kiri.
- Klik build terbaru kedua yang tersedia di Build History.
- Klik Rebuild.

Setelah build selesai, muat ulang aplikasi di browser. Anda akan melihat "Hello World!" lagi.

Selamat!
Sekarang Anda dapat menggunakan Cloud Build untuk membuat dan melakukan rollback pada pipeline continuous integration dengan GKE di Google Cloud.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 20 Juli 2026
Lab Terakhir Diuji pada 20 Juli 2026
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.