Menggunakan tampilan regional untuk pembacaan bidang kontrol yang tangguh

Dependensi bidang kontrol adalah API dan layanan metadata yang mengelola definisi resource dalam aplikasi Anda. Untuk membangun aplikasi dengan tingkat ketersediaan tinggi dan tangguh, serta mengotomatiskan alur kerja deployment di Compute Engine, Anda harus mengisolasi dependensi ini. Meskipun endpoint API global memberikan konsistensi yang kuat di semua region, lonjakan latensi sementara atau gangguan pada bidang kontrol global atau di region jarak jauh dapat menunda atau memblokir layanan lokal.

Untuk membangun aplikasi yang andal yang dapat bertahan dari gangguan API global dan beroperasi secara independen di setiap region, Anda dapat mengonfigurasi layanan untuk mengkueri tampilan regional resource global. Dengan menggunakan endpoint API hanya baca yang diregionalisasi untuk membaca definisi resource, aplikasi Anda berkomunikasi secara ketat dengan bidang kontrol untuk region tertentu. Isolasi kesalahan regional ini memastikan layanan Anda tetap dengan tingkat ketersediaan tinggi dan responsif bahkan di tengah gangguan global.

Jenis resource yang didukung

Endpoint tampilan regional tersedia untuk resource global berikut:

  • Project: endpoint projectViews menyediakan akses hanya baca regional ke resource project global.
  • OS images: endpoint imageViews menyediakan akses hanya baca regional ke resource image OS global.

Batasan

Metadata untuk semua resource global disimpan dalam database global pusat. Saat Anda membuat, membaca, memperbarui, atau menghapus resource menggunakan endpoint API global standar, Compute Engine akan meminta pembacaan dan penulisan langsung ke database global pusat, sehingga memberikan konsistensi kuat.

Endpoint tampilan regional membaca metadata resource dari replika hanya baca regional dari database global pusat. Karena perubahan disalin ke replika regional ini secara asinkron, Anda mungkin mengalami perilaku berikut saat membuat kueri tampilan regional:

  • Sedikit penundaan: saat Anda membuat, memperbarui, atau menghapus resource secara global, perubahan tersebut dapat memerlukan waktu hingga 60 detik untuk disalin ke semua endpoint tampilan regional. Selama periode singkat ini, pembacaan dari tampilan regional mungkin menampilkan data yang sedikit lebih lama.
  • Penggantian otomatis: jika Anda meminta resource dari tampilan regional sebelum selesai disalin ke region tersebut, Compute Engine akan otomatis membaca langsung dari database global pusat sehingga permintaan Anda tetap berhasil.

Perbedaan antara tampilan regional dan API global

Tabel berikut merangkum perbedaan antara endpoint tampilan regional dan endpoint API global standar untuk setiap jenis resource:

Project

Tabel berikut merangkum perbedaan antara endpoint tampilan regional dan endpoint API global standar untuk resource project:

Fitur Global API API tampilan regional
Endpoint Global Regional
URL Referensi /projects/PROJECT_ID /projects/PROJECT_ID/regions/REGION/projectViews
Domain kegagalan Global Khusus untuk wilayah yang ditentukan
Metode yang didukung Baca dan tulis Hanya baca (Get)
Kuota API Menggunakan bucket kuota baca dan tulis API global Menggunakan bucket kuota baca API regional
Konsistensi operasi baca setelah tulis Sangat konsisten (pembacaan dari database global pusat) Konsistensi tertunda (pembacaan dari replika regional)
Perilaku kolom kuota Menampilkan array quota, menggunakan fanout lintas region untuk menyediakan data penggunaan kuota real-time di semua region dan zona. Array quota dikecualikan dari objek Project yang ditampilkan. Karena endpoint projectViews hanya membaca dari replika regional dan tidak melakukan fanout lintas region untuk mengumpulkan metrik kuota, array quota tidak ditampilkan sama sekali. Untuk batas konfigurasi kuota dan metrik penggunaan real-time yang akurat, buat kueri endpoint projects.get global.

OS image

Tabel berikut merangkum perbedaan antara endpoint tampilan regional dan endpoint API global standar untuk resource image OS:

Fitur Global API API tampilan regional
Endpoint Global Regional
URL Referensi /projects/PROJECT_ID/global/images /projects/PROJECT_ID/regions/REGION/imageViews
Domain kegagalan Global Khusus untuk wilayah yang ditentukan
Metode yang didukung Baca dan tulis Hanya baca (Get dan List)
Kuota API Menggunakan bucket kuota baca dan tulis API global Menggunakan bucket kuota baca API regional
Konsistensi operasi baca setelah tulis Sangat konsisten (pembacaan dari database global pusat) Konsistensi tertunda (pembacaan dari replika regional)

Harga

Mengakses tampilan regional melalui endpoint API hanya baca regional tidak dikenai biaya tambahan. Seperti permintaan API Compute Engine global standar, permintaan ke endpoint tampilan regional menggunakan kuota API standar project Anda, khususnya kuota baca API regional, tetapi tidak dikenai biaya tambahan.

Praktik terbaik untuk ketersediaan tinggi

Untuk memaksimalkan ketahanan aplikasi, mencegah beban panel kontrol yang tidak proporsional, dan menghindari pembuatan hotspot satu wilayah, ikuti praktik keandalan berikut saat Anda mengonfigurasi sistem otomatis dan beban kerja klien:

  • Buat kueri region lokal untuk mengurangi area yang terpengaruh: kirim permintaan API projectViews dan imageViews ke region yang tepat tempat workload klien atau cluster deployment Anda berjalan. Untuk workload zonal, gunakan region induk. Melokalkan pembacaan memastikan bahwa gangguan atau pemadaman jaringan di region lain tidak memengaruhi layanan lokal Anda.
  • Mendeteksi string wilayah secara dinamis: jangan meng-hardcode string wilayah default tertentu di library klien bersama atau template deployment. Sebagai gantinya, deteksi region eksekusi workload saat ini secara dinamis dari lingkungan runtime lokalnya sehingga failover multi-region berfungsi secara transparan.
  • Gunakan isolasi kuota regional terhadap workload yang bersaing: Compute Engine menerapkan pembatasan kapasitas API per region. Lonjakan traffic atau skrip yang tidak terkontrol di satu region akan menggunakan kuota baca dari bucket region tersebut tanpa memengaruhi ketersediaan API atau memicu batas kapasitas (429 Too Many Requests) di region penting lainnya.

Langkah berikutnya