Enable services, create an artifact registry and the GKE cluster

Periksa progres saya

/ 20

Create a container image with Cloud Build

Periksa progres saya

/ 20

Create the Continuous Integration (CI) Pipeline

Periksa progres saya

/ 20

Store SSH key secret in Secret Manager

Periksa progres saya

/ 20

Create the Test Environment and CD Pipeline

Periksa progres saya

/ 20

Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Konten ini belum dioptimalkan untuk perangkat seluler.
Untuk pengalaman terbaik, kunjungi kami dengan komputer desktop menggunakan link yang dikirim melalui email.

GSP1077

Lab mandiri Google Cloud

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.

Alur CI/CD

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.

Alur Git Ops

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

  1. 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.

  2. 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.
  3. 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.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab setup and access.

  6. 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.
  7. 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. Ikon Navigation menu dan 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.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. 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.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (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
  1. 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}"
  1. 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
  1. 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
  1. Buat cluster GKE untuk men-deploy aplikasi contoh lab ini:
gcloud container clusters create hello-cloudbuild --num-nodes 1 --region $REGION
  1. 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.

  1. 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.

  1. 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.

  1. 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.

Arsitektur

File cloudbuild.yaml yang sudah disertakan dalam kode adalah konfigurasi pipeline.

  1. 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
  1. Kirim build ke Cloud Build menggunakan perintah berikut:
gcloud builds submit --config=cloudbuild.yaml --substitutions=SHORT_SHA=$(git rev-parse --short=7 HEAD) .
  1. 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

  1. 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"
  2. 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 (Ikon 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.

  1. 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.

  1. Di Cloud Shell, download kode contoh dari Cloud Storage:
cd ~ git clone http://${GIT_SERVER_IP}:3000/giteaadmin/hello-cloudbuild-env.git
  1. 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.

  1. 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
  1. 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.

  1. 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.

  1. Di konsol, buka Cloud Build > History.
  2. Klik build terbaru untuk mengikuti eksekusinya dan memeriksa log-nya.
  3. 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.

  1. Di konsol, pada Navigation menu (Ikon 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.

  1. 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.

App 1 Hello World!

  1. 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
  1. 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) .
  1. 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!".

App 2 Hello Cloud Build!

Tugas 9. Menguji rollback

Dalam tugas ini, Anda akan melakukan rollback ke versi aplikasi yang menampilkan "Hello World!".

  1. Di kolom judul konsol, ketik Cloud Build Dashboard di kolom Search, lalu klik Cloud Build di hasil penelusuran. Pastikan History dipilih di panel kiri.
  2. Klik build terbaru kedua yang tersedia di Build History.
  3. Klik Rebuild.

Layar Rollback berhasil

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

App 1 Hello World!

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.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami dapat memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami dapat menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa, yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.