GSP393

Ringkasan
Dalam challenge lab, Anda diberi sebuah skenario dan serangkaian tugas. Tidak ada petunjuk langkah demi langkah. Anda akan menggunakan keahlian yang dipelajari dari lab dalam kursus untuk mencari cara menyelesaikan sendiri tugas-tugas tersebut. Sistem pemberian skor otomatis (ditampilkan pada halaman ini) akan memberikan masukan tentang apakah Anda telah menyelesaikan tugas dengan benar atau tidak.
Saat mengikuti challenge lab, Anda tidak akan diajari konsep-konsep baru Google Cloud. Anda diharapkan dapat memperluas keahlian yang dipelajari, seperti mengubah nilai default dan membaca serta mengkaji pesan error untuk memperbaiki kesalahan Anda sendiri.
Untuk meraih skor 100%, Anda harus berhasil menyelesaikan semua tugas dalam jangka waktu tertentu.
Lab ini direkomendasikan bagi siswa yang sudah mengikuti kursus Mengimplementasikan Pipeline CI/CD di Google Cloud. Apakah Anda siap menghadapi tantangan ini?
Topik yang diujikan
- Menggunakan Cloud Build dan Artifact Registry untuk container.
- Menyiapkan pipeline Cloud Deploy menggunakan Skaffold.
- Melakukan deployment ke beberapa lingkungan dengan persetujuan promosi.
- Melakukan rollback pada deployment.
Penyiapan
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.
Anda harus menunggu lab disediakan sebelum membuat perubahan apa pun pada lingkungan. Bagian lingkungan yang telah dikonfigurasi sebelumnya, yang perlu Anda gunakan, akan tersedia untuk Anda segera setelah terdapat indikasi bahwa lab sudah siap.
Skenario Tantangan
Anda punya peran baru sebagai Cloud Engineer untuk Jooli Inc. Manajemen yang baru telah memutuskan untuk melakukan modernisasi. Mereka yakin bahwa mengganti sistem lama sepenuhnya dengan infrastruktur terkelola serta pipeline integrasi dan pengiriman otomatis adalah pilihan terbaik. Mereka menugaskan Anda untuk menemukan serta menguji alat dan layanan terbaik untuk mewujudkannya.
Pada akhirnya, manajemen ingin melihat bukti konsep yang dapat menyediakan semua hal berikut:
- Image container disimpan dalam registry yang aman dan andal.
- Pemindaian image container otomatis dengan laporan mendetail tentang kerentanan keamanan.
- Aplikasi web pengujian berjalan di infrastruktur terkelola.
- Pipeline CI/CD ditentukan sebagai kode agar tidak ada lagi kesalahan manual.
- Cara yang andal, mudah, dan cepat untuk men-deploy kode dan mempromosikannya ke lingkungan yang mirip dengan lingkungan produksi atau melakukan rollback jika diperlukan.
Anda diminta membantu mengelola infrastruktur Cloud dan alat deployment di Jooli. Tugas umum Anda mencakup penyediaan resource untuk project dan penerapan produk serta layanan baru untuk memastikan Jooli Inc. melakukan modernisasi secara efektif dan mengikuti praktik terbaik.
Anda diharapkan memiliki keterampilan dan pengetahuan untuk menyelesaikan tugas ini, jadi panduan langkah demi langkah tidak akan disediakan.
Beberapa standar Jooli Inc. yang harus diikuti:
- Buat semua resource di region , kecuali ada petunjuk lain.
- Gunakan VPC default project.
- Alokasikan ukuran resource yang hemat biaya. Perlu diperhatikan, semua project selalu dipantau dan penggunaan resource secara berlebihan akan mengakibatkan penghentian project yang terkait (dan kemungkinan project Anda). Satu-satunya panduan dari tim pemantauan adalah gunakan jenis mesin default, kecuali ada petunjuk lain.
Tantangan Anda
Begitu duduk di meja kerja dan membuka laptop, Anda menerima permintaan berikut untuk menyelesaikan serangkaian tugas. Semoga berhasil!
- PERSIAPAN - Mengaktifkan API, membuat cluster GKE, dan membuat repositori Docker di Artifact Registry.
- Membuat clone kode sumber, membangun image, dan mengirimkannya ke Artifact Registry.
- Membuat pipeline pengiriman, target, dan rilis.
- Membangun ulang dan mengirim image, memberi tag dengan latest.
- Membuat rilis baru dengan versi terbaru.
- Mempromosikan rilis terbaru ke cluster kedua.
- Melakukan rollback pada perubahan ke cluster kedua, mengubah, dan merilis ulang.
Tugas 1. Persiapan - Menyiapkan lingkungan, mengaktifkan API, dan membuat cluster
- Siapkan variabel lingkungan untuk Project ID Anda (ini penting karena akan digunakan dalam beberapa file konfigurasi di bawah). Anda dapat menggunakan perintah di bawah ini:
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
- Aktifkan layanan berikut di project Google Cloud Anda menggunakan perintah berikut:
- container.googleapis.com
- clouddeploy.googleapis.com
- artifactregistry.googleapis.com
- cloudbuild.googleapis.com
gcloud services enable \
container.googleapis.com \
clouddeploy.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
- Aktifkan izin untuk Kubernetes dan Cloud Deploy menggunakan perintah berikut:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--role="roles/clouddeploy.jobRunner"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--role="roles/container.developer"
- Buat bucket Cloud Storage untuk Cloud Build guna menyimpan sumber dan log.
gsutil mb -p $PROJECT_ID gs://${PROJECT_ID}_cloudbuild
- Buat Repositori Artefak
Buat repositori untuk menyimpan container Docker Anda.
Beri nama repositori: cicd-challenge
gcloud artifacts repositories create cicd-challenge \
--description="Image registry for tutorial web app" \
--repository-format=docker \
--location=$REGION
- Buat cluster Google Kubernetes Engine.
Buat dua cluster GKE untuk Staging dan Production bernama cd-staging dan cd-production. Cluster harus berupa zona tunggal dan node tunggal.
gcloud container clusters create cd-staging --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async
gcloud container clusters create cd-production --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async
Tugas 2. Membangun image dan menguploadnya ke repositori
- Buat clone repositori untuk lab ke direktori beranda Anda menggunakan perintah di bawah ini:
cd ~/
git clone https://github.com/GoogleCloudPlatform/cloud-deploy-tutorials.git
cd cloud-deploy-tutorials
git checkout c3cae80 --quiet
cd tutorials/base
- Buat konfigurasi skaffold.yaml menggunakan perintah di bawah ini:
envsubst < clouddeploy-config/skaffold.yaml.template > web/skaffold.yaml
cat web/skaffold.yaml
Direktori web sekarang berisi file konfigurasi skaffold.yaml, yang memberikan petunjuk bagi Skaffold untuk membangun image container bagi aplikasi Anda.
- Jalankan perintah skaffold untuk membangun aplikasi dan men-deploy image container ke repositori Artifact Registry yang sebelumnya dibuat:
PETUNJUK: gunakan jalur lengkap ke repositori yang Anda buat sebelumnya
cd web
skaffold build --interactive=false \
--default-repo <INSERT YOUR ARTIFACT REPOSITORY HERE> \
--file-output artifacts.json
cd ..
Validasi bahwa container telah dibuat dan ditambahkan ke repositori
Tugas 3. Membuat Pipeline Pengiriman
Jalankan perintah berikut untuk menyalin file template pipeline:
- Buat resource delivery-pipeline menggunakan file delivery-pipeline.yaml:
cp clouddeploy-config/delivery-pipeline.yaml.template clouddeploy-config/delivery-pipeline.yaml
sed -i "s/targetId: staging/targetId: cd-staging/" clouddeploy-config/delivery-pipeline.yaml
sed -i "s/targetId: prod/targetId: cd-production/" clouddeploy-config/delivery-pipeline.yaml
sed -i "/targetId: test/d" clouddeploy-config/delivery-pipeline.yaml
-
Tetapkan region deployment menggunakan parameter konfigurasi
deploy/region.
-
Terapkan konfigurasi pipeline yang Anda buat di atas menggunakan perintah
gcloud beta deploy.
- Pastikan pipeline pengiriman telah dibuat menggunakan perintah di bawah:
gcloud beta deploy delivery-pipelines describe web-app
Mengonfigurasi target deployment
Dua target pipeline pengiriman akan dibuat, satu untuk setiap cluster GKE.
Memastikan cluster sudah siap
Kedua cluster GKE sekarang seharusnya sedang berjalan, tetapi ada baiknya untuk memverifikasinya.
gcloud container clusters list --format="csv(name,status)"
Semua cluster harus dalam status RUNNING, seperti yang ditunjukkan dalam output di bawah. Jika cluster belum ditandai sebagai RUNNING, coba lagi perintah di atas hingga statusnya berubah menjadi RUNNING.
Membuat konteks untuk setiap cluster
- Gunakan perintah di bawah ini untuk mendapatkan kredensial bagi setiap cluster dan membuat konteks kubectl yang mudah digunakan untuk mereferensikan cluster nantinya:
CONTEXTS=({INSERT YOUR TARGETS HERE})
for CONTEXT in ${CONTEXTS[@]}
do
gcloud container clusters get-credentials ${CONTEXT} --region ${REGION}
kubectl config rename-context gke_${PROJECT_ID}_${REGION}_${CONTEXT} ${CONTEXT}
done
Membuat namespace di setiap cluster
- Gunakan perintah di bawah ini untuk membuat namespace Kubernetes (web-app) di masing-masing dari cluster:
for CONTEXT in ${CONTEXTS[@]}
do
kubectl --context ${CONTEXT} apply -f kubernetes-config/web-app-namespace.yaml
done
Membuat target pipeline pengiriman
- Buat file definisi target untuk setiap target menggunakan perintah di bawah (tidak perlu diubah):
envsubst < clouddeploy-config/target-staging.yaml.template > clouddeploy-config/target-cd-staging.yaml
envsubst < clouddeploy-config/target-prod.yaml.template > clouddeploy-config/target-cd-production.yaml
sed -i "s/staging/cd-staging/" clouddeploy-config/target-cd-staging.yaml
sed -i "s/prod/cd-production/" clouddeploy-config/target-cd-production.yaml
- Terapkan file target ke Cloud Deploy.
Targetnya dijelaskan dalam file yaml. Setiap target mengonfigurasi informasi cluster yang relevan untuk target.
Tampilkan detail untuk target staging:
cat clouddeploy-config/target-cd-staging.yaml
Pastikan target Cloud Deploy telah dibuat.
Tugas 4. Membuat Rilis
- Buat rilis menggunakan perintah
gcloud beta deploy releases serta file skaffold dan artifacts.json yang Anda buat sebelumnya.
- Beri nama rilis
web-app-001 dan gunakan delivery-pipeline web-app.
PETUNJUK: direktori sumber Anda harus web/
- Pastikan aplikasi Anda telah di-deploy ke lingkungan staging (cd-staging) melalui perintah di bawah atau di konsol.
gcloud beta deploy rollouts list \
--delivery-pipeline web-app \
--release web-app-001

Memverifikasi rilis ke lingkungan Staging
Tugas 5. Mempromosikan aplikasi Anda ke produksi
- Promosikan aplikasi Anda dari lingkungan Staging (cd-staging) ke lingkungan Production (cd-production).
PETUNJUK: Jangan lupa untuk menyetujui deployment.
Memverifikasi rilis ke lingkungan Production
Tugas 6. Membuat perubahan pada aplikasi dan men-deploy ulang aplikasi tersebut
- Menggunakan editor, buka direktori
cloud-deploy-tutorials/tutorials/base/web/leeroy-app/ dan ubah file app.go. Ubah baris 24 menjadi: fmt.Fprintf(w, "leeroooooy app v2!!\n")
-
Bangun aplikasi dan kirimkan ke Artifact Registry.
-
Buat rilis baru di pipeline yang Anda buat sebelumnya. Beri nama rilis
web-app-002
- Pastikan versi baru telah di-deploy ke lingkungan staging.
gcloud beta deploy rollouts list \
--delivery-pipeline web-app \
--release web-app-002
Tugas 7. Melakukan Rollback pada Perubahan
Astaga! QA Engineer menemukan bug dalam rilis Anda ke staging. Karena itu, Anda harus melakukan rollback ke versi sebelumnya.
-
Gunakan Cloud Deploy untuk melakukan rollback ke versi asli aplikasi -
web-app-001.
- Pastikan versi aslinya berjalan.
Memastikan rollback berhasil dijalankan
Selamat!
Di lab ini, Anda berhasil menyiapkan pipeline CI/CD menggunakan Google Cloud Deploy dan Artifact Registry. Anda telah membuat bukti konsep yang memenuhi semua persyaratan manajemen. Jooli Inc. kini berada di jalur yang tepat untuk mencapai ROI yang lebih tinggi dengan manfaat modernisasi aplikasi.

Mendapatkan badge keahlian Anda berikutnya
Lab ini adalah bagian dari kursus Mengimplementasikan Pipeline CI/CD di Google Cloud. Dengan menyelesaikan kursus badge keahlian ini, Anda akan mendapatkan badge di atas sebagai pengakuan atas pencapaian Anda. Tampilkan badge di resume atau platform media sosial Anda, dan umumkan pencapaian Anda menggunakan hashtag #GoogleCloudBadge.
Kursus badge keahlian ini merupakan bagian dari Alur Pembelajaran DevSecOps Google Cloud. Lanjutkan proses pembelajaran Anda di Alur Pembelajaran DevSecOps.
Langkah Berikutnya/Pelajari Lebih Lanjut
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 19 Mei 2025
Lab Terakhir Diuji pada 19 Mei 2025
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.