GSP1123
Ringkasan
Mengelola pembuatan, deployment, dan update aplikasi yang sedang berjalan merupakan inti dari operasi cloud. Beberapa pertanyaan penting berpusat pada pengoptimalan resource untuk memenuhi SLA, deployment perubahan kode, update VM yang lancar, dan konfigurasi load balancing/jaringan. Azure memanfaatkan pipeline DevOps, set skala virtual machine untuk penskalaan otomatis, dan Azure IAM untuk kontrol akses. Entitas layanan sangat penting untuk menjalankan aplikasi dan komunikasi, sementara jaringan virtual, load balancer, pemeriksaan kondisi, dan set ketersediaan melengkapi penyiapan infrastruktur. Mengupdate VM dapat melibatkan update image, deployment ulang, atau update instance terkelola dengan pemeliharaan terjadwal.
Google Cloud menawarkan fleksibilitas yang sebanding. Skrip startup dapat mengambil pembaruan kode, sehingga memfasilitasi update bertahap tanpa periode nonaktif. Meskipun solusi seperti GKE dan App Engine sudah ada, Compute Engine memberikan kontrol terperinci atas VM dan load balancer. Lab ini akan mendemonstrasikan deployment dan penskalaan aplikasi e-commerce “Fancy Store” di Compute Engine, dengan menyoroti pendekatan yang sangat efektif ini untuk mengelola aplikasi web.
Tujuan
Dalam lab ini, Anda akan mempelajari cara melakukan tugas berikut:
Di akhir lab, Anda akan memiliki instance di dalam grup instance terkelola untuk menyediakan autohealing, load balancing, penskalaan otomatis, dan update bertahap untuk situs Anda.
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
-
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.
-
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 setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
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.
-
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.
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.
Menetapkan zona default
- Tetapkan konfigurasi project dan zona default:
gcloud config set compute/zone {{{project_0.default_zone|ZONE}}}
Pelajari lebih lanjut dari dokumentasi Region & Zona.
Catatan: Saat Anda menjalankan gcloud di mesin Anda sendiri, setelan konfigurasi akan disimpan di seluruh sesi. Namun, di Cloud Shell, Anda perlu menetapkan setelan ini untuk setiap sesi atau koneksi ulang baru.
Tugas 1. Mengaktifkan Compute Engine API dan editor
Selanjutnya, aktifkan Compute Engine API.
- Jalankan perintah berikut untuk mengaktifkan Compute Engine API:
gcloud services enable compute.googleapis.com
Tugas 2. Membuat bucket Cloud Storage
Dalam tugas ini, Anda akan mengonfigurasi bucket Cloud Storage untuk menampung kode yang Anda buat serta skrip startup Anda.
- Dari dalam Cloud Shell, jalankan perintah berikut untuk membuat bucket Cloud Storage baru:
gcloud storage buckets create gs://fancy-store-{{{project_0.project_id | BUCKET}}}
Klik Periksa progres saya untuk memverifikasi tujuan. Membuat bucket Cloud Storage
Tugas 3. Membuat clone repositori sumber
Anda akan menggunakan situs e-commerce Fancy Store yang sudah ada yang didasarkan pada repositori monolith-to-microservices sebagai dasar untuk situs Anda.
Dalam tugas ini, Anda akan membuat clone kode sumber sehingga dapat berfokus pada aspek deployment ke Compute Engine. Nanti dalam lab ini, Anda akan membuat perubahan kecil pada kode tersebut untuk menunjukkan kemudahan mengubah kode di Compute Engine.
- Jalankan perintah berikut untuk membuat clone kode sumber, lalu buka direktori
monolith-to-microservices:
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
- Jalankan build awal kode agar aplikasi dapat dijalankan secara lokal:
./setup.sh
Perlu waktu beberapa menit hingga skrip ini selesai.
- Setelah selesai, pastikan Cloud Shell menjalankan versi nodeJS yang kompatibel dengan perintah berikut:
{{{project_0.startup_script.node_nvm_command | nvm install --lts}}}
- Selanjutnya, jalankan perintah berikut untuk menguji aplikasi, beralih ke direktori
microservices, dan memulai server web:
cd microservices
npm start
Output Anda akan terlihat seperti berikut.
Output:
Products microservice listening on port 8082!
Frontend microservice listening on port 8080!
Orders microservice listening on port 8081!
- Lihat pratinjau aplikasi Anda dengan mengklik ikon pratinjau web, lalu pilih Preview on port 8080.

Tindakan ini akan membuka jendela baru dan Anda dapat melihat frontend Fancy Store.
Catatan: Dalam opsi Preview, Anda akan dapat melihat Frontend. Namun, fungsi Products dan Orders tidak akan berfungsi karena layanan tersebut belum terekspos.
- Tutup jendela ini setelah Anda melihat situs, kemudian tekan CTRL+C di jendela terminal untuk menghentikan proses server web.
Tugas 4. Membuat instance Compute Engine
Sekarang saatnya mulai men-deploy instance Compute Engine.
Dalam langkah-langkah selanjutnya, Anda akan melakukan beberapa tindakan:
- Membuat skrip startup untuk mengonfigurasi instance.
- Membuat clone kode sumber dan menguploadnya ke Cloud Storage.
- Men-deploy instance Compute Engine untuk menghosting microservice backend.
- Mengonfigurasi ulang kode frontend untuk memanfaatkan instance microservice backend.
- Men-deploy instance Compute Engine untuk menghosting microservice frontend.
- Mengonfigurasi jaringan untuk memungkinkan komunikasi.
Membuat skrip startup
Skrip startup digunakan agar setiap kali dimulai, instance tahu apa yang harus dilakukan. Dengan cara ini, instance akan dikonfigurasi secara otomatis.
- Klik Open Editor pada toolbar Cloud Shell untuk membuka Editor Kode.

-
Buka folder monolith-to-microservices.
-
Klik File > New File, lalu buat file bernama startup-script.sh.
-
Tempelkan kode berikut ke dalam file.
#!/bin/bash
# Install logging monitor. The monitor will automatically pick up logs sent to
# syslog.
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash
service google-fluentd restart &
# Install dependencies from apt
apt-get update
apt-get install -yq ca-certificates git build-essential supervisor psmisc
# Install nodejs
mkdir /opt/nodejs
curl https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.gz | tar xvzf - -C /opt/nodejs --strip-components=1
ln -s /opt/nodejs/bin/node /usr/bin/node
ln -s /opt/nodejs/bin/npm /usr/bin/npm
# Get the application source code from the Google Cloud Storage bucket.
mkdir /fancy-store
gcloud storage cp -r gs://fancy-store-[PROJECT_ID]/monolith-to-microservices/microservices/* /fancy-store/
# Install app dependencies.
cd /fancy-store/
npm install
# Create a nodeapp user. The application will run as this user.
useradd -m -d /home/nodeapp nodeapp
chown -R nodeapp:nodeapp /opt/app
# Configure supervisor to run the node app.
cat >/etc/supervisor/conf.d/node-app.conf << EOF
[program:nodeapp]
directory=/fancy-store
command=npm start
autostart=true
autorestart=true
user=nodeapp
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production"
stdout_logfile=syslog
stderr_logfile=syslog
EOF
supervisorctl reread
supervisorctl update
-
Klik File > Save untuk menyimpan file.
-
Di Cloud Shell Code Editor, pastikan "End of Line Sequence" disetel ke "LF", bukan "CRLF". Periksa di bagian kanan bawah Editor Kode untuk mengonfirmasi.

- Jika disetel ke CRLF, klik CRLF lalu pilih LF di dropdown untuk mengubahnya.
- Di file
startup-script.sh, ganti placeholder [PROJECT_ID] dengan Project ID Anda: {{{project_0.project_id | PROJECT_ID}}}.
Skrip startup akan melakukan tugas berikut:
- Menginstal agen Logging. Agen ini mengumpulkan log dari syslog secara otomatis.
- Menginstal Node.js dan Supervisor. Supervisor menjalankan aplikasi sebagai daemon.
- Membuat clone kode sumber aplikasi dari Bucket Cloud Storage, lalu menginstal dependensi.
- Mengonfigurasi Supervisor untuk menjalankan aplikasi. Supervisor memastikan aplikasi akan dimulai ulang jika keluar secara tidak terduga atau dihentikan oleh admin atau proses. Supervisor juga akan mengirimkan stdout dan stderr aplikasi ke syslog untuk dikumpulkan oleh Agen logging.
- Kembali ke Cloud Shell Terminal, lalu jalankan perintah berikut untuk menyalin file
startup-script.sh ke bucket Anda:
gcloud storage cp ~/monolith-to-microservices/startup-script.sh gs://fancy-store-{{{project_0.project_id | BUCKET}}}
File tersebut sekarang dapat diakses di: https://storage.googleapis.com/[BUCKET_NAME]/startup-script.sh.
[BUCKET_NAME] mewakili nama bucket Cloud Storage. Nama ini hanya dapat dilihat oleh pengguna yang diizinkan serta akun layanan, sehingga tidak dapat diakses melalui browser web. Instance Compute Engine akan otomatis mengakses nama ini melalui akun layanannya.
Menyalin kode ke dalam bucket Cloud Storage
Saat diluncurkan, instance mengambil kode dari bucket Cloud Storage, sehingga Anda dapat menyimpan beberapa variabel konfigurasi dalam file .env kode tersebut.
Catatan: Anda juga dapat membuat kode ini untuk mengambil variabel lingkungan dari tempat lain. Namun untuk tujuan demonstrasi, ini adalah metode sederhana untuk menangani konfigurasi. Dalam produksi, variabel lingkungan mungkin akan disimpan di luar kode.
- Salin clone kode ke dalam bucket Anda:
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Catatan: Direktori dependensi node_modules dihapus untuk memastikan penyalinan dapat dilakukan secepat dan seefisien mungkin. Direktori ini dibuat ulang di instance saat instance dimulai.
Klik Periksa progres saya untuk memverifikasi tujuan. Menyalin skrip startup dan kode ke bucket Cloud Storage
Men-deploy backend instance
Instance pertama yang akan di-deploy adalah backend instance, yang menampung microservice Orders dan Products.
Catatan: Dalam lingkungan produksi, sebaiknya pisahkan tiap microservice ke dalam instance dan grup instance-nya masing-masing agar dapat diskalakan sendiri-sendiri. Untuk tujuan demonstrasi, kedua microservice backend (Orders & Products) akan berada di instance dan grup instance yang sama.
- Jalankan perintah berikut untuk membuat instance
e2-medium yang dikonfigurasi untuk menggunakan skrip startup. Instance ini ditandai sebagai backend instance sehingga Anda dapat menerapkan aturan firewall yang spesifik untuknya nanti:
gcloud compute instances create backend \
--machine-type=e2-medium \
--tags=backend \
--metadata=startup-script-url=https://storage.googleapis.com/fancy-store-{{{project_0.project_id | BUCKET}}}/startup-script.sh
Catatan: Jika Anda diminta menentukan zona, pastikan zona default telah dikonfigurasi di bagian Menyiapkan dalam lab ini.
Mengonfigurasi koneksi ke backend
Sebelum men-deploy frontend aplikasi, Anda perlu mengubah konfigurasinya agar mengarah ke backend yang baru saja Anda deploy.
- Ambil alamat IP eksternal backend dengan perintah berikut. Lihat alamat backend instance tersebut di tab
EXTERNAL_IP:
gcloud compute instances list
Contoh output:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
backend {{{ project_0.default_zone | "ZONE" }}} e2-medium 10.128.0.2 34.68.223.88 RUNNING
-
Salin IP Eksternal backend.
-
Di Cloud Shell Explorer, buka monolith-to-microservices > react-app.
-
Pada Editor Kode, pilih View > Toggle Hidden Files untuk melihat file .env.
-
Edit file .env agar terkoneksi ke IP Eksternal backend. [BACKEND_ADDRESS] mewakili alamat IP Eksternal backend instance yang ditentukan dari perintah gcloud di atas.
-
Dalam file .env, ganti localhost dengan [BACKEND_ADDRESS] Anda:
REACT_APP_ORDERS_URL=http://[BACKEND_ADDRESS]:8081/api/orders
REACT_APP_PRODUCTS_URL=http://[BACKEND_ADDRESS]:8082/api/products
-
Simpan file dengan mengklik tombol Save.
-
Jalankan perintah berikut untuk membangun kembali react-app, yang memperbarui kode frontend:
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Kemudian jalankan perintah berikut untuk menyalin kode aplikasi ke dalam bucket Cloud Storage:
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Men-deploy frontend instance
Sekarang setelah kode dikonfigurasi, deploy frontend instance.
- Jalankan perintah berikut untuk men-deploy
frontend instance dengan perintah serupa seperti sebelumnya. Instance ini ditandai sebagai frontend untuk keperluan firewall:
gcloud compute instances create frontend \
--machine-type=e2-medium \
--tags=frontend \
--metadata=startup-script-url=https://storage.googleapis.com/fancy-store-{{{project_0.project_id | BUCKET}}}/startup-script.sh
Catatan: Perintah deployment dan skrip startup digunakan dengan frontend dan backend instance untuk kemudahan, dan karena kode ini dikonfigurasi untuk meluncurkan semua microservice secara default. Sebab itu, dalam contoh ini, semua microservice berjalan baik di frontend maupun backend. Dalam lingkungan produksi, Anda hanya akan menjalankan microservice yang Anda perlukan di setiap komponen.
Mengonfigurasi jaringan
Di bagian ini, Anda akan membuat aturan firewall guna mengizinkan akses ke port 8080 untuk frontend, dan port 8081-8082 untuk backend. Perintah firewall ini menggunakan tag yang ditetapkan dalam pembuatan instance untuk aplikasi.
- Jalankan perintah berikut untuk mengonfigurasi aturan firewall:
gcloud compute firewall-rules create fw-fe \
--allow tcp:8080 \
--target-tags=frontend
gcloud compute firewall-rules create fw-be \
--allow tcp:8081-8082 \
--target-tags=backend
Situs tersebut kini tentu sudah berfungsi sepenuhnya.
- Untuk membuka IP eksternal
frontend, Anda perlu mengetahui alamatnya. Jalankan perintah berikut dan cari EXTERNAL_IP dari frontend instance:
gcloud compute instances list
Contoh output:
NAME: backend
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.150.0.2
EXTERNAL_IP: 34.86.128.228
STATUS: RUNNING
NAME: frontend
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-medium
PREEMPTIBLE:
INTERNAL_IP: 10.150.0.3
EXTERNAL_IP: 35.199.2.193
STATUS: RUNNING
Mungkin perlu waktu beberapa menit untuk memulai dan mengonfigurasi instance.
- Tunggu 30 detik, lalu jalankan perintah berikut untuk memantau kesiapan aplikasi, dengan mengganti
FRONTEND_ADDRESS dengan IP Eksternal untuk frontend instance:
watch -n 2 curl http://[FRONTEND_ADDRESS]:8080
Setelah Anda melihat hasil yang serupa dengan contoh berikut, situs seharusnya sudah siap.

-
Tekan CTRL+C untuk membatalkan perintah watch
-
Buka tab browser samaran baru dan lihat http://[FRONTEND_ADDRESS]:8080 untuk mengakses situs, dengan [FRONTEND_ADDRESS] adalah EXTERNAL_IP frontend yang tercantum di atas.
-
Coba buka halaman Products dan Orders. Seharusnya sekarang semuanya berfungsi.

Klik Periksa progres saya untuk memverifikasi tujuan. Men-deploy instance dan mengonfigurasi jaringan
Tugas 5. Membuat grup instance terkelola
Agar aplikasi dapat diskalakan, grup instance terkelola akan dibuat yang menggunakan frontend dan backend instance sebagai Template Instance.
Grup instance terkelola (MIG) berisi instance identik yang dapat Anda kelola sebagai satu entitas dalam satu zona. Grup instance terkelola menjaga ketersediaan tinggi aplikasi Anda dengan secara proaktif memastikan instance Anda terus tersedia, yaitu dalam status RUNNING.
Dalam lab ini, Anda akan menggunakan grup instance terkelola untuk frontend dan backend instance guna menyediakan autohealing, load balancing, penskalaan otomatis, dan update bertahap.
Membuat template instance dari instance sumber
Agar dapat membuat grup instance terkelola, Anda harus terlebih dahulu membuat template instance yang akan menjadi fondasi grup tersebut. Dengan template instance, Anda dapat menentukan jenis mesin, boot disk image atau image container, jaringan, dan properti instance lainnya yang akan digunakan saat membuat instance VM baru. Anda dapat menggunakan template instance untuk membuat instance dalam grup instance terkelola atau bahkan membuat instance terpisah.
Untuk membuat template instance, gunakan instance yang sudah Anda buat sebelumnya.
- Pertama, jalankan perintah berikut untuk menghentikan kedua instance:
gcloud compute instances stop frontend
gcloud compute instances stop backend
- Kemudian, jalankan perintah berikut untuk membuat template instance dari setiap instance sumber:
gcloud compute instance-templates create fancy-fe \
--source-instance=frontend
gcloud compute instance-templates create fancy-be \
--source-instance=backend
- Konfirmasi bahwa template instance telah dibuat dengan perintah berikut:
gcloud compute instance-templates list
Contoh output:
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP
fancy-be e2-medium 2020-02-03T10:34:12.966-08:00
fancy-fe e2-medium 2020-02-03T10:34:01.082-08:00
- Setelah template instance dibuat, jalankan perintah berikut untuk menghapus VM
backend guna menghemat ruang resource:
gcloud compute instances delete backend
- Ketikkan dan masukkan y saat diminta.
Biasanya, Anda juga dapat menghapus VM frontend, tetapi Anda akan menggunakannya untuk memperbarui template instance nanti dalam lab ini.
Membuat grup instance terkelola
- Selanjutnya, jalankan perintah berikut untuk membuat dua grup instance terkelola, satu untuk frontend dan satu lagi untuk backend:
gcloud compute instance-groups managed create fancy-fe-mig \
--base-instance-name fancy-fe \
--size 2 \
--template fancy-fe
gcloud compute instance-groups managed create fancy-be-mig \
--base-instance-name fancy-be \
--size 2 \
--template fancy-be
Grup instance terkelola ini akan menggunakan template instance dan dikonfigurasi sehingga dua instance akan dimulai dalam setiap grup. Instance secara otomatis diberi nama berdasarkan base-instance-name yang ditentukan dengan penambahan karakter acak.
- Untuk aplikasi Anda, microservice
frontend dijalankan di port 8080, dan microservice backend dijalankan di port 8081 untuk orders dan di port 8082 untuk products:
gcloud compute instance-groups set-named-ports fancy-fe-mig \
--named-ports frontend:8080
gcloud compute instance-groups set-named-ports fancy-be-mig \
--named-ports orders:8081,products:8082
Karena ini adalah port non-standar, Anda perlu menentukan port bernama untuk mengidentifikasinya. Port bernama adalah metadata key-value pair yang mewakili nama layanan dan port tempatnya dijalankan. Port bernama dapat ditetapkan ke grup instance, yang menunjukkan bahwa layanan tersedia di semua instance dalam grup itu. Informasi ini digunakan oleh layanan Load Balancing HTTP yang akan Anda konfigurasi nanti.
Mengonfigurasi autohealing
Untuk meningkatkan ketersediaan aplikasi itu sendiri dan memverifikasi responsivitasnya, konfigurasi kebijakan autohealing untuk grup instance terkelola.
Kebijakan autohealing bergantung pada health check berbasis aplikasi untuk memverifikasi bahwa aplikasi memberikan respons sesuai yang diharapkan. Pemeriksaan responsivitas aplikasi akan lebih presisi dibanding hanya memverifikasi bahwa suatu instance berstatus RUNNING, yang merupakan perilaku default.
Catatan: Health check akan dilakukan secara terpisah untuk load balancing dan autohealing. Health check untuk load balancing dapat dan seharusnya lebih agresif karena health check ini mengidentifikasi apakah suatu instance menerima traffic pengguna atau tidak. Anda perlu mendeteksi instance yang tidak responsif secepatnya agar dapat mengalihkan traffic, jika diperlukan.
Sebaliknya, health check untuk autohealing menyebabkan Compute Engine secara proaktif mengganti instance yang gagal, sehingga health check ini harus lebih konservatif daripada health check load balancing.
- Jalankan perintah berikut untuk membuat health check yang akan memperbaiki instance jika menampilkan "unhealthy" 3 kali berturut-turut untuk
frontend dan backend:
gcloud compute health-checks create http fancy-fe-hc \
--port 8080 \
--check-interval 30s \
--healthy-threshold 1 \
--timeout 10s \
--unhealthy-threshold 3
gcloud compute health-checks create http fancy-be-hc \
--port 8081 \
--request-path=/api/orders \
--check-interval 30s \
--healthy-threshold 1 \
--timeout 10s \
--unhealthy-threshold 3
- Buat aturan firewall untuk mengizinkan pemeriksaan health check terhubung ke microservice di port 8080—8081 dengan perintah berikut:
gcloud compute firewall-rules create allow-health-check \
--allow tcp:8080-8081 \
--source-ranges 130.211.0.0/22,35.191.0.0/16 \
--network default
- Jalankan perintah berikut untuk menerapkan health check ke layanan masing-masing:
gcloud compute instance-groups managed update fancy-fe-mig \
--health-check fancy-fe-hc \
--initial-delay 300
gcloud compute instance-groups managed update fancy-be-mig \
--health-check fancy-be-hc \
--initial-delay 300
Catatan: Mungkin perlu waktu 15 menit sebelum autohealing mulai memantau instance dalam grup.
- Lanjutkan aktivitas lab untuk memberikan waktu bagi autohealing memantau instance dalam grup. Anda akan menyimulasikan kegagalan untuk menguji autohealing di akhir lab.
Klik Periksa progres saya untuk memverifikasi tujuan. Membuat grup instance terkelola
Tugas 6. Membuat load balancer
Untuk melengkapi grup instance terkelola, Anda akan menggunakan Load Balancer HTTP(S) untuk menyajikan traffic ke microservice frontend dan backend, serta menggunakan pemetaan untuk mengirim traffic ke layanan backend yang sesuai berdasarkan aturan penetapan jalur. Pendekatan ini akan mengekspos satu IP yang di-load balance untuk semua layanan.
Anda dapat mempelajari lebih lanjut opsi Load Balancing di Google Cloud: Ringkasan Load Balancing.
Membuat load balancer HTTP(S)
Google Cloud menawarkan beragam jenis load balancer. Untuk lab ini, Anda akan menggunakan Load Balancer HTTP(S) untuk traffic Anda. Load balancer HTTP disusun sebagai berikut:
- Aturan penerusan mengarahkan permintaan masuk ke proxy HTTP target.
- Proxy HTTP target memeriksa setiap permintaan berdasarkan peta URL guna menentukan layanan backend yang sesuai untuk permintaan itu.
- Layanan backend mengarahkan setiap permintaan ke backend yang sesuai berdasarkan kapasitas penyajian, zona, dan kondisi instance dari backend yang terkait. Kondisi setiap backend instance diverifikasi menggunakan health check HTTP. Jika layanan backend dikonfigurasi untuk menggunakan health check HTTPS atau HTTP/2, permintaan akan dienkripsi saat dikirimkan ke backend instance.
- Sesi antara load balancer dan instance dapat menggunakan protokol HTTP, HTTPS, atau HTTP/2. Jika Anda menggunakan HTTPS atau HTTP/2, setiap instance di layanan backend harus memiliki sertifikat SSL.
Catatan: Untuk tujuan demonstrasi ini, gunakan HTTP, bukan HTTPS, untuk menghindari kerumitan sertifikat SSL. Untuk produksi, disarankan menggunakan HTTPS untuk enkripsi jika memungkinkan.
- Buat health check yang akan digunakan untuk menentukan instance yang mampu melayani traffic untuk tiap layanan:
gcloud compute http-health-checks create fancy-fe-frontend-hc \
--request-path / \
--port 8080
gcloud compute http-health-checks create fancy-be-orders-hc \
--request-path /api/orders \
--port 8081
gcloud compute http-health-checks create fancy-be-products-hc \
--request-path /api/products \
--port 8082
Catatan: Health check ini ditujukan untuk load balancer, dan hanya menangani pengarahan traffic dari load balancer. Health check ini tidak menyebabkan grup instance terkelola membuat ulang instance.
- Buat layanan backend yang menjadi target untuk traffic yang di-load balance. Layanan backend akan menggunakan health check dan port bernama yang Anda buat:
gcloud compute backend-services create fancy-fe-frontend \
--http-health-checks fancy-fe-frontend-hc \
--port-name frontend \
--global
gcloud compute backend-services create fancy-be-orders \
--http-health-checks fancy-be-orders-hc \
--port-name orders \
--global
gcloud compute backend-services create fancy-be-products \
--http-health-checks fancy-be-products-hc \
--port-name products \
--global
- Tambahkan layanan backend Load Balancer:
gcloud compute backend-services add-backend fancy-fe-frontend \
--instance-group fancy-fe-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
gcloud compute backend-services add-backend fancy-be-orders \
--instance-group fancy-be-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
gcloud compute backend-services add-backend fancy-be-products \
--instance-group fancy-be-mig \
--instance-group-zone {{{ project_0.default_zone | "ZONE" }}} \
--global
- Buat peta URL. Peta URL menentukan layanan backend tujuan dari setiap URL:
gcloud compute url-maps create fancy-map \
--default-service fancy-fe-frontend
- Buat path matcher agar jalur
/api/orders dan /api/products diarahkan ke layanannya masing-masing:
gcloud compute url-maps add-path-matcher fancy-map \
--default-service fancy-fe-frontend \
--path-matcher-name orders \
--path-rules "/api/orders=fancy-be-orders,/api/products=fancy-be-products"
- Buat proxy yang terikat ke peta URL:
gcloud compute target-http-proxies create fancy-proxy \
--url-map fancy-map
- Buat aturan penerusan global yang mengikat alamat IP publik dan port ke proxy:
gcloud compute forwarding-rules create fancy-http-rule \
--global \
--target-http-proxy fancy-proxy \
--ports 80
Klik Periksa progres saya untuk memverifikasi tujuan. Membuat load balancer HTTP(S)
Memperbarui konfigurasi
Sekarang setelah Anda memiliki alamat IP statis baru, ubah kode di frontend agar terkoneksi ke alamat baru ini, bukan alamat sementara sebelumnya yang terkoneksi ke backend instance.
- Di Cloud Shell, beralihlah ke folder
react-app yang berisi file .env yang menyimpan konfigurasi:
cd ~/monolith-to-microservices/react-app/
- Cari alamat IP untuk Load Balancer:
gcloud compute forwarding-rules list --global
Contoh output:
NAME: fancy-http-rule
REGION:
IP_ADDRESS: 34.111.203.235
IP_PROTOCOL: TCP
TARGET: fancy-proxy
- Kembali ke Editor Cloud Shell, lalu edit lagi file
.env agar terkoneksi ke IP Publik Load Balancer. [LB_IP] mewakili alamat IP Eksternal backend instance yang ditentukan di atas.
REACT_APP_ORDERS_URL=http://[LB_IP]/api/orders
REACT_APP_PRODUCTS_URL=http://[LB_IP]/api/products
Catatan: Port dihapus di alamat yang baru karena load balancer dikonfigurasi untuk otomatis menangani penerusan ini.
-
Simpan file dengan mengklik tombol Save.
-
Bangun kembali react-app, yang memperbarui kode frontend:
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Salin kode aplikasi ke dalam bucket Anda:
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Mengupdate frontend instance
Mengingat sudah ada konfigurasi dan kode yang baru, frontend instance dalam grup instance terkelola sebaiknya mengambil kode baru itu.
- Karena instance Anda mengambil kode saat sistem dimulai, Anda dapat memberikan perintah mulai ulang bertahap:
gcloud compute instance-groups managed rolling-action replace fancy-fe-mig \
--max-unavailable 100%
Catatan: Dalam contoh penggantian bertahap ini, Anda secara spesifik menyatakan bahwa semua mesin dapat langsung diganti melalui parameter --max-unavailable. Tanpa parameter ini, perintah tersebut akan menyisakan satu instance tetap aktif selagi memulai ulang instance lainnya untuk memastikan ketersediaan. Untuk tujuan pengujian, Anda menentukan agar semua instance langsung diganti guna menjamin kecepatan.
Klik Periksa progres saya untuk memverifikasi tujuan. Mengupdate frontend instance
Menguji situs
- Tunggu sekitar 30 detik setelah Anda memberikan perintah
rolling-action replace agar ada cukup waktu untuk pemrosesan instance, lalu periksa status grup instance terkelola hingga instance muncul dalam daftar:
watch -n 2 gcloud compute instance-groups list-instances fancy-fe-mig
-
Setelah item muncul dalam daftar, keluar dari perintah watch dengan menekan CTRL+C.
-
Jalankan perintah berikut untuk mengonfirmasi bahwa layanan tercantum sebagai HEALTHY:
watch -n 2 gcloud compute backend-services get-health fancy-fe-frontend --global
- Tunggu hingga ke-2 layanan tercantum sebagai HEALTHY.
Contoh output:
backend: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instanceGroups/fancy-fe-mig status: healthStatus:
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instances/fancy-fe-x151 ipAddress: 10.128.0.7 port: 8080
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_region | "REGION" }}}/instances/fancy-fe-cgrt ipAddress: 10.128.0.11 port: 8080 kind: compute#backendServiceGroupHealth
Catatan: Jika salah satu instance mengalami masalah dan berstatus UNHEALTHY, instance tersebut akan otomatis diperbaiki. Tunggu sampai perbaikan ini terjadi. Jika tidak ada instance yang menunjukkan status HEALTHY setelah ditunggu beberapa saat, berarti ada yang salah dengan konfigurasi frontend instance sehingga tidak dapat diakses di port 8080. Uji hal ini dengan mengakses instance tersebut secara langsung di port 8080.
- Setelah kedua item muncul sebagai HEALTHY pada daftar, keluar dari perintah
watch dengan menekan CTRL+C.
Catatan: Aplikasi akan dapat diakses melalui http://[LB_IP]. [LB_IP] adalah IP_ADDRESS yang ditentukan untuk Load Balancer dan dapat ditemukan dengan perintah berikut:
gcloud compute forwarding-rules list --global
Anda akan memeriksa aplikasi tersebut nanti dalam lab ini.
Tugas 7. Menskalakan grup instance Compute Engine
Sejauh ini, Anda telah membuat dua grup instance terkelola, masing-masing dengan dua instance. Konfigurasi ini sepenuhnya berfungsi, tetapi merupakan konfigurasi statis yang tidak beradaptasi terhadap beban. Selanjutnya, Anda akan membuat kebijakan penskalaan otomatis berdasarkan penggunaan untuk otomatis menskalakan setiap grup instance terkelola.
Mengubah ukuran secara otomatis berdasarkan penggunaan
- Untuk membuat kebijakan penskalaan otomatis, jalankan perintah berikut:
gcloud compute instance-groups managed set-autoscaling \
fancy-fe-mig \
--max-num-replicas 2 \
--target-load-balancing-utilization 0.60
gcloud compute instance-groups managed set-autoscaling \
fancy-be-mig \
--max-num-replicas 2 \
--target-load-balancing-utilization 0.60
Perintah ini membuat autoscaler di grup instance terkelola yang otomatis menambahkan instance ketika penggunaan load balancer melebihi 60%, dan menghapus instance ketika penggunaannya kurang dari 60%.
Mengaktifkan jaringan penayangan konten
Cara lain yang dapat membantu penskalaan adalah dengan mengaktifkan layanan Jaringan Penayangan Konten guna menyediakan penyimpanan cache untuk frontend.
- Jalankan perintah berikut di layanan frontend:
gcloud compute backend-services update fancy-fe-frontend \
--enable-cdn --global
Saat pengguna meminta konten dari load balancer HTTP(S), permintaan tersebut akan mencapai Google Front End (GFE), dan layanan ini pertama-tama akan mencari respons atas permintaan pengguna di cache Cloud CDN. Jika menemukan respons yang di-cache, GFE akan mengirimkannya kepada pengguna. Kondisi ini disebut sebagai cache hit (cache ditemukan).
Jika tidak dapat menemukan respons yang di-cache untuk permintaan tersebut, GFE akan membuat permintaan langsung ke backend. Jika respons atas permintaan ini dapat disimpan ke dalam cache, GFE akan menyimpannya ke dalam cache Cloud CDN agar cache tersebut dapat digunakan untuk permintaan berikutnya.
Klik Periksa progres saya untuk memverifikasi tujuan. Menskalakan Compute Engine
Tugas 8. Memperbarui situs
Memperbarui template instance
Template instance yang ada tidak dapat diedit. Namun, karena instance Anda bersifat stateless dan semua konfigurasi dilakukan melalui skrip startup, Anda hanya perlu mengubah template instance jika ingin mengubah setelan template. Sekarang, Anda akan membuat perubahan sederhana untuk menggunakan jenis mesin yang lebih besar dan menerapkannya.
-
Update frontend instance, yang bertindak sebagai dasar untuk template instance. Dalam update ini, masukkan sebuah file ke image template instance versi terbaru, perbarui template instance itu, luncurkan template barunya, lalu konfirmasi bahwa file tersebut ada di instance grup instance terkelola.
-
Sekarang, ubah jenis mesin template instance Anda, dengan beralih dari jenis mesin e2-medium ke jenis mesin kustom dengan 4 vCPU dan RAM 3840 MiB.
-
Jalankan perintah berikut untuk mengubah jenis mesin frontend instance:
gcloud compute instances set-machine-type frontend --machine-type custom-4-3840
- Buat Template Instance yang baru:
gcloud compute instance-templates create fancy-fe-new \
--source-instance=frontend \
--source-instance-zone={{{ project_0.default_zone | "ZONE" }}}
- Luncurkan template instance terbaru ke Grup Instance Terkelola:
gcloud compute instance-groups managed rolling-action start-update fancy-fe-mig \
--version template=fancy-fe-new
- Tunggu 30 detik, lalu jalankan perintah berikut untuk memantau status update:
watch -n 2 gcloud compute instance-groups managed list-instances fancy-fe-mig
Proses ini memerlukan waktu beberapa saat.
Setelah Anda memiliki setidaknya 1 instance dalam kondisi berikut:
- STATUS: RUNNING
- ACTION: None
- INSTANCE_TEMPLATE: nama template baru (fancy-fe-new)
-
Salin nama salah satu mesin yang tercantum untuk digunakan dalam perintah berikutnya.
-
Tekan CTRL+C untuk keluar dari proses watch.
-
Jalankan perintah berikut untuk mengetahui apakah virtual machine tersebut menggunakan jenis mesin baru (custom-4-3840), dengan [VM_NAME] sebagai instance yang baru dibuat:
gcloud compute instances describe [VM_NAME] | grep machineType
Contoh output yang diharapkan:
machineType: https://www.googleapis.com/compute/v1/projects/project-name/zones/{{{ project_0.default_zone | "ZONE" }}}/machineTypes/custom-4-3840
Membuat perubahan pada situs
Skenario: Tim marketing Anda meminta Anda mengubah halaman beranda situs. Menurut mereka, halaman ini harus lebih menggambarkan perusahaan Anda dan apa yang sebenarnya Anda jual.
Tugas: Tambahkan teks ke beranda agar tim marketing merasa senang. Sepertinya salah satu developer telah membuat perubahan itu dengan nama file index.js.new. Anda cukup menyalin file ini ke index.js dan perubahannya 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 isi file 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 (
theme.spacing(3, 2),
}}
>
Fancy Fashion & Style Online
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!
);
}
Anda telah memperbarui komponen React, tetapi Anda perlu membangun aplikasi React untuk menghasilkan file statis.
- Jalankan perintah berikut untuk membangun aplikasi React dan menyalinnya ke direktori publik monolit:
cd ~/monolith-to-microservices/react-app
npm install && npm run-script build
- Kemudian, kirim kembali kode ini ke bucket:
cd ~
rm -rf monolith-to-microservices/*/node_modules
gcloud storage cp -r monolith-to-microservices gs://fancy-store-{{{project_0.project_id | BUCKET}}}/
Memaksakan perubahan dengan penggantian bertahap
- Sekarang, paksa semua instance agar diganti untuk mengambil update:
gcloud compute instance-groups managed rolling-action replace fancy-fe-mig \
--max-unavailable=100%
Catatan: Dalam contoh penggantian bertahap ini, Anda secara spesifik menyatakan bahwa semua mesin dapat langsung diganti melalui parameter --max-unavailable. Tanpa parameter ini, perintah tersebut akan menyisakan satu instance tetap aktif selagi mengganti instance lainnya.
Untuk tujuan pengujian, Anda menentukan agar semua instance langsung diganti guna menjamin kecepatan. Dalam produksi, Anda bisa menyediakan buffer untuk memungkinkan situs terus menyediakan layanan saat diupdate.
Klik Periksa progres saya untuk memverifikasi tujuan. Memperbarui situs
- Tunggu sekitar 30 detik setelah Anda memberikan perintah
rolling-action replace agar ada cukup waktu untuk pemrosesan instance, lalu periksa status grup instance terkelola hingga instance muncul dalam daftar:
watch -n 2 gcloud compute instance-groups list-instances fancy-fe-mig
-
Setelah item muncul dalam daftar, keluar dari perintah watch dengan menekan CTRL+C.
-
Jalankan perintah berikut untuk mengonfirmasi bahwa layanan tercantum sebagai HEALTHY:
watch -n 2 gcloud compute backend-services get-health fancy-fe-frontend --global
- Tunggu beberapa saat hingga kedua layanan tersebut muncul dan statusnya menjadi HEALTHY.
Contoh output:
backend: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instanceGroups/fancy-fe-mig status: healthStatus:
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-x151 ipAddress: 10.128.0.7 port: 8080
- healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/my-gce-codelab/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-cgrt ipAddress: 10.128.0.11 port: 8080 kind: compute#backendServiceGroupHealth
-
Setelah item muncul dalam daftar, keluar dari perintah watch dengan menekan CTRL+C.
-
Jelajahi situs melalui http://[LB_IP]. [LB_IP] adalah IP_ADDRESS yang ditentukan untuk Load Balancer dan dapat ditemukan dengan perintah berikut:
gcloud compute forwarding-rules list --global
Perubahan baru pada situs akan terlihat sekarang.
Menyimulasikan kegagalan
Untuk mengonfirmasi bahwa health check berfungsi, login ke sebuah instance dan hentikan layanan.
- Untuk menemukan nama instance, jalankan perintah berikut:
gcloud compute instance-groups list-instances fancy-fe-mig
- Salin nama instance, lalu jalankan perintah berikut untuk masuk ke instance melalui protokol secure shell, dengan
INSTANCE_NAME adalah salah satu instance dari daftar:
gcloud compute ssh [INSTANCE_NAME]
-
Ketik y untuk mengonfirmasi, lalu tekan Enter dua kali untuk tidak menggunakan sandi.
-
Dalam instance, gunakan supervisorctl untuk menghentikan aplikasi:
sudo supervisorctl stop nodeapp; sudo killall node
- Keluar dari instance:
exit
- Pantau operasi perbaikan:
watch -n 2 gcloud compute operations list \
--filter='operationType~compute.instances.repair.*'
Proses ini membutuhkan waktu beberapa menit hingga selesai.
Cari contoh output berikut:
NAME TYPE TARGET HTTP_STATUS STATUS TIMESTAMP
repair-1568314034627-5925f90ee238d-fe645bf0-7becce15 compute.instances.repair.recreateInstance {{{ project_0.default_zone | "ZONE" }}}/instances/fancy-fe-1vqq 200 DONE 2019-09-12T11:47:14.627-07:00
Grup instance terkelola telah membuat ulang instance tersebut untuk memperbaikinya.
- Anda juga dapat memantau melalui konsol - buka Navigation menu > Compute Engine > VM instances.
Selamat!
Selamat! Dalam lab ini, Anda telah berhasil men-deploy, menskalakan, dan memperbarui situs Anda di Compute Engine, serta mendapatkan pengalaman langsung dengan Compute Engine, Grup Instance Terkelola, Load Balancer, dan Health Check. Lab ini menyoroti cara Google Cloud dan Azure memfasilitasi deployment aplikasi berbasis VM dengan load balancer yang terhubung ke internet. Pendekatan Google Cloud memanfaatkan skrip startup untuk menyatukan deployment kode dan konfigurasi VM, merampingkan pengelolaan VM dengan penskalaan otomatis, menawarkan load balancing HTTP(S) eksternal global, serta memungkinkan update image dan aplikasi tanpa hambatan dalam skrip startup dan alur kerja MIG.
Mari kita tinjau persamaan dan perbedaan antara kedua platform yang Anda lihat dalam lab ini.
Kesamaan:
- Mirip dengan Azure, Google Cloud dapat Anda gunakan untuk men-deploy aplikasi ke VM dan mengonfigurasi load balancer agar aplikasi tersedia di internet.
Perbedaan:
- Di Google Cloud, Anda men-deploy layanan aplikasi menggunakan Compute Engine dari kode yang dihosting di bucket Cloud Storage. Di Azure, Anda harus menggunakan pipeline DevOps atau repositori kode untuk mencapai titik yang sama.
- Di Google Cloud, Anda mengelola deployment kode, konfigurasi VM, dan update aplikasi menggunakan skrip startup yang sama. Di Azure, Anda perlu mengelola deployment kode dari pipeline DevOps atau repositori kode, dan mengelola VM secara terpisah menggunakan Scale Sets.
- Di Google Cloud, Anda mengubah kode aplikasi dan men-deploy ulang aplikasi menggunakan model deployment bertahap tanpa periode nonaktif. Di Azure, masa pemeliharaan digunakan untuk melakukan update.
- Di Google Cloud, Anda dapat mengaktifkan penskalaan otomatis untuk grup instance terkelola (MIG). Google Cloud mengelola dan mengupdate VM di MIG Anda. Di Azure, Anda menggunakan set penskalaan.
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 4 Agustus 2026
Lab Terakhir Diuji pada 4 Agustus 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.