GSP659

Ringkasan
Menjalankan situs terkadang menyulitkan karena harus membuat dan mengelola VM, cluster, pod, layanan, dll. Hal ini tidak menjadi masalah untuk aplikasi multi-tingkat yang lebih besar, tetapi jika Anda hanya mencoba men-deploy dan membuat situs Anda terlihat, tentu akan menjadi beban yang besar.
Dengan Cloud Run, implementasi Google Cloud dari framework Knative Google, Anda dapat mengelola dan men-deploy situs tanpa beban infrastruktur yang Anda alami dengan VM atau deployment berbasis Kubernetes murni. Pendekatan ini bukan hanya lebih sederhana dari perspektif pengelolaan, tetapi juga memberi Anda kemampuan untuk "melakukan penskalaan hingga nol" ketika tidak ada permintaan yang masuk ke situs Anda.
Cloud Run menghadirkan pengembangan "serverless" ke container dan dapat dijalankan di cluster Google Kubernetes Engine (GKE) Anda sendiri atau di solusi PaaS yang terkelola sepenuhnya yang disediakan oleh Cloud Run. Anda akan menjalankan skenario terakhir di lab ini.
Latihan ini diurutkan untuk mencerminkan pengalaman developer cloud pada umumnya:
- Membuat container Docker dari aplikasi Anda
- Men-deploy container ke Cloud Run
- Memodifikasi situs
- Meluncurkan versi baru tanpa periode nonaktif
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara:
- Membangun image Docker menggunakan Cloud Build dan menguploadnya ke Artifact Registry
- Men-deploy image Docker ke Cloud Run
- Mengelola deployment Cloud Run
- Menyiapkan endpoint untuk aplikasi di Cloud Run
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 Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
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 Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar 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. Membuat clone repositori sumber
Karena Anda men-deploy situs yang sudah ada, Anda hanya perlu meng-clone sumbernya, sehingga Anda dapat berfokus pada pembuatan image Docker dan deployment ke Cloud Run.
- Di Cloud Shell, jalankan perintah berikut untuk meng-clone repositori git dan mengubah ke direktori yang sesuai:
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
- Instal dependensi NodeJS agar Anda dapat menguji aplikasi sebelum di-deploy:
./setup.sh
Proses ini akan memerlukan waktu beberapa menit. Setelah selesai, Anda akan melihat pesan bahwa penginstalan berhasil.
- Uji aplikasi Anda dengan menjalankan perintah berikut untuk memulai server web:
cd ~/monolith-to-microservices/monolith
npm start
Output:
Monolith listening on port 8080!
- Lihat pratinjau aplikasi Anda dengan mengklik ikon pratinjau web, lalu pilih Preview on port 8080.

Tindakan ini akan membuka jendela baru tempat Anda dapat melihat halaman web Fancy Store Anda beraksi.

- Tutup jendela ini setelah melihat situs, dan hentikan proses server web dengan menekan CTRL+C di Cloud Shell.
Tugas 2. Membuat container Docker dengan Cloud Build
Setelah file sumber siap, saatnya untuk melakukan Dockerize pada aplikasi Anda.
Biasanya, Anda harus mengambil pendekatan dua langkah yang mencakup pembuatan container docker dan mendorongnya ke registry untuk menyimpan image agar dapat ditarik dari GKE. Cloud Build memungkinkan Anda membangun container Docker dan menempatkan image di Artifact Registry dengan satu perintah.
Cloud Build akan mengompresi file dari direktori dan memindahkannya ke bucket Cloud Storage. Proses build kemudian akan mengambil semua file dari bucket dan menggunakan Dockerfile, yang ada di direktori yang sama, untuk menjalankan proses build Docker.
Membuat repositori Docker target
Anda harus membuat repositori sebelum dapat mengirim image apa pun ke dalamnya. Mengirim image tidak dapat memicu pembuatan repositori dan akun layanan Cloud Build tidak memiliki izin untuk membuat repositori.
-
Di konsol, telusuri Artifact Registry di kolom penelusuran, lalu klik hasil Artifact Registry.
-
Klik Create Repository.
-
Tentukan monolith-demo sebagai nama repositori.
-
Pilih Docker sebagai formatnya.
-
Pada Location Type, pilih Region lalu pilih lokasi .
-
Klik Create.
Mengonfigurasi autentikasi
Sebelum Anda dapat mengirim atau mengambil image, konfigurasikan Docker agar menggunakan Google Cloud CLI untuk mengautentikasi permintaan ke Artifact Registry.
- Untuk menyiapkan autentikasi ke repositori Docker di region , jalankan perintah berikut di Cloud Shell:
gcloud auth configure-docker {{{project_0.default_region | Region}}}-docker.pkg.dev
Perintah ini mengupdate konfigurasi Docker Anda. Sekarang Anda dapat terhubung dengan Artifact Registry di project Google Cloud untuk mengirim dan mengambil image.
Men-deploy image
Sekarang Anda akan men-deploy image yang telah dibuat sebelumnya.
- Pertama-tama, Anda perlu mengaktifkan Cloud Build, Artifact Registry, dan Cloud Run API. Jalankan perintah berikut di Cloud Shell untuk mengaktifkannya:
gcloud services enable artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com
- Setelah API diaktifkan, jalankan perintah berikut untuk memulai proses build:
gcloud builds submit --tag {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0
Catatan: Proses ini akan memakan waktu beberapa menit.
- Untuk melihat histori build Anda, atau melihat prosesnya secara real time, di konsol, cari Cloud Build, lalu klik hasil Cloud Build.
- Di halaman History, Anda dapat melihat daftar semua build Anda; hanya ada 1 yang baru saja Anda buat.

-
Jika Anda mengklik Build ID, Anda dapat melihat semua detail untuk build tersebut, termasuk output log.
-
Dari halaman Build Details, Anda dapat melihat image container yang dibuat dengan mengklik tab Execution Details, lalu mengklik link image.

Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat Container Docker dengan Google Cloud Build
Tugas 3. Men-deploy container ke Cloud Run
Setelah Anda membuat container untuk situs dan mengirim container tersebut ke Artifact Registry, sekarang saatnya men-deploy ke Cloud Run.
Ada dua pendekatan untuk men-deploy ke Cloud Run:
-
Cloud Run Terkelola: Model Platform as a Service yang mengelola seluruh siklus proses container oleh produk Cloud Run itu sendiri. Anda akan menggunakan pendekatan ini di lab ini.
-
Cloud Run di GKE: Cloud Run dengan lapisan kontrol tambahan yang memungkinkan Anda membawa cluster & pod sendiri dari GKE. Anda dapat membaca informasinya lebih lanjut di sini.
- Jalankan perintah berikut untuk men-deploy image ke Cloud Run:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}}
- Saat diminta untuk mengizinkan pemanggilan yang tidak diautentikasi ke
[monolith], ketik Y.
Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy Container Ke Cloud Run
Verifikasi deployment
- Untuk memverifikasi bahwa deployment berhasil dibuat, jalankan perintah berikut:
gcloud run services list
Catatan: Mungkin perlu waktu beberapa saat agar status pod menjadi Running.
Output:
✔
SERVICE: monolith
REGION: {{{project_0.default_region | Region}}}
URL: https://monolith-2cxtmp4m2q-uc.a.run.app
LAST DEPLOYED BY: student-02-aa7a5aed362d@qwiklabs.net
LAST DEPLOYED AT: 2022-08-19T19:16:14.351981Z
Output ini menunjukkan beberapa hal. Anda dapat melihat deployment, serta pengguna yang men-deploy-nya (email Anda) dan URL yang dapat Anda gunakan untuk mengakses aplikasi. Sepertinya semuanya berhasil dibuat.
- Klik URL yang disediakan dalam daftar layanan. Anda akan melihat situs yang sama dengan yang Anda pratinjau secara lokal.
Catatan: Anda juga dapat melihat deployment Cloud Run melalui konsol jika Anda membuka Cloud Run di Navigation menu.
Tugas 4. Membuat revisi baru dengan konkurensi yang lebih rendah
Di bagian ini, Anda akan men-deploy aplikasi Anda lagi, tetapi kali ini menyesuaikan salah satu parameter.
Secara default, aplikasi Cloud Run akan memiliki nilai konkurensi 80, yang berarti setiap instance container akan melayani hingga 80 permintaan sekaligus. Hal ini sangat berbeda dengan model Functions-as-a-Service, di mana satu instance menangani satu permintaan dalam satu waktu.
- Jalankan perintah berikut untuk men-deploy ulang image container yang sama dengan nilai konkurensi 1 (hanya untuk pengujian), dan lihat apa yang terjadi:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}} --concurrency 1
- Untuk melihat detailnya, dari Navigation menu, klik Cloud Run, lalu klik layanan monolith:

- Di halaman Service Details, klik tab Revisions. Sekarang Anda akan melihat 2 revisi yang dibuat.
Deployment terbaru memiliki Detail di sisi kanan.

Anda akan melihat bahwa nilai concurrency telah dikurangi menjadi "1".

Meskipun konfigurasi ini cukup untuk pengujian, dalam sebagian besar skenario produksi, Anda akan memiliki container yang mendukung beberapa permintaan serentak.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat revisi baru dengan konkurensi yang lebih rendah
Selanjutnya, Anda dapat memulihkan konkurensi asli tanpa melakukan deployment ulang. Anda dapat menetapkan nilai konkurensi kembali ke default "80", atau Anda dapat menetapkan nilai ke "0", yang akan menghapus batasan konkurensi dan menetapkannya ke maksimum default (yang kebetulan 80).
- Jalankan perintah berikut untuk mengupdate revisi saat ini, menggunakan nilai konkurensi
80:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}} --concurrency 80
Anda akan melihat bahwa revisi lain telah dibuat, traffic kini telah dialihkan, dan konkurensi kembali naik menjadi 80.
Catatan:
Anda mungkin perlu keluar dari tab Revisions lalu kembali lagi untuk melihat informasi terbaru.
Tugas 5. Membuat perubahan pada situs
Skenario: Tim pemasaran telah meminta Anda mengubah halaman beranda situs Anda. Menurut mereka, halaman ini harus lebih informatif terkait apa perusahaan Anda dan apa yang sebenarnya Anda jual.
Tugas: Anda akan menambahkan teks ke beranda agar tim pemasaran merasa senang. Sepertinya salah satu developer kami telah membuat perubahan itu dengan nama file index.js.new. Anda cukup menyalin file ini ke index.js dan perubahan Anda akan diterapkan. Ikuti petunjuk di bawah ini untuk melakukan perubahan yang sesuai.
- Jalankan perintah berikut untuk menyalin file yang telah diperbarui itu ke nama file yang benar:
cd ~/monolith-to-microservices/react-app/src/pages/Home
mv index.js.new index.js
- Cetak kontennya untuk memverifikasi perubahan:
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js
Kode yang dihasilkan akan terlihat seperti ini:
/*
Copyright 2019 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.
*/
import React from "react";
import { Box, Paper, Typography } from "@mui/material";
export default function Home() {
return (
<Box sx={{ flexGrow: 1 }}>
<Paper
elevation={3}
sx={{
width: "800px",
margin: "0 auto",
padding: (theme) => theme.spacing(3, 2),
}}
>
<Typography variant="h5">Fancy Fashion & Style Online</Typography>
<br />
<Typography variant="body1">
Tired of mainstream fashion ideas, popular trends and societal norms?
This line of lifestyle products will help you catch up with the Fancy
trend and express your personal style. Start shopping Fancy items now!
</Typography>
</Paper>
</Box>
);
}
Anda telah mengupdate komponen React, tetapi Anda perlu membangun aplikasi React untuk menghasilkan file statisnya.
- Jalankan perintah berikut untuk membangun aplikasi React dan menyalinnya ke direktori publik monolith:
cd ~/monolith-to-microservices/react-app
npm run build:monolith
Setelah kode diperbarui, bangun kembali container Docker dan publikasikan ke Artifact Registry. Anda dapat menggunakan perintah yang sama seperti sebelumnya, kecuali kali ini Anda akan mengupdate label versi.
- Jalankan perintah berikut untuk memicu Cloud Build baru dengan versi image yang diperbarui 2.0.0:
cd ~/monolith-to-microservices/monolith
gcloud builds submit --tag {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0
Di bagian berikutnya, Anda akan menggunakan image ini untuk mengupdate aplikasi tanpa periode nonaktif.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat Perubahan pada Situs
Tugas 6. Mengupdate situs tanpa periode nonaktif
Perubahan telah selesai dan tim pemasaran puas dengan pembaruan Anda. Saatnya mengupdate situs tanpa mengganggu pengguna. Cloud Run memperlakukan setiap deployment sebagai Revisi baru yang akan diaktifkan terlebih dahulu, lalu traffic akan dialihkan ke revisi tersebut.
Secara default, revisi terbaru akan diberi 100% traffic masuk untuk suatu layanan. Anda dapat menggunakan "Rute" untuk mengalokasikan persentase traffic yang berbeda ke revisi yang berbeda dalam suatu layanan. Ikuti petunjuk di bawah untuk memperbarui situs Anda.
- Jalankan perintah berikut untuk men-deploy ulang layanan guna mengupdate image ke versi baru dengan perintah berikut:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0 --region {{{project_0.default_region | Region}}}
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengupdate situs tanpa periode nonaktif
Verifikasi deployment
- Validasi bahwa deployment Anda telah diupdate dengan menjalankan perintah berikut:
gcloud run services describe monolith --platform managed --region {{{project_0.default_region | Region}}}
Output:
✔ Service monolith in region
URL: https://monolith-hl5loimtga-uc.a.run.app
Ingress: all
Traffic:
100% LATEST (currently monolith-00005-xum)
Last updated on 2022-08-19T18:39:39.885859Z by student-02-9af04e268b9e@qwiklabs.net:
Revision monolith-00005-xum
Image: -docker.pkg.dev/qwiklabs-gcp-00-30d07cf3de5b/monolith-demo/monolith:2.0.0
Port: 8080
Memory: 512Mi
CPU: 1000m
Service account: 467160385597-compute@developer.gserviceaccount.com
Concurrency: 80
Max Instances: 1
Timeout: 300s
Di sini Anda akan melihat bahwa Layanan sekarang menggunakan versi terbaru image Anda, yang di-deploy dalam revisi baru.
Untuk memverifikasi perubahan, buka URL eksternal layanan Cloud Run, muat ulang halaman, dan perhatikan bahwa judul aplikasi telah diupdate.
- Jalankan perintah berikut untuk mencantumkan layanan dan melihat URL layanan:
gcloud beta run services list
- Klik URL layanan. Situs Anda sekarang akan menampilkan teks yang baru saja Anda tambahkan ke komponen halaman beranda.

Selamat!
Anda telah berhasil men-deploy, mengurangi skala, meningkatkan skala, dan mengupdate situs Anda di Cloud Run.
Langkah berikutnya/Pelajari lebih lanjut
Jika Anda belum memahami produk ini, berikut link untuk mempelajari lebih lanjut:
Manual Terakhir Diperbarui pada 31 Desember 2025
Lab Terakhir Diuji pada 31 Desember 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.