Pertimbangan desain untuk workload yang tangguh dengan disk regional

Last reviewed 2020-09-23 UTC

Dokumen ini menjelaskan perilaku dan interaksi antara aplikasi stateful, agen health check, dan bidang kontrol regional khusus aplikasi yang digunakan untuk memantau dan mengatur failover zona dengan men-deploy disk regional yang direplikasi secara sinkron.

Dokumen ini ditujukan bagi developer aplikasi sebagai tindak lanjut dari Mem-build layanan HA menggunakan disk regional, yang memperluas desain dan arsitektur yang dijelaskan di bagian Mem-build layanan database dengan ketersediaan tinggi (HA) menggunakan disk regional. Sebaiknya baca dokumen tersebut terlebih dahulu, terutama bagian tentang pertimbangan desain serta perbandingan biaya, performa, dan ketahanan.

Aplikasi stateless meningkatkan ketahanan dengan memiliki minimal satu instance Compute Engine sekunder yang berjalan di zona yang berbeda. Jika instance utama gagal, aplikasi akan terus berjalan pada instance sekunder. Aplikasi stateful dapat mempertahankan status aplikasinya ke disk zona, atau disk yang hanya tersedia di satu zona, untuk memulihkan statusnya dari mulai ulang instance. Agar tangguh, aplikasi stateful juga harus mempertahankan status aplikasi ke instance sekunder.

Gambar 1 mengilustrasikan aplikasi stateful dua node standar yang direplikasi di dua zona. Aplikasi di setiap zona memiliki disk zona untuk mengambil status aplikasi, dan koneksi jaringan antara instance untuk menyinkronkan perubahan status aplikasi di antara node.

Load balancer digunakan untuk mereplikasi status aplikasi ke instance utama dan sekunder, yang berada di zona yang berbeda.

Gambar 1. Aplikasi stateful dua node tanpa disk regional

Menambahkan disk regional

Cara lain untuk menyinkronkan status aplikasi dari aplikasi stateful adalah dengan menambahkan disk regional. Saat aplikasi menulis status aplikasinya ke disk regional, Google Cloud akan otomatis menyinkronkan block storage dengan zona lain.

Gambar 2 menunjukkan arsitektur aplikasi database stateful.

Disk regional dipasang ke dua instance VM di dua zona.

Gambar 2. Aplikasi database stateful

Seperti yang ditunjukkan gambar 2, masih ada dua instance komputasi aplikasi—instance utama dan instance sekunder—yang di-deploy di dua zona. Selain penggunaan disk regional untuk penyimpanan status aplikasi, kini ada entity tambahan, yaitu bidang kontrol regional khusus aplikasi. Bidang kontrol regional khusus aplikasi menentukan instance mana yang memiliki disk regional yang terpasang dan instance mana yang merupakan instance utama saat ini. Arsitektur ini adalah konfigurasi aktif-pasif karena hanya instance utama yang dapat melakukan commit status aplikasi ke disk regional.

Instance Compute dan aplikasi stateful

Gambar 2 mengilustrasikan aplikasi database pasif-aktif hot. Konfigurasi berikut juga dapat digunakan:

  • Jika tujuan waktu pemulihan (RTO) Anda dapat menyediakan latensi tambahan untuk memulai instance sekunder, Anda dapat menghemat biaya Compute Engine dengan hanya menjalankan instance yang aktif. Dalam failover, bidang kontrol regional khusus aplikasi memulai instance sekunder dan memasang disk regional ke instance tersebut.
  • Workload batch atau stream processing yang memeriksa progresnya ke disk regional. Dalam failover, aplikasi melanjutkan pemrosesan dari checkpoint terakhir.

Mengelola startup instance Compute Engine

Karena hanya satu instance komputasi yang dapat memiliki disk regional pada satu waktu, Anda harus memulai instance dan memasang disk regional secara sistematis. Salah satu praktik terbaik adalah memisahkan instance komputasi dan startup aplikasi dari pemasangan disk regional. Skrip startup instance tidak boleh memulai lampiran disk regional. Sebagai gantinya, skrip startup harus memulai agen health check dan menunggu disk regional dipasang.

Saat startup, instance komputasi perlu melakukan langkah-langkah berurutan berikut:

  1. Mulai agen health check.
  2. Tunggu hingga disk regional terpasang.
  3. Setelah disk regional dipasang, pasang sistem file.
  4. Setelah sistem file dipasang, mulai aplikasi.

Langkah-langkah ini mencakup startup sistem, tetapi ada juga failover. Selama failover, disk regional ditambahkan secara paksa ke instance sekunder. Disk regional juga dihapus secara paksa dari instance utama, dan operasi I/O ke sistem file gagal. Pada tahap ini, Anda harus mematikan atau memulai ulang instance komputasi.

Menjalankan agen health check dan health check

Seperti yang dijelaskan di bagian sebelumnya, instance komputasi menunggu disk regional dipasang sebelum memulai aplikasi. Bidang kontrol regional khusus aplikasi memasang disk regional, tetapi hanya ke instance komputasi yang menunggu disk dipasang. Saat disk terpasang, bidang kontrol khusus aplikasi akan memantau kondisi aplikasi dan memulai failover jika aplikasi menjadi tidak responsif.

Setiap instance komputasi memiliki salah satu status berikut:

  • Nonaktif
  • Memulai
  • Menunggu disk
  • Aplikasi berjalan

Agen health check melaporkan status instance saat ini. Daripada melaporkan kedua status ini melalui satu health check, Anda dapat menjalankan dua health check biner. Jika instance komputasi siap untuk memasang disk regional, atau jika disk regional terpasang dan dapat ditulis, health check instance akan melaporkan status yang responsif. Jika aplikasi berjalan dan dapat menulis status aplikasi ke disk regional, health check aplikasi akan melaporkan status yang responsif.

Menggunakan dua health check biner memiliki beberapa keuntungan:

  • Anda dapat menggunakan layanan health check terkelola Compute Engine, yang melakukan polling pada agen health check dan juga menyelesaikan error sementara melalui jumlah batas.
  • Grup instance terkelola (MIG) dapat memantau health check instance dan autohealing instance komputasi yang tidak responsif.
  • Load balancer dapat memantau health check aplikasi dan merutekan traffic ke instance aplikasi yang aktif.

Anda dapat mencegah sistem agar tidak bereaksi terhadap kegagalan sementara dengan mengurangi frekuensi pelaporan health check, atau dengan meningkatkan nilai minimum sinyal berulang yang diperlukan untuk bertransisi dari satu level ke level lainnya. Kedua pendekatan ini menunda sistem untuk bereaksi terhadap pemadaman dan menambah waktu pemulihan. Dengan menguji dan mengukur parameter ini, Anda dapat menyesuaikan parameter health check untuk menyeimbangkan waktu pemulihan sistem.

Memahami bidang kontrol regional khusus aplikasi

Bagian terakhir dalam arsitektur ini adalah bidang kontrol regional khusus aplikasi, yang bertanggung jawab atas dua fungsi berikut:

  • Mengelola siklus proses instance komputasi utama dan sekunder.
  • Menentukan apakah failover diperlukan, dengan memantau status health check aplikasi.

Jika failover diperlukan, bidang kontrol regional khusus aplikasi akan mengatur failover dengan langkah-langkah berikut:

  1. Memeriksa apakah instance sekunder sedang berjalan dan sedang menunggu disk regional untuk dipasang.
  2. Memaksa pemasangan disk regional ke instance sekunder.
  3. Memantau dan memulai ulang instance utama yang gagal. Saat instance utama dimulai ulang, bidang kontrol akan memulai failover sesuai kebutuhan.

Bidang kontrol regional khusus aplikasi itu sendiri harus sangat tersedia di dua zona tempat aplikasi berjalan. Di pusat data lokal, ketersediaan tinggi (HA) sering kali dicapai dengan men-deploy server tambahan untuk mem-build kuorum, menentukan instance komputasi mana yang merupakan instance utama, dan mengatur failover. Pendekatan ini sering menggunakan alat pemantauan dengan ketersediaan tinggi (HA) seperti Heartbeat, Pacemaker, atau Keepalived.

Meskipun Anda dapat menggunakan bidang kontrol regional khusus aplikasi di mana saja di cloud, Google Cloud menawarkan layanan terkelola dan regional berikut yang menyederhanakan implementasi pendekatan ini:

Gambar 3 mengilustrasikan penggunaan fungsi Cloud Run untuk bidang kontrol regional khusus aplikasi, beserta grup instance terkelola stateful dan health check terkelola.

Bidang kontrol regional khusus aplikasi mengelola VM utama dan sekunder.

Gambar 3. Bidang kontrol regional khusus aplikasi

Gambar 3 menunjukkan dua instance komputasi aplikasi, primer dan sekunder. Setiap instance berjalan di zona terpisah dan dikelola oleh MIG regional stateful. Disk regional tersedia di dua zona yang sama. Dua layanan health check terkelola sedang berjalan. Satu layanan health check terkelola memantau status kondisi instance dan digunakan oleh MIG stateful. Layanan health check lainnya memantau status kondisi aplikasi dan digunakan oleh kumpulan target load balancer.

Bidang kontrol regional khusus aplikasi berinteraksi dengan status kondisi aplikasi kumpulan target dan dengan MIG regional stateful untuk memantau status aplikasi dan memulai pemasangan disk regional ke instance komputasi responsif saat ini.

Langkah selanjutnya