arrow_back

Mengimplementasikan Alur Kerja DevOps di Google Cloud: Challenge Lab

Login Gabung
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Mengimplementasikan Alur Kerja DevOps di Google Cloud: Challenge Lab

Lab 1 jam 30 menit universal_currency_alt 5 Kredit show_chart Menengah
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP330

Lab Mandiri Google Cloud

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).
Catatan: Gunakan jendela Samaran 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

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.

logo cymbal superstore

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.

  1. Jalankan perintah berikut guna mengaktifkan API untuk GKE, Cloud Build, dan Cloud Source Repositories:
gcloud services enable container.googleapis.com \ cloudbuild.googleapis.com \ sourcerepo.googleapis.com
  1. Tambahkan peran Kubernetes Developer ke akun layanan Cloud Build:
export PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")@cloudbuild.gserviceaccount.com --role="roles/container.developer"
  1. Jalankan perintah berikut untuk mengonfigurasi Git di Cloud Shell, dengan mengganti <email> dengan alamat email lab yang dibuat dan <name> dengan nama Anda.
git config --global user.email <email> git config --global user.name <name>
  1. Buat repositori Docker Artifact Registry dengan nama my-repository dalam region untuk menyimpan image container Anda.

  2. Buat cluster GKE Standard dengan nama hello-cluster menggunakan konfigurasi berikut ini:

Setelan Nilai
Zone
Release channel Regular
Cluster version 1.29.1-gke.1589020 atau versi yang lebih baru
Cluster autoscaler Enabled
Number of nodes 3
Minimum nodes 2
Maximum nodes 6
  1. Buat namespace prod dan dev pada cluster Anda.

Klik Check my progress untuk memverifikasi tujuan. Membuat resource lab

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.

  1. Buat repositori kosong dengan nama sample-app di Cloud Source Repositories.

  2. Cloning Cloud Source Repository sample-app di Cloud Shell.

  3. Gunakan perintah berikut untuk menyalin kode contoh ke direktori sample-app:

cd ~ gsutil cp -r gs://spls/gsp330/sample-app/* sample-app
  1. Jalankan perintah berikut, yang secara otomatis akan menggantikan placeholder <your-region> dan <your-zone> di file cloudbuild-dev.yaml dan cloudbuild.yaml sesuai region dan zona yang ditentukan dalam project Anda:
export REGION="{{{project_0.default_region | REGION}}}" export ZONE="{{{project_0.default_zone | ZONE}}}" for file in sample-app/cloudbuild-dev.yaml sample-app/cloudbuild.yaml; do sed -i "s/<your-region>/${REGION}/g" "$file" sed -i "s/<your-zone>/${ZONE}/g" "$file" done
  1. Lakukan commit pertama menggunakan kode contoh yang ditambahkan ke direktori sample-app, dan teruskan perubahan ke cabang master.

  2. Buat cabang dengan nama dev. Buat commit menggunakan kode contoh yang ditambahkan ke direktori sample-app dan teruskan perubahan ke cabang dev.

  3. Konfirmasi bahwa Anda memiliki kode contoh dan cabang yang tersimpan dalam Source Repository.

source repository dengan cabang

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. Membuat repositori di Cloud Source Repositories

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.

  1. 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
  2. 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. Membuat Pemicu Cloud Build

Tugas 4. Men-deploy versi pertama aplikasi

Pada bagian ini, Anda membangun versi awal dari aplikasi produksi dan aplikasi pengembangan.

Membangun deployment pengembangan pertama

  1. Di Cloud Shell, periksa file cloudbuild-dev.yaml yang terletak dalam direktori sample-app untuk melihat langkah-langkah dalam proses build. Dalam file cloudbuild-dev.yaml, ganti <version> pada baris 9 dan 13 dengan v1.0.

  2. Buka file dev/deployment.yaml dan ganti <todo> pada baris 17 dengan nama image container yang tepat. Selain itu, ganti variabel PROJECT_ID dengan project ID yang sebenarnya pada nama image container.

Catatan: Pastikan Anda menggunakan nama image container yang sama pada file dev/deployment.yaml dan cloudbuild-dev.yaml.
  1. Buat commit dengan perubahan yang Anda lakukan pada cabang dev dan teruskan perubahan untuk memicu tugas build sample-app-dev-deploy.

  2. Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi development-deployment di-deploy ke namespace dev cluster.

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

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

  1. Pindah ke cabang master. Periksa file cloudbuild.yaml yang terletak di direktori sample-app untuk melihat langkah-langkah dalam proses build. Pada file cloudbuild.yaml, ganti <version> pada baris 11 dan 16 dengan v1.0.

  2. Buka file prod/deployment.yaml dan update <todo> pada baris 17 dengan nama image container yang tepat. Selain itu, ganti variabel PROJECT_ID dengan project ID yang sebenarnya pada nama image container.

Catatan: Pastikan Anda menggunakan nama image container yang sama pada file prod/deployment.yaml dan cloudbuild.yaml.
  1. Buat commit dengan perubahan yang Anda lakukan pada cabang master dan teruskan perubahan untuk memicu tugas build sample-app-prod-deploy.

  2. Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi production-deployment di-deploy ke namespace prod cluster.

  3. Ekspos deployment production-deployment pada namespace prod ke layanan LoadBalancer dengan nama prod-deployment-service di port 8080, dan sesuaikan port sasaran container dengan yang dirinci pada Dockerfile.

  4. 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. Men-deploy versi pertama aplikasi

Tugas 5. Men-deploy versi kedua aplikasi

Pada bagian ini, Anda akan membangun versi kedua aplikasi produksi dan aplikasi pengembangan.

Membangun deployment pengembangan kedua

  1. Beralihlah kembali ke cabang dev.
Catatan: Sebelum melanjutkan, pastikan Anda berada pada cabang dev guna membuat deployment untuk lingkungan dev.
  1. Pada file main.go, update fungsi main() menjadi:
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Tambahkan fungsi berikut ini ke dalam file main.go:
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Periksa file cloudbuild-dev.yaml untuk melihat langkah-langkah dalam proses build. Update versi image Docker menjadi v2.0.

  2. Buka file dev/deployment.yaml dan ubah nama image container ke versi baru (v2.0).

  3. Buat commit dengan perubahan yang Anda lakukan pada cabang dev dan teruskan perubahan untuk memicu tugas build sample-app-dev-deploy.

  4. Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi development-deployment di-deploy ke namespace dev cluster serta menggunakan image v2.0

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

Catatan: mungkin diperlukan waktu beberapa menit agar pembaruan diterapkan ke load balancer Anda.

Membangun deployment produksi kedua

  1. Pindah ke cabang master.
Catatan: Sebelum melanjutkan, pastikan Anda berada pada cabang master guna membuat deployment untuk lingkungan master.
  1. Pada file main.go, update fungsi main() menjadi:
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Tambahkan fungsi berikut ini ke dalam file main.go:
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Periksa file cloudbuild.yaml untuk melihat langkah-langkah dalam proses build. Update versi image Docker menjadi v2.0.

  2. Buka file prod/deployment.yaml dan ubah nama image container ke versi baru (v2.0).

  3. Buat commit dengan perubahan yang Anda lakukan pada cabang master dan teruskan perubahan untuk memicu tugas build sample-app-prod-deploy.

  4. Verifikasi bahwa build berhasil dijalankan di halaman Cloud build History, dan verifikasi bahwa aplikasi production-deployment di-deploy ke namespace prod cluster serta menggunakan image v2.0.

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

Catatan: mungkin diperlukan waktu beberapa menit agar pembaruan diterapkan ke load balancer Anda.

Baik. Anda telah berhasil membuat pipeline CI/CD produksi dan pengembangan yang berfungsi penuh.

Klik Check my progress untuk memverifikasi tujuan. Men-deploy versi kedua aplikasi

Tugas 6. Me-roll back deployment produksi

Pada bagian ini, Anda melakukan rollback deployment produksi ke versi sebelumnya.

  1. Roll back production-deployment untuk menggunakan versi v1.0 aplikasi.
Petunjuk: Dengan menggunakan histori pada Cloud Build, Anda dapat dengan mudah melakukan rollback/membangun kembali deployment dengan versi sebelumnya.
  1. Buka IP Load Balancer layanan dan tambahkan titik entri /red di akhir URL deployment produksi dan respons pada halaman tersebut seharusnya 404.

Klik Check my progress untuk memverifikasi tujuan. Me-roll back deployment produksi

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!

Badge keahlian Implement Devops Workflows

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 13 Mei 2024

Lab Terakhir Diuji pada 13 Mei 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.