Pertimbangan desain untuk workload yang tangguh dengan persistent 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 persistent disk regional.

Dokumen ini ditujukan bagi developer aplikasi sebagai tindak lanjut dari Opsi ketersediaan tinggi yang menggunakan persistent disk regional, yang memperluas desain dan arsitektur yang dijelaskan di bagian Membuat layanan database dengan ketersediaan tinggi (HA) menggunakan persistent 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 virtual machine (VM) sekunder yang berjalan di zona Compute Engine yang berbeda. Jika instance VM utama gagal, aplikasi akan terus berjalan pada instance VM sekunder. Aplikasi stateful dapat mempertahankan status aplikasinya ke persistent disk zona untuk memulihkan statusnya dari mulai ulang instance VM. Agar tangguh, aplikasi stateful juga harus mempertahankan status aplikasi ke instance VM sekunder.

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

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

Menambahkan persistent disk regional

Cara lain untuk menyinkronkan status aplikasi dari aplikasi stateful adalah dengan menambahkan persistent disk regional. Saat aplikasi menulis status aplikasinya ke persistent disk regional, Google Cloud akan otomatis menyinkronkan block storage dengan zona lain. Penyimpanan persistent disk regional juga membantu memastikan bahwa hanya satu instance VM di kedua zona yang terpasang ke persistent disk regional pada satu waktu.

Diagram berikut menunjukkan arsitektur aplikasi database stateful.

Persistent disk regional dipasang ke dua instance VM di dua zona.

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

Instance VM dan aplikasi stateful

Diagram arsitektur sebelumnya menggambarkan aplikasi database pasif-aktif hot. Konfigurasi berikut juga dapat digunakan:

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

Mengelola startup instance VM

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

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

  1. Mulai agen health check.
  2. Tunggu hingga persistent disk regional terpasang.
  3. Setelah persistent 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, persistent disk regional ditambahkan secara paksa ke instance VM sekunder. Persistent disk regional juga dihapus secara paksa dari instance VM utama, dan operasi I/O ke sistem file gagal. Pada tahap ini, Anda harus mematikan atau memulai ulang instance VM.

Menjalankan agen health check dan health check

Seperti yang dijelaskan di bagian sebelumnya, instance VM menunggu persistent disk regional dipasang sebelum memulai aplikasi. Bidang kontrol regional khusus aplikasi memasang persistent disk regional, tetapi hanya ke instance VM 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 VM memiliki salah satu status berikut:

  • Nonaktif
  • Memulai
  • Menunggu disk
  • Aplikasi berjalan

Agen health check melaporkan status instance VM saat ini. Daripada melaporkan kedua status ini melalui satu health check, Anda dapat menjalankan dua health check biner. Jika instance VM siap untuk memasang persistent disk regional, atau jika persistent disk regional terpasang dan dapat ditulis, health check instance VM akan melaporkan status yang responsif. Jika aplikasi berjalan dan dapat menulis status aplikasi ke persistent 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 VM 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 VM 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 VM sekunder sedang berjalan dan sedang menunggu persistent disk regional untuk dipasang.
  2. Memaksa pemasangan persistent disk regional ke instance VM sekunder.
  3. Memantau dan memulai ulang instance VM utama yang gagal. Saat instance VM 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 VM mana yang merupakan instance VM utama, dan mengatur failover. Pendekatan ini sering menggunakan alat pemantauan dengan ketersediaan tinggi (HA) seperti Heartbeat, Pacemaker, atau Keepalive.

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:

  • Produk serverless Google Cloud seperti App Engine, Cloud Run, dan Cloud Functions, yang mudah dikelola dan di-deploy.
  • Health check terkelola yang mengalihkan pemantauan instance aplikasi.
  • Grup instance terkelola yang mengelola siklus proses instance server.

Diagram berikut menggambarkan penggunaan Cloud Functions 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.

Diagram sebelumnya menunjukkan dua instance VM aplikasi, utama dan sekunder. Setiap instance VM berjalan di zona terpisah dan dikelola oleh MIG regional stateful. Persistent disk regional tersedia di dua zona yang sama. Dua layanan health check terkelola sedang berjalan. Satu layanan health check terkelola memantau status kondisi instance VM 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 persistent disk regional ke instance VM responsif saat ini.

Langkah selanjutnya