Grup instance terkelola stateful

Anda dapat mem-build deployment workload stateful yang sangat tersedia di instance VM menggunakan grup instance terkelola stateful (MIG stateful). Workload stateful mencakup aplikasi dengan data atau konfigurasi stateful seperti database, aplikasi monolit lama, dan komputasi batch yang berjalan lama dengan checkpoint.

Dengan MIG stateful, Anda dapat meningkatkan waktu beroperasi dan ketahanan aplikasi stateful tersebut dengan autohealing (pemulihan otomatis workload yang gagal), deployment multi-zona, dan update berkelanjutan otomatis.

Grup instance terkelola yang stateful mempertahankan status unik setiap instance (termasuk nama instance, persistent disk yang terpasang, alamat IP, dan metadata) pada saat mulai ulang, pembuatan ulang, pemulihan otomatis, atau update VM.

Halaman ini menjelaskan kapan harus menggunakan MIG stateful dan memberikan ringkasan umum tentang cara kerjanya. Untuk informasi selengkapnya, lihat Cara kerja MIG stateful.

Untuk mempelajari cara menyiapkan MIG stateful, lihat Mengonfigurasi MIG stateful.

Perbedaan workload stateful dengan workload stateless

Anda dapat menggunakan grup instance terkelola untuk mendukung workload stateful dan stateless. Perbedaan utama antara workload stateful dan stateless adalah bahwa workload stateful mempertahankan status VM individual (misalnya, shard database atau konfigurasi aplikasi) pada disk VM, sedangkan workload stateless, seperti frontend web , tidak mempertahankan status apa pun di setiap VM.

Anda memperlakukan VM dengan workload stateful seperti mesin yang dibuat khusus: Anda peduli dengan identitas (nama), alamat IP, metadata, dan data VM pada setiap mesin. Anda tidak dapat dengan mudah menskalakan workload stateful secara horizontal karena penskalaan dapat memerlukan replikasi data, pembuatan atau penghapusan shard data, atau perubahan keseluruhan konfigurasi aplikasi. Saat membuat ulang atau memperbarui mesin dengan workload stateful, Anda harus mempertahankan status unik VM. Contoh aplikasi stateful termasuk Cassandra, ElasticSearch, mongoDB, MySQL, PostgreSQL, dan Kafka.

Anda memperlakukan VM dengan workload stateless sebagai dapat dipertukarkan dan hanya peduli dengan jumlah VM penyaji yang Anda miliki. Tidak ada satu VM yang diperlakukan secara berbeda dari VM lainnya. Anda dapat dengan mudah menskalakan workload stateless secara horizontal dengan menambahkan atau menghapus VM. Saat mengupdate aplikasi, Anda dapat menghapus mesin dan menggantinya dengan mesin baru dengan nama, alamat IP, metadata, dan disk yang berbeda. Saat VM stateless dihapus atau dibuat ulang, semua data di mesin akan hilang: disk akan dihapus atau dibuat ulang dari awal. Frontend web adalah contoh aplikasi stateless.

MIG statefulMIG stateless
Workload Workload stateful tempat disk, alamat IP, dan/atau metadata dipertahankan pada operasi pembuatan ulang VM. Workload stateless yang sangat tersedia dan skalabel, tempat disk dan alamat IP dibuat ulang dari awal pada penskalaan horizontal, autohealing, update otomatis, dan pembuatan ulang VM.
Fitur MIG
  • Autohealing
  • Update berkelanjutan otomatis
  • Deployment multi-zona
  • Autohealing
  • Update berkelanjutan otomatis
  • Deployment multi-zona
  • Penskalaan otomatis
Item yang dapat dipertahankan
  • Nama instance
  • Persistent disk, termasuk dukungan untuk disk yang tidak ditentukan di template instance
  • Metadata khusus instance
  • Alamat IP
Nama instance

Semua MIG mendukung nama instance kustom dan yang dapat dipertahankan.

Kapan harus menggunakan MIG stateful

Pertimbangkan untuk menggunakan grup instance terkelola stateful (MIG stateful) setiap kali Anda men-deploy aplikasi atau cluster stateful ke Compute Engine dan ingin meningkatkan ketersediaannya dengan autohealing dan deployment multi-zona, atau Anda ingin menyederhanakan update instance stateful dengan mengorkestrasi peluncuran update dan mengontrol level gangguan yang diizinkan pada instance.

MIG stateful ditujukan untuk aplikasi dengan data atau konfigurasi stateful, seperti:

  • Database. Misalnya: Cassandra, ElasticSearch, mongoDB, dan ZooKeeper. Sebelum memutuskan MIG stateful, pertimbangkan untuk menggunakan layanan terkelola sepenuhnya, misalnya, MySQL dan PostgreSQL tersedia di Cloud SQL, untuk berfokus pada aplikasi Anda dan tidak harus berurusan dengan VM.
  • Aplikasi pemrosesan data. Misalnya: Kafka dan Flink. Sebelum memutuskan MIG stateful, pertimbangkan untuk menggunakan layanan terkelola sepenuhnya, misalnya, Dataflow atau Dataproc, untuk berfokus pada tugas pemrosesan data Anda dan tidak harus berurusan dengan VM.
  • Aplikasi stateful lainnya. Misalnya: TeamCity, Jenkins, Bamboo, server DNS dengan alamat IP stateful, dan workload stateful kustom.
  • Aplikasi monolit lama. Aplikasi ini menyimpan status aplikasi di boot disk atau persistent disk tambahan, atau aplikasi tersebut mengandalkan konfigurasi stateful, seperti nama instance VM, alamat IP, atau nilai kunci metadata tertentu.
  • Buat batch workload dengan checkpoint. Dengan konfigurasi ini, Anda dapat mempertahankan hasil checkpoint dari komputasi yang berjalan lama sebagai antisipasi kegagalan workload atau VM atau preemption instance. MIG stateful dapat membuat ulang mesin yang gagal, sekaligus mempertahankan disk datanya, sehingga komputasi Anda dapat dilanjutkan dari checkpoint terakhir.

Untuk mencapai ketahanan terhadap kegagalan zona, aplikasi Anda harus mereplikasi data pada beberapa instance di tingkat aplikasi. Misalnya, ElasticSearch dan Cassandra mendukung fungsi tersebut. Anda dapat menggunakan MiG regional untuk membuat aplikasi tersebut tahan terhadap kegagalan zona dengan men-deploy replika redundan ke beberapa zona dan mengandalkan fungsi replikasi data aplikasi Anda. Jika terjadi kegagalan zona, data Anda akan disajikan dari replika yang tersedia di zona yang tersisa.

Tinjau batasan untuk memverifikasi apakah MIG stateful memenuhi persyaratan Anda sepenuhnya.

Apa yang membuat MIG menjadi stateful

MIG dianggap stateful jika Anda telah membuat konfigurasi stateful.

Anda dapat membuat konfigurasi stateful saat membuat MIG, atau Anda dapat mengonversi grup dari stateless menjadi stateful setelah dibuat dengan menambahkan konfigurasi.

Anda membuat konfigurasi stateful dengan menetapkan kebijakan stateful yang tidak kosong dan/atau satu atau beberapa konfigurasi per instance yang tidak kosong:

  • Kebijakan stateful menentukan item yang ingin Anda pertahankan untuk semua instance di MIG Anda.
  • Konfigurasi per instance menentukan item yang akan dipertahankan untuk instance VM tertentu.

Konfigurasi ini berlaku setelah Anda atau MIG menerapkannya:

  • MIG otomatis menerapkan konfigurasi kebijakan stateful Anda ke instance baru dan yang sudah ada.
  • Saat membuat atau memperbarui konfigurasi per instance, Anda dapat memilih apakah akan menerapkan konfigurasi baru secara manual atau menerapkannya secara otomatis.

Setelah konfigurasi stateful (kebijakan stateful dan/atau konfigurasi per instance) diterapkan, Anda dapat memverifikasinya dengan memeriksa status yang dipertahankan dari setiap instance yang dikelola.

Perubahan berikutnya pada konfigurasi atau ukuran stateful MIG Anda (misalnya, mengurangi ukuran MIG, atau menghapus atau meninggalkan instance dari MIG) dapat memengaruhi status yang dipertahankan dari instance.

Konfigurasi stateful

Grup instance terkelola (MIG) stateful mengambil konfigurasi instance-nya dari kombinasi template instance, konfigurasi semua instance opsional, kebijakan stateful opsional, dan konfigurasi per instance opsional yang Anda tetapkan. Setelah Anda menetapkan konfigurasi untuk grup, MIG akan menggunakan konfigurasi tersebut saat membuat VM. Untuk menerapkan konfigurasi yang telah diperbarui ke VM yang sudah ada, baca artikel Menerapkan konfigurasi VM baru di MIG.

Kebijakan stateful

Kebijakan stateful menentukan item stateful umum untuk semua instance dalam grup instance terkelola. Setiap item yang Anda sertakan dalam kebijakan stateful harus ditentukan dalam template instance MIG.

Anda dapat melakukan perubahan berikut pada kebijakan stateful:

  • Konfigurasikan disk agar menjadi stateful dengan menambahkannya ke kebijakan stateful.
  • Konfigurasikan disk agar menjadi stateless dengan menghapusnya dari kebijakan stateful.
  • Tetapkan bahwa alamat IP harus stateful dengan menambahkan konfigurasi antarmuka jaringan ke kebijakan stateful.
  • Tentukan bahwa alamat IP harus diperlakukan sebagai stateless dengan menghapus konfigurasi dari kebijakan stateful.

Konfigurasi per instance

Konfigurasi per instance menentukan item stateful yang unik untuk instance terkelola tertentu, seperti disk khusus instance, key-value pair metadata, dan alamat IP. Metadata dan disk khusus instance tidak perlu ditentukan di template instance MIG; namun, antarmuka jaringan untuk IP stateful harus ditentukan dalam template instance MIG.

Anda dapat membuat perubahan berikut pada konfigurasi per instance untuk instance tertentu dalam MIG:

  • Konfigurasikan disk yang ditentukan dalam template instance agar menjadi stateful untuk instance (dengan menambahkan disk tersebut ke konfigurasi per instance) atau menjadi stateless (dengan menghapus disk tersebut dari konfigurasi per instance).
  • Konfigurasi disk yang sudah ada, yang tidak ditentukan dalam template instance, untuk dipasang dan menjadi stateful untuk instance tersebut (dengan menambahkan disk tersebut ke konfigurasi per instance) atau untuk dilepas dari instance (menghapus disk dari konfigurasi per instance).
  • Tambahkan atau hapus key-value pair metadata stateful yang spesifik untuk instance.
  • Mengonfigurasi alamat IP satu per satu agar instance di MIG menjadi stateful atau stateless.

Contoh konfigurasi stateful

Berikut adalah contoh konfigurasi stateful:

Template instance + kebijakan stateful + konfigurasi per instance = konfigurasi instance terkelola.

Dalam diagram ini:

  • Template instance menentukan konfigurasi umum untuk semua instance VM dalam MIG
  • Kebijakan stateful menentukan konfigurasi stateful umum untuk disk dengan nama perangkat, data-disk, yang ditentukan oleh template instance, dan yang dibuat serta dipasang satu per satu ke setiap instance VM di MIG.
  • Konfigurasi per instance menentukan konfigurasi stateful untuk instance VM tertentu bernama, node-1. Konfigurasi ini menentukan untuk memasang disk yang sudah ada, my-legacy-1, ke instance node-1 dan memperlakukannya sebagai stateful. Konfigurasi ini juga menentukan satu nilai kunci metadata untuk mempertahankan individualitas untuk instance node-1: node-id:xyz273.

Saat membuat VM node-1, MIG akan melakukan hal berikut:

  1. Menggunakan jenis mesin n2-standard-2, sesuai dengan template instance.
  2. Membuat dan memasang boot disk dengan nama disk yang dihasilkan secara otomatis, boot-node-1, dan nama perangkat boot-disk, menggunakan image Debian GNU/Linux, sesuai dengan template instance. MIG memperlakukan boot disk boot-node-1 sebagai stateless karena tidak dikonfigurasi dalam kebijakan stateful atau dalam konfigurasi per instance.
  3. Membuat dan memasang disk tambahan dengan nama disk yang dihasilkan secara otomatis, data-disk-1, dan nama perangkat, data-disk, menggunakan image kustom, sesuai dengan template instance. MIG memperlakukan disk tambahan data-disk-1 sebagai stateful karena nama perangkatnya telah ditentukan dalam kebijakan stateful.
  4. Memasang disk yang sudah ada dengan nama disk, my-legacy-1, dan menggunakan nama perangkat, legacy-disk, sesuai dengan konfigurasi per instance. MIG memperlakukan disk tambahan my-legacy-1 sebagai stateful karena nama perangkatnya ditentukan dalam konfigurasi per instance.
  5. Menetapkan tiga key-value pair metadata: dua dari template instance (app:example-stateful-app, version:1.0) dan satu dari konfigurasi per instance (node-id:xyz273). MIG memperlakukan key-value pair node-id:xyz273 sebagai stateful karena ditentukan dalam konfigurasi per instance.

Saat membuat ulang VM node-1, dengan asumsi konfigurasi yang sama masih efektif, MIG akan membuat ulang item stateless dan mempertahankan item stateful:

  1. Membuat ulang boot disk dari image asli:

    Pertama, hal ini menghapus boot disk boot-node-1, lalu membuatnya lagi dari image Debian GNU/Linux, seperti yang ditentukan dalam template instance.

  2. Mempertahankan disk tambahan, data-disk-1 dan my-legacy-1:

    Melepas disk tambahan sebelum menghapus VM, lalu memasangnya ke VM setelah dibuat ulang.

  3. Mempertahankan key-value pair metadata individual, node-id:xyz273:

    Menetapkan metadata setelah VM dibuat ulang. Juga menetapkan key-value pair umum dari template instance (app:example-stateful-app dan version:1.0).

Masukan

Kami ingin mempelajari kasus penggunaan, tantangan, dan masukan Anda tentang MIG stateful. Berikan masukan Anda kepada tim kami di mig-discuss@google.com.

Langkah selanjutnya