Checkpoint
Create a Pub/Sub topic
/ 10
Deploy the Lab Report Service: Build
/ 15
Create a Revision for Cloud Run
/ 15
Deploy the Email Service: Build
/ 15
Create a new Revision
/ 15
Create a service account
/ 10
Create a Pub/Sub subscription
/ 10
Deploy the SMS Service
/ 10
Membangun Sistem yang Asinkron dan Tangguh dengan Cloud Run dan Pub/Sub
GSP650
Ringkasan
Untuk lab dalam kursus Serverless Cloud Run Development, Anda akan membaca skenario bisnis fiktif dan membantu para karakter menerapkan rencana migrasi serverless mereka.
Dua belas tahun yang lalu, Lily memulai jaringan klinik hewan Pet Theory. Selama bertahun-tahun, jumlah klinik telah bertambah, demikian pula kebutuhan akan otomatisasi. Cara Pet Theory menangani hasil tes medis saat mereka kembali dari laboratorium terlalu lambat dan rawan kesalahan, jadi Lily ingin memperbaikinya.
Saat ini, Patrick, admin IT Pet Theory, menangani hasil tes secara manual. Tiap kali hasil tes keluar, ia menulis dan mengirim email ke klien yang hewan peliharaannya diuji, lalu ia menulis pesan teks di ponselnya dan mengirimkan hasilnya sebagai teks ke klien.
Patrick bekerja dengan Ruby, seorang konsultan software, untuk merancang sistem yang lebih skalabel. Mereka ingin membangun solusi yang tidak memerlukan banyak pemeliharaan berkelanjutan. Patrick dan Ruby telah memutuskan untuk menggunakan teknologi serverless.
Tujuan
Di lab ini, Anda akan mempelajari cara:
- Membuat topik dan langganan Pub/Sub
- Membuat layanan Cloud Run yang menerima permintaan HTTP dan memublikasikan pesan ke Cloud Pub/Sub
- Membuat layanan Cloud Run yang menerima pesan dari Cloud Pub/Sub
- Membuat langganan Pub/Sub yang memicu layanan Cloud Run
- Menguji ketahanan suatu sistem
Prasyarat
Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan shell. Lab ini adalah bagian dari sebuah seri. Pengalaman dari lab sebelumnya akan bermanfaat, tetapi tidak wajib:
- Mengimpor Data ke Database Firestore
- Membangun Aplikasi Web Serverless dengan Firebase
- Membangun Aplikasi Serverless dengan Cloud Run yang Membuat File PDF
Penyiapan dan persyaratan
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.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info 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.
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.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
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:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Menetapkan region dan zona
Resource Compute Engine tertentu berada di region dan zona. Region adalah lokasi geografis spesifik tempat Anda dapat menjalankan resource. Setiap region memiliki satu atau beberapa zona.
Jalankan perintah gcloud berikut di Konsol Cloud guna menetapkan region dan zona default untuk lab Anda:
Skenario
Pet Theory ingin mengotomatiskan proses berbagi hasil tes kepada klien. Mereka mengalami kesulitan untuk memenuhi janji temu yang jumlahnya makin meningkat, jadi Lily memutuskan untuk meminta bantuan Ruby...
Lily, Pendiri Pet Theory |
Halo Ruby, Terima kasih telah memilah portal asuransi. Saya ingin tahu, apakah ada yang bisa dilakukan terkait hasil tes medis? Kami membutuhkan cara yang lebih efisien dalam mengirimkan hasil kepada para klien. Lily |
Ruby, Konsultan Software |
Halo Lily, Tentu. Coba saya lihat dulu apa yang bisa saya lakukan. Saya punya beberapa ide yang mungkin bisa memperbaiki situasinya. Ruby |
Tugas 1. Arsitektur
Pet Theory menggunakan perusahaan eksternal untuk tes medis. Setelah perusahaan lab menyelesaikan tes medis, mereka mengirimkan hasilnya kembali ke Pet Theory.
Perusahaan lab menggunakan HTTP(s) POST ke endpoint web Pet Theory untuk hasil lab medis. Ilustrasi di bawah menguraikan arsitektur umum yang digunakan.
Setelah melihat proses umum yang diikuti, Ruby yakin bahwa sebuah sistem dapat dirancang agar Pet Theory bisa:
- Menerima permintaan POST HTTP dan mengonfirmasi penerimaan ke laboratorium medis.
- Mengirimkan hasil tes melalui email kepada klien.
- Mengirimkan pesan teks (SMS) dan email kepada klien yang berisi hasil tes.
Desain Ruby mengisolasi tiap aktivitas di atas dan memerlukan:
- Layanan untuk melakukan permintaan dan respons terhadap hasil medis
- Layanan untuk mengirimkan hasil tes melalui email kepada klien
- Layanan untuk mengirimkan pesan teks (SMS) kepada klien
- Pub/Sub yang akan digunakan untuk melakukan komunikasi antarlayanan
- Infrastruktur serverless yang akan digunakan untuk arsitektur aplikasi
Melalui penggunaan fungsi sekali pakai, Ruby berupaya mengembangkan kode yang lebih mudah untuk ditulis dan mengandung lebih sedikit bug.
Ruby, Konsultan Software |
Halo Patrick, Lily meminta saya membuat prototipe untuk membantu pemrosesan rekam medis. Untuk memulai, tolong siapkan Topik Pub/Sub bernama Ruby |
Patrick, Admin IT |
Halo Ruby, Sepertinya ini project yang bagus. Saya bisa menyelesaikannya pagi ini. Kedua aktivitas tersebut dapat disiapkan dengan sangat cepat di Google Cloud. Patrick |
Membuat topik Pub/Sub
Bantu Patrick membuat topik Pub/Sub bernama new-lab-report
.
Saat layanan menayangkan pesan Pub/Sub, pesan tersebut harus diberi tag dengan sebuah topik. Laporan Lab digunakan melalui layanan yang akan dibuat dan memublikasikan pesan untuk tiap laporan yang ditemukan.
Pertama, Anda perlu membuat topik yang dapat digunakan untuk tugas ini.
- Jalankan perintah berikut untuk membuat topik Pub/Sub:
Tiap layanan yang berlangganan topik "new-lab-report" akan dapat memakai pesan yang dipublikasikan oleh Layanan Laporan Lab. Pada diagram di atas, Anda dapat melihat dua pemakai tersebut, yakni Layanan Email dan Layanan SMS.
- Kemudian aktifkan Cloud Run, yang akan menjalankan kode Anda di cloud:
Klik Check my progress untuk memverifikasi tujuan.
Jangan lupa untuk memberi tahu Ruby bahwa topik Pub/Sub sudah siap digunakan.
Patrick, Admin IT |
Halo Ruby, Semua sudah selesai. Jika ada waktu, saya ingin melihat bagaimana prototipe ini dibuat. Bisakah kita mengerjakannya bersama-sama? Patrick |
Ruby, Konsultan Software |
Halo Patrick, Bagus sekali, terima kasih sudah menyelesaikannya begitu cepat. Saya akan mengatur waktunya supaya kita bisa mulai membangun. Ruby |
Tugas 2. Membangun Layanan Laporan Lab
Bantu Ruby menyiapkan Layanan Laporan Lab yang baru.
Layanan ini akan melayani tujuan pembuatan prototipe, sehingga hanya akan melakukan dua hal:
- Menerima POST HTTPS laporan lab yang berisi data laporan.
- Memublikasikan pesan di Pub/Sub.
Menambahkan kode untuk Layanan Laporan Lab
- Kembali ke Cloud Shell, buat clone repositori yang diperlukan untuk lab ini:
- Pindah ke direktori
lab-service
:
- Instal paket berikut yang diperlukan untuk menerima permintaan HTTPS yang masuk dan publikasikan ke Pub/Sub:
Perintah ini akan mengupdate file package.json
untuk menunjukkan dependensi yang diperlukan untuk layanan ini.
Anda sekarang akan mengedit file package.json
agar Cloud Run mengetahui cara memulai kode Anda.
-
Buka file
package.json
. -
Di bagian "scripts" pada file
package.json
, tambahkan baris kode"start": "node index.js",
di baris 7 (seperti gambar di bawah), lalu simpan file-nya:
"start": "node index.js",
Jika tidak, Anda akan mengalami error saat deployment.
- Buat file baru bernama
index.js
, lalu tambahkan kode ini pada file tersebut:
const labReport = req.body;
await publishPubSubMessage(labReport);
Khususnya, baris-baris ini akan:
- Mengekstrak laporan lab dari permintaan POST.
- Memublikasikan pesan PubSub yang berisi laporan lab yang baru diposting.
- Sekarang, buat file dengan nama
Dockerfile
dan tambahkan kode berikut ke file tersebut:
File ini menetapkan cara memaketkan layanan Cloud Run ke dalam sebuah container.
Men-deploy lab-report-service
- Buat file bernama
deploy.sh
dan tempelkan perintah berikut ke dalamnya:
- Di Cloud Shell, jalankan perintah berikut agar file ini dapat dieksekusi:
- Saatnya men-deploy Layanan Laporan Lab (lab-report-service). Jalankan skrip deployment:
Karena masalah waktu, Anda mungkin akan mendapatkan pesan error saat pertama kali menjalankan perintah ini. Jika demikian, jalankan kembali deploy.sh
.
Ketika deployment berhasil diselesaikan, Anda akan melihat pesan seperti ini:
Bagus, Layanan Laporan Lab telah di-deploy dan akan memproses hasil lab medis melalui HTTP. Anda sekarang dapat menguji apakah layanan yang baru ini sudah aktif dan berjalan atau belum.
Klik Check my progress untuk memverifikasi tujuan.
Klik Check my progress untuk memverifikasi tujuan.
Menguji Layanan Laporan Lab
Untuk memvalidasi Layanan Laporan Lab, simulasikan tiga POST HTTPS yang dibuat oleh perusahaan lab, masing-masing berisi satu laporan lab. Untuk keperluan pengujian, laporan lab yang dibuat hanya akan berisi sebuah ID.
- Pertama, masukkan URL laporan ke dalam variabel lingkungan, agar lebih mudah digunakan.
- Konfirmasi bahwa LAB_REPORT_SERVICE_URL telah diambil:
- Buat file baru bernama
post-reports.sh
, lalu tambahkan kode berikut ke dalamnya:
Skrip di atas akan menggunakan perintah curl
untuk memposting tiga ID berbeda ke URL Layanan Lab. Tiap perintah akan dijalankan satu per satu di latar belakang.
- Buat agar skrip
post-reports.sh
dapat dieksekusi:
- Sekarang uji endpoint Layanan Laporan Lab dengan memposting tiga laporan lab menggunakan skrip yang dijelaskan di atas:
Skrip ini memposting tiga laporan lab ke Layanan Laporan Lab Anda. Periksa log untuk melihat hasilnya.
-
Di Konsol Cloud, klik Navigation menu (
) > Cloud Run.
-
Anda sekarang akan melihat lab-report-service yang baru Anda deploy di daftar Services. Klik lab-report-service tersebut.
-
Halaman berikutnya akan menunjukkan rincian tentang lab-report-service Anda. Klik tab Logs.
Di halaman Logs terdapat hasil dari tiga laporan pengujian yang baru saja Anda posting dengan skrip tersebut. Semoga kode HTTP yang ditampilkan adalah 204, artinya Oke - bukan konten, seperti di bawah ini. Jika Anda tidak melihat entri apa pun, coba scroll ke atas dan ke bawah menggunakan scrollbar di sebelah kanan. Tindakan ini akan memuat ulang log.
Tugas selanjutnya adalah menulis layanan SMS dan Email. Layanan ini akan dipicu ketika Layanan Laporan Lab memublikasikan pesan Pub/Sub tentang topik "new-lab-report".
Tugas 3. Layanan Email
Bantu Ruby menyiapkan Layanan Email yang baru.
Menambahkan kode untuk Layanan Email
- Pindah ke direktori Layanan Email:
- Instal paket-paket ini sehingga kode dapat menangani permintaan HTTPS yang masuk:
Perintah di atas akan mengupdate file package.json
, yang menjelaskan aplikasi dan dependensinya. Cloud Run perlu mengetahui cara menjalankan kode, jadi tambahkan petunjuk start
agar ia tahu apa yang harus dilakukan.
-
Buka file
package.json
. -
Di bagian "scripts", tambahkan baris
"start": "node index.js",
seperti yang ditunjukkan di bawah ini, lalu simpan file-nya:
"start": "node index.js",
Jika tidak, Anda akan mengalami error saat deployment.
- Buat file baru bernama
index.js
dan tambahkan yang berikut ke dalamnya:
Kode ini akan dijalankan ketika Pub/Sub memposting pesan ke layanan. Inilah yang dilakukannya:
- Layanan akan mendekode pesan Pub/Sub, lalu mencoba memanggil fungsi
sendEmail()
. - Jika berhasil dan tidak ada pengecualian yang diberikan, layanan akan menampilkan kode status 204 sehingga Pub/Sub akan tahu bahwa pesan telah diproses.
- Jika ada pengecualian, layanan akan menampilkan kode status 500 sehingga Pub/Sub akan tahu bahwa pesan tidak diproses dan harus diposting ulang ke layanan nanti.
Setelah komunikasi antarlayanan berfungsi, Ruby akan menambahkan kode ke fungsi sendEmail()
untuk benar-benar mengirim email.
- Sekarang, buat file dengan nama
Dockerfile
dan tambahkan kode berikut ke file tersebut:
File ini menetapkan cara memaketkan layanan Cloud Run ke dalam sebuah container.
Men-deploy Layanan Email
- Buat file baru bernama
deploy.sh
, lalu tambahkan yang berikut ke dalamnya:
- Buat agar
deploy.sh
dapat dieksekusi:
- Deploy Layanan Email:
Ketika deployment selesai, Anda akan melihat pesan seperti ini:
Layanan telah berhasil di-deploy. Anda sekarang perlu memastikan Layanan Email dipicu ketika pesan Pub/Sub tersedia.
Klik Check my progress untuk memverifikasi tujuan.
Klik Check my progress untuk memverifikasi tujuan.
Mengonfigurasi Pub/Sub untuk memicu Layanan Email
Tiap kali pesan Pub/Sub baru dipublikasikan menggunakan topik "new-lab-report", pesan tersebut akan memicu Layanan Email. Untuk menyelesaikan tugas ini, atur konfigurasi sebuah akun layanan agar otomatis menangani permintaan terkait untuk layanan ini.
- Buat akun layanan baru yang akan digunakan untuk memicu layanan yang merespons pesan Pub/Sub:
Klik Check my progress untuk memverifikasi tujuan.
- Berikan izin kepada akun layanan baru untuk memanggil Layanan Email:
Selanjutnya, perintahkan Pub/Sub untuk memanggil Layanan SMS ketika ada pesan "new-lab-report" yang dipublikasikan.
- Masukkan nomor project dalam variabel lingkungan untuk memudahkan akses:
Selanjutnya, aktifkan project untuk membuat token autentikasi Pub/Sub.
- Jalankan kode di bawah ini:
- Masukkan URL Layanan Email di variabel lingkungan lain:
- Konfirmasi bahwa EMAIL_SERVICE_URL telah diambil:
- Buat langganan Pub/Sub untuk Layanan Email.
Bagus! Layanan ini sekarang siap untuk merespons pesan Cloud Pub/Sub. Sebagai langkah selanjutnya, validasi kode untuk mengonfirmasi bahwa kode tersebut memenuhi persyaratan.
Klik Check my progress untuk memverifikasi tujuan.
Menguji Layanan Laporan Lab dan Layanan Email secara bersamaan
- Dengan menggunakan skrip yang dibuat sebelumnya, posting lagi ke laporan lab:
-
Kemudian buka log (Navigation menu > Cloud Run). Anda akan melihat dua layanan Cloud Run, yakni email-service dan lab-report-service, di akun Anda.
-
Klik email-service, lalu klik Logs.
Anda akan melihat hasil layanan ini dipicu oleh Pub/Sub. Jika Anda tidak melihat pesan yang diharapkan, Anda mungkin perlu men-scroll ke atas dan ke bawah dengan scrollbar agar log dimuat ulang.
Bagus sekali. Layanan Email sekarang dapat menulis informasi ke log tiap kali pesan diproses dari antrean topik Cloud Pub/Sub. Tugas terakhir adalah menulis Layanan SMS.
Tugas 4. Layanan SMS
Bantu Ruby menyiapkan Layanan SMS baru.
Menambahkan kode untuk Layanan SMS
- Buat direktori untuk Layanan SMS:
- Instal paket yang diperlukan untuk menerima permintaan HTTPS yang masuk:
-
Buka file
package.json
. -
Di bagian "scripts", tambahkan baris
"start": "node index.js",
seperti yang ditunjukkan di bawah ini, lalu simpan file-nya:
"start": "node index.js",
Jika tidak, Anda akan mengalami error saat deployment.
- Buat file baru bernama
index.js
dan tambahkan yang berikut ke dalamnya:
- Sekarang, buat file dengan nama
Dockerfile
dan tambahkan kode berikut ke file tersebut:
File ini menetapkan cara memaketkan layanan Cloud Run ke dalam sebuah container. Sekarang kode telah dibuat, langkah selanjutnya adalah men-deploy layanan.
Men-deploy Layanan SMS
- Buat file bernama
deploy.sh
, lalu tambahkan kode ini ke dalamnya:
- Buat agar
deploy.sh
dapat dieksekusi:
- Deploy Layanan SMS:
Saat deployment selesai, pesan seperti ini akan ditampilkan:
Layanan SMS berhasil di-deploy, tetapi tidak tertaut ke layanan Cloud Pub/Sub. Perbaiki hal ini di bagian selanjutnya.
Klik Check my progress untuk memverifikasi tujuan.
Mengonfigurasi Cloud Pub/Sub untuk memicu Layanan SMS
Seperti halnya Layanan Email, link antara Cloud Pub/Sub dan layanan SMS perlu dikonfigurasi agar pesan dapat diproses.
- Tetapkan izin untuk mengizinkan Pub/Sub memicu Layanan SMS:
Selanjutnya, perintahkan Pub/Sub untuk memanggil Layanan SMS ketika ada pesan "new-lab-report" yang dipublikasikan.
- Langkah pertama adalah memasukkan alamat URL Layanan SMS ke dalam variabel lingkungan:
-
Konfirmasi bahwa SMS_SERVICE_URL telah diambil:
echo $SMS_SERVICE_URL -
Kemudian buat langganan Pub/Sub:
- Jalankan skrip pengujian lagi untuk mengirim tiga laporan lab ke Layanan Laporan Lab:
-
Kemudian buka log (Navigation menu > Cloud Run). Anda akan melihat tiga layanan Cloud Run, yakni email-service, lab-report-service, dan sms-service, di akun Anda.
-
Klik sms-service, lalu klik Logs. Anda akan melihat hasil layanan ini dipicu oleh Pub/Sub.
Sistem prototipe telah dibuat dan berhasil diuji. Namun, Patrick khawatir bahwa ketahanan, sebagai bagian dari proses validasi awal, belum teruji.
Tugas 5. Menguji ketahanan sistem
Apa yang terjadi jika salah satu layanan menjadi nonaktif? Patrick pernah mengalami hal ini sebelumnya, karena ini adalah situasi yang umum.
Bantu Ruby menyelidiki cara memastikan sistem dapat menangani skenario ini. Ia ingin menguji apa yang terjadi jika suatu layanan gagal dengan menerapkan versi Layanan Email yang buruk.
- Kembali ke direktori
email-service
:
Tambahkan teks yang tidak valid ke aplikasi Layanan Email sehingga menyebabkan error.
- Edit
index.js
dan tambahkan baristhrow
ke fungsisendEmail()
, sebagaimana ditunjukkan di bawah ini. Tindakan ini akan menampilkan pengecualian, seolah-olah server email nonaktif:
Penambahan kode ini akan membuat layanan tidak bekerja ketika dipanggil.
- Deploy versi Layanan Email yang buruk ini:
- Ketika deployment Layanan Email berhasil diselesaikan, posting lagi data ke laporan lab, lalu perhatikan status log email-service dengan cermat:
-
Buka log Layanan Email untuk melihat log Layanan Email yang buruk: Navigation menu > Cloud Run.
-
Saat terlihat tiga layanan Cloud Run di akun Anda, klik email-service.
Layanan Email sedang dipanggil, tetapi akan tetap error. Jika Anda scroll ke belakang sedikit di log, Anda akan menemukan akar masalahnya: “Email server is down”. Anda juga dapat melihat bahwa layanan menampilkan kode status 500, dan Pub/Sub terus mencoba memanggil layanan tersebut.
Jika Anda melihat log dari layanan SMS, Anda akan melihat bahwa layanan tersebut beroperasi dengan baik.
Sekarang perbaiki error pada Layanan Email untuk memulihkan aplikasi.
- Buka file
index.js
dan hapus baris throw yang sebelumnya anda masukkan, kemudian simpan file tersebut.
Fungsi index.js
sendEmail
sekarang akan terlihat seperti ini:
- Deploy versi Layanan Email yang sudah diperbaiki:
- Ketika deployment selesai, klik ikon refresh di sudut kanan atas.
Anda akan melihat bagaimana email untuk laporan 12, 34, dan 56 akhirnya terkirim, Layanan Email menampilkan kode status 204, dan Pub/Sub berhenti memanggil layanan. Tidak ada data yang hilang. Pub/Sub terus mencoba ulang hingga akhirnya berhasil. Ini adalah landasan dari sistem yang kuat.
Hasil
- Jika layanan berkomunikasi secara asinkron satu sama lain melalui Pub/Sub dan bukannya memanggil satu sama lain secara langsung, sistem bisa menjadi lebih tangguh.
- Pemicu Layanan Laporan Lab tidak bergantung pada layanan lain, berkat penggunaan Pub/Sub. Misalnya, jika pelanggan juga ingin menerima hasil lab melalui layanan pesan lain, layanan ini dapat ditambahkan tanpa perlu mengupdate Layanan Laporan Lab.
- Cloud Pub/Sub menangani percobaan ulang, sehingga layanan tidak perlu melakukannya. Layanan hanya diperlukan untuk menampilkan kode status: berhasil atau gagal.
- Jika suatu layanan terhenti, sistem mampu secara otomatis "menyembuhkan" dirinya sendiri ketika layanan kembali online berkat percobaan ulang Pub/Sub.
Selamat!
Dengan bantuan Anda, Ruby telah berhasil membangun sistem prototipe yang tangguh. Layanan ini mampu secara otomatis mengirimkan email dan pesan SMS kepada tiap klien. Jika layanan tertentu tidak aktif untuk sementara, sistem akan menerapkan mekanisme percobaan ulang sehingga tidak ada data yang hilang. Ruby menerima banyak pujian yang sepadan...
Lily, Pendiri Pet Theory |
Halo Ruby, Kami sangat berterima kasih atas semua kerja keras dan kepemimpinan Anda. Dalam waktu yang sangat singkat, sistem esensial kami telah berubah total. Kami mengadakan pertemuan kecil pada hari Jumat untuk merayakannya dan kami mengundang Anda menjadi tamu kehormatan. Lily |
|
Ruby, Saya menerima banyak pujian atas pekerjaan Anda dari Pet Theory. Anda anggota yang luar biasa bagi tim. Karena Anda telah menyelesaikan tugas ini, saya ingin membahas peran yang lebih senior dalam project baru bersama Anda. Melody Direktur Pengelola Computer Consulting Inc. |
Langkah berikutnya/Pelajari lebih lanjut
- Artikel Medium: Cloud Run as an internal async worker
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 1 Feb 2024
Lab Terakhir Diuji pada 20 September 2023
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.