Checkpoint
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
Mengimplementasikan Alur Kerja DevOps di Google Cloud: Challenge Lab
GSP330
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 Implement DevOps Workflows in Google Cloud. Apakah Anda siap menghadapi tantangan ini?
Sebelum mengklik tombol Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Skenario tantangan
Sebagai orang yang baru saja direkrut sebagai DevOps Engineer di Cymbal Superstore beberapa bulan silam, Anda telah mendalami seluk beluk perusahaan dalam mengoperasikan website e-commercenya. Khususnya, tim DevOps yang tengah mengerjakan pipeline CI/CD berskala besar dan mereka membutuhkan bantuan Anda untuk membangunnya. Hal ini memungkinkan perusahaan untuk membantu developer mengotomatiskan tugas, berkolaborasi secara lebih efektif dengan tim lain, serta meluncurkan software secara lebih sering dan lebih andal. Pengalaman Anda dengan Cloud Source Repositories, Artifact Registry, Docker, dan Cloud Build akan sangat membantu karena Cymbal Superstore bermaksud menggunakan seluruh layanan native Google Cloud untuk pipeline mereka.
Sebelum Anda memulai project ini, tim DevOps ingin agar Anda menunjukkan keahlian yang baru Anda pelajari. Sebagai bagian dari demonstrasi ini, mereka membuat daftar yang berisikan tugas-tugas yang harus Anda selesaikan dalam kurun waktu tertentu dalam lingkungan sandbox.
Tantangan Anda
Tugas Anda adalah sebagai berikut:
- Menciptakan cluster GKE berdasarkan rangkaian konfigurasi yang telah disediakan.
- Membangun Google Source Repository untuk menghosting kode aplikasi Go Anda.
- Membuat Pemicu Cloud Build yang men-deploy aplikasi produksi dan pengembangan.
- Meneruskan update ke aplikasi dan menciptakan build baru.
- Me-roll back aplikasi produksi ke versi pendahulunya.
Secara umum, Anda membuat pipeline CI/CD yang sederhana menggunakan Cloud Source Repositories, Artifact Registry, dan Cloud Build.
Tugas 1. Membuat resource lab
Pada bagian ini, Anda akan melakukan inisialisasi terhadap project Google Cloud Anda untuk lingkungan demo. Anda akan mengaktifkan API yang diperlukan, mengonfigurasi Git di Cloud Shell, menciptakan repositori Docker Artifact Registry, dan membuat cluster GKE untuk menjalankan aplikasi produksi dan pengembangan Anda.
- Jalankan perintah berikut guna mengaktifkan API untuk GKE, Cloud Build, dan Cloud Source Repositories:
- Tambahkan peran Kubernetes Developer ke akun layanan Cloud Build:
- Jalankan perintah berikut untuk mengonfigurasi Git di Cloud Shell, dengan mengganti
<email>
dengan alamat email lab yang dibuat dan<name>
dengan nama Anda.
-
Buat repositori Docker Artifact Registry dengan nama my-repository dalam region
untuk menyimpan image container Anda. -
Buat cluster GKE Standard dengan nama
hello-cluster
menggunakan konfigurasi berikut ini:
Setelan | Nilai |
---|---|
Zone | |
Release channel | Regular |
Cluster version |
1.29 atau yang lebih baru
|
Cluster autoscaler | Enabled |
Number of nodes | 3 |
Minimum nodes | 2 |
Maximum nodes | 6 |
- Buat namespace
prod
dandev
pada cluster Anda.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 2. Membuat repositori di Cloud Source Repositories
Dalam tugas ini, Anda akan membuat sample-app repositori di Cloud Source Repositories dan melakukan inisialisasi terhadapnya dengan kode contoh. Repositori ini menyimpan kode aplikasi Go Anda, dan menjadi sumber utama untuk memicu build.
-
Buat repositori kosong dengan nama sample-app di Cloud Source Repositories.
-
Cloning Cloud Source Repository sample-app di Cloud Shell.
-
Gunakan perintah berikut untuk menyalin kode contoh ke direktori
sample-app
:
- Jalankan perintah berikut, yang secara otomatis akan menggantikan placeholder
<your-region>
dan<your-zone>
di filecloudbuild-dev.yaml
dancloudbuild.yaml
sesuai region dan zona yang ditentukan dalam project Anda:
-
Lakukan commit pertama menggunakan kode contoh yang ditambahkan ke direktori
sample-app
, dan teruskan perubahan ke cabang master. -
Buat cabang dengan nama dev. Buat commit menggunakan kode contoh yang ditambahkan ke direktori
sample-app
dan teruskan perubahan ke cabang dev. -
Konfirmasi bahwa Anda memiliki kode contoh dan cabang yang tersimpan dalam Source Repository.
Kode yang baru saja Anda clone berisi aplikasi Go sederhana dengan dua titik entri: Red dan Blue. Masing-masing menampilkan kotak berwarna sederhana di halaman web, tergantung dari titik entri yang Anda tuju.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 3. Membuat Pemicu Cloud Build
Pada bagian ini, Anda membuat dua Pemicu Cloud Build.
-
Pemicu pertama memproses perubahan pada cabang
master
dan membangun image Docker dari aplikasi Anda, meneruskannya ke Google Artifact Registry, dan men-deploy versi terbaru image ke namespace prod pada cluster GKE. -
Pemicu kedua memproses perubahan pada cabang
dev
dan membangun image Docker untuk aplikasi Anda dan meneruskannya ke Google Artifact Registry, dan men-deploy versi terbaru image ke namespace dev pada cluster GKE Anda.
-
Buat Pemicu Cloud Build dengan nama sample-app-prod-deploy dengan konfigurasi sebagai berikut:
- Event: Push to a branch
- Source Repository:
sample-app
- Branch:
^master$
- Cloud Build Configuration File:
cloudbuild.yaml
-
Buat Pemicu Cloud Build dengan nama sample-app-dev-deploy dengan konfigurasi sebagai berikut:
- Event: Push to a branch
- Source Repository:
sample-app
- Branch:
^dev$
- Cloud Build Configuration File:
cloudbuild-dev.yaml
Setelah menyiapkan pemicu, semua perubahan pada cabang akan memicu pipeline Cloud Build terkait, yang membangun dan men-deploy aplikasi seperti yang dirinci dalam file cloudbuild.yaml
.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 4. Men-deploy versi pertama aplikasi
Pada bagian ini, Anda membangun versi awal dari aplikasi produksi dan aplikasi pengembangan.
Membangun deployment pengembangan pertama
-
Di Cloud Shell, periksa file
cloudbuild-dev.yaml
yang terletak dalam direktori sample-app untuk melihat langkah-langkah dalam proses build. Dalam filecloudbuild-dev.yaml
, ganti<version>
pada baris 9 dan 13 denganv1.0
. -
Buka file
dev/deployment.yaml
dan ganti<todo>
pada baris 17 dengan nama image container yang tepat. Selain itu, ganti variabelPROJECT_ID
dengan project ID yang sebenarnya pada nama image container.
-
Buat commit dengan perubahan yang Anda lakukan pada cabang
dev
dan teruskan perubahan untuk memicu tugas build sample-app-dev-deploy. -
Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi development-deployment di-deploy ke namespace
dev
cluster. -
Ekspos deployment development-deployment ke layanan LoadBalancer dengan nama
dev-deployment-service
di port 8080, dan sesuaikan port sasaran container dengan yang dirinci pada Dockerfile. -
Buka IP Load Balancer layanan dan tambahkan titik entri
/blue
di akhir URL untuk memverifikasi bahwa aplikasi telah aktif dan berjalan. IP akan terlihat seperti berikut ini:http://34.135.97.199:8080/blue
.
Membangun deployment produksi pertama
-
Pindah ke cabang
master
. Periksa filecloudbuild.yaml
yang terletak di direktori sample-app untuk melihat langkah-langkah dalam proses build. Pada filecloudbuild.yaml
, ganti<version>
pada baris 11 dan 16 denganv1.0
. -
Buka file
prod/deployment.yaml
dan update<todo>
pada baris 17 dengan nama image container yang tepat. Selain itu, ganti variabelPROJECT_ID
dengan project ID yang sebenarnya pada nama image container.
-
Buat commit dengan perubahan yang Anda lakukan pada cabang
master
dan teruskan perubahan untuk memicu tugas build sample-app-prod-deploy. -
Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi production-deployment di-deploy ke namespace
prod
cluster. -
Ekspos deployment production-deployment pada namespace
prod
ke layanan LoadBalancer dengan namaprod-deployment-service
di port 8080, dan sesuaikan port sasaran container dengan yang dirinci pada Dockerfile. -
Buka IP Load Balancer layanan dan tambahkan titik entri
/blue
di akhir URL untuk memverifikasi bahwa aplikasi telah aktif dan berjalan. IP akan terlihat seperti berikut ini:http://34.135.245.19:8080/blue
.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 5. Men-deploy versi kedua aplikasi
Pada bagian ini, Anda akan membangun versi kedua aplikasi produksi dan aplikasi pengembangan.
Membangun deployment pengembangan kedua
- Beralihlah kembali ke cabang
dev
.
- Pada file
main.go
, update fungsimain()
menjadi:
- Tambahkan fungsi berikut ini ke dalam file
main.go
:
-
Periksa file
cloudbuild-dev.yaml
untuk melihat langkah-langkah dalam proses build. Update versi image Docker menjadiv2.0
. -
Buka file
dev/deployment.yaml
dan ubah nama image container ke versi baru (v2.0
). -
Buat commit dengan perubahan yang Anda lakukan pada cabang
dev
dan teruskan perubahan untuk memicu tugas build sample-app-dev-deploy. -
Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi development-deployment di-deploy ke namespace
dev
cluster serta menggunakan imagev2.0
-
Buka IP Load Balancer layanan dan tambahkan titik entri
/red
di akhir URL untuk mengonfirmasi bahwa aplikasi telah aktif dan berjalan. IP akan terlihat seperti berikut ini:http://34.135.97.199:8080/red
.
Membangun deployment produksi kedua
- Pindah ke cabang
master
.
- Pada file
main.go
, update fungsimain()
menjadi:
- Tambahkan fungsi berikut ini ke dalam file
main.go
:
-
Periksa file
cloudbuild.yaml
untuk melihat langkah-langkah dalam proses build. Update versi image Docker menjadiv2.0
. -
Buka file
prod/deployment.yaml
dan ubah nama image container ke versi baru (v2.0
). -
Buat commit dengan perubahan yang Anda lakukan pada cabang
master
dan teruskan perubahan untuk memicu tugas build sample-app-prod-deploy. -
Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi production-deployment di-deploy ke namespace
prod
cluster serta menggunakan imagev2.0
. -
Buka IP Load Balancer layanan dan tambahkan titik entri
/red
di akhir URL untuk mengonfirmasi bahwa aplikasi telah aktif dan berjalan. IP akan terlihat seperti berikut ini:http://34.135.245.19:8080/red
.
Baik. Anda telah berhasil membuat pipeline CI/CD produksi dan pengembangan yang berfungsi penuh.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 6. Me-roll back deployment produksi
Pada bagian ini, Anda melakukan rollback deployment produksi ke versi sebelumnya.
- Roll back production-deployment untuk menggunakan versi
v1.0
aplikasi.
- Buka IP Load Balancer layanan dan tambahkan titik entri
/red
di akhir URL deployment produksi dan respons pada halaman tersebut seharusnya404
.
Klik Check my progress untuk memverifikasi tujuan.
Selamat!
Selamat! Di lab ini, Anda telah memverifikasi keahlian Anda dalam mengimplementasikan alur kerja DevOps di Google Cloud. Pertama-tama Anda membuat cluster GKE untuk menjalankan aplikasi dan repositori git untuk menghosting code base Anda. Anda kemudian membuat Pemicu Cloud Build, memodifikasi kode dan template, serta meneruskan update ke repo yang membuat build aplikasi pengembangan dan aplikasi produksi pertama Anda. Anda kemudian meneruskan update ke aplikasi untuk membuat build baru dan me-roll back aplikasi produksi ke versi sebelumnya. Anda kini siap untuk memulai tugas DevOps di lingkungan Anda sendiri!
Mendapatkan badge keahlian Anda berikutnya
Lab mandiri ini adalah bagian dari kursus Implement DevOps Workflows in 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.
Badge keahlian ini merupakan bagian dari jalur pembelajaran Cloud Devops Engineer dari Google Cloud. Lanjutkan proses pembelajaran Anda dengan mendaftarkan diri di kursus Monitor and Log with Google Cloud Observability.
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 26 Juni 2024
Lab Terakhir Diuji pada 26 Juni 2024
Hak cipta 2024 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.