Tentang blue-green deployment di Cloud SQL

Dokumen ini memberikan ringkasan tentang blue-green deployment Cloud SQL, yang memungkinkan Anda melakukan update database, seperti upgrade versi utama dan modifikasi hardware, sekaligus meminimalkan periode nonaktif.

Tujuan dan kasus penggunaan deployment

Anda dapat membuat blue-green deployment dengan atau tanpa intent untuk melakukan upgrade versi utama:

  • Buat dengan maksud (upgrade versi utama): mengupgrade mesin database Anda ke versi utama yang lebih baru. Selama pembuatan deployment, Cloud SQL menjalankan API pemeriksaan awal upgrade versi utama untuk memverifikasi kompatibilitas sebelum melanjutkan alur kerja upgrade.
  • Buat tanpa maksud (perubahan konfigurasi atau hardware): tahap modifikasi pada versi database saat ini. Kasus penggunaan mencakup perubahan jenis mesin (penskalaan CPU/RAM), pengujian flag database, atau evaluasi modifikasi penyimpanan tanpa mengupgrade versi mesin.

Cara kerja blue-green deployment

Blue-green deployment Cloud SQL menyediakan alur kerja otomatis dengan melakukan penahapan perubahan di lingkungan sekunder sementara sebelum mengalihkan traffic aktif.

Selama blue-green deployment, Cloud SQL akan membuat lingkungan staging (hijau) terpisah yang mencerminkan lingkungan produksi (biru) yang ada. Layanan ini mempertahankan replikasi logis berkelanjutan dari biru ke hijau. Anda dapat menguji kompatibilitas dan performa aplikasi secara menyeluruh di lingkungan hijau tanpa memengaruhi traffic produksi. Saat Anda siap, Anda akan memicu pengalihan cepat yang menetapkan lingkungan hijau ke status baca dan tulis produksi dengan waktu henti aplikasi minimal (biasanya dalam hitungan detik).

Komponen blue-green deployment

Blue-green deployment terdiri dari komponen berikut:

  • Lingkungan biru (sumber): lingkungan produksi yang ada yang secara aktif melayani traffic aplikasi. Objek ini terdiri dari instance baca dan tulis sumber serta konfigurasi terkait.
  • Lingkungan hijau (target): lingkungan staging sementara dan terisolasi yang dibuat oleh Cloud SQL sebagai clone lingkungan biru. Lingkungan hijau menggabungkan perubahan yang Anda minta (seperti versi database yang lebih baru) dan tetap disinkronkan dengan lingkungan biru menggunakan replikasi berkelanjutan. Cloud SQL secara otomatis memberi nama instance penyiapan hijau menggunakan pola BLUE_INSTANCE_NAME-green-UNIQUE_ID (dengan BLUE_INSTANCE_NAME dipotong hingga maksimum 48 karakter dan UNIQUE_ID adalah ID heksadesimal 8 karakter).
  • Switchover: proses yang direncanakan dan dimulai pengguna untuk mengonversi lingkungan hijau menjadi instance baca dan tulis produksi baru. Selama pengalihan, Cloud SQL menukar endpoint koneksi sehingga aplikasi terhubung ke lingkungan hijau dengan gangguan koneksi singkat (biasanya dalam hitungan detik). Perkiraan periode nonaktif selama pengalihan bervariasi berdasarkan edisi Cloud SQL:

    • Edisi Cloud SQL Enterprise Plus: periode nonaktif pengalihan biasanya kurang dari satu detik.
    • Edisi Cloud SQL Enterprise: periode nonaktif pengalihan biasanya kurang dari 60 detik, bergantung pada workload dan jeda replikasi.

    Tidak seperti failover yang tidak direncanakan (yang dipicu secara otomatis selama pemadaman), pengalihan adalah operasi terkontrol yang digunakan untuk pengelolaan perubahan yang direncanakan.

  • Penghapusan: proses menghapus resource blue-green deployment. Perilaku penghapusan berbeda-beda, bergantung pada apakah pengalihan telah terjadi:

    • Sebelum pengalihan: menghapus deployment akan menghapus instance penyiapan hijau dan resource deployment. Instance produksi biru Anda tidak terpengaruh dan terus melayani traffic.
    • Setelah peralihan: menghapus deployment akan menghapus metadata deployment. Secara default, instance yang dikonversi (hijau) dan instance biru dipertahankan. Anda dapat menghapus instance biru secara opsional untuk menghindari biaya berkelanjutan.

Siklus proses dan status deployment

Blue-green deployment bertransisi melalui empat fase siklus proses yang berbeda:

  1. Pembuatan dan penyiapan (PROVISIONING): saat Anda meminta deployment blue-green, Cloud SQL menyediakan instance target hijau sementara yang meng-clone lingkungan produksi biru Anda. Dalam kasus upgrade versi utama, Cloud SQL juga menjalankan API pemeriksaan awal upgrade versi utama untuk memvalidasi kompatibilitas database sebelum melanjutkan alur kerja upgrade. Cloud SQL menerapkan upgrade atau perubahan konfigurasi yang diminta ke lingkungan hijau dan memulai replikasi logis berkelanjutan dari biru ke hijau.
  2. Verifikasi penyiapan (SWITCHOVER_READY atau SWITCHOVER_NOT_READY): saat replikasi awal selesai, deployment akan memasuki SWITCHOVER_READY (atau SWITCHOVER_NOT_READY jika replikasi terganggu atau jika terjadi error). Blue terus menayangkan traffic produksi live. Anda terhubung ke hijau untuk menjalankan pengujian validasi, memverifikasi kompatibilitas aplikasi, dan menguji performa kueri.
  3. Eksekusi pengalihan (SWITCHOVER_IN_PROGRESS atau SWITCHOVER_COMPLETED): saat Anda memicu pengalihan, Cloud SQL menjalankan pemeriksaan awal keamanan, menukar endpoint koneksi, dan menetapkan instance hijau sebagai instance baca dan tulis produksi aktif Anda (SWITCHOVER_COMPLETED), serta mentransisikan instance biru menjadi instance baca dan tulis mandiri. Operasi baca dan tulis aktif dirutekan secara eksklusif ke instance hijau dan replikasi logis dari biru ke hijau dihentikan. Untuk mengetahui informasi selengkapnya, lihat Melakukan pengalihan deployment blue-green.
  4. Penghapusan (DELETING): setelah Anda selesai menguji atau setelah Anda memverifikasi operasi produksi, Anda menghapus resource deployment. Perilaku penghapusan berbeda-beda, bergantung pada status deployment:

    • Sebelum pengalihan (pembatalan): jika Anda memutuskan untuk tidak melanjutkan deployment atau jika muncul masalah verifikasi, menghapus deployment akan menghapus instance penyiapan hijau dan menghapus metadata deployment. Instance produksi biru asli tetap tidak terpengaruh dan terus melayani traffic tanpa gangguan.
    • Setelah peralihan (pembersihan): setelah peralihan selesai dan Anda memverifikasi operasi pada instance produksi baru, menghapus deployment akan menghapus metadata deployment. Secara default, instance produksi baru (hijau) dan instance biru dipertahankan sebagai instance baca dan tulis mandiri. Anda dapat secara opsional menentukan tanda --delete-old-source untuk menghapus instance biru secara permanen dan berhenti dikenai biaya untuk instance tersebut.

    Untuk mengetahui informasi selengkapnya, lihat Menghapus deployment blue-green.

Status resource deployment

Saat Anda memeriksa deployment blue-green, kolom state menunjukkan status siklus proses saat ini:

  • PROVISIONING: deployment sedang dibuat. Untuk upgrade versi utama, Cloud SQL menjalankan API pemeriksaan awal untuk memvalidasi kompatibilitas sebelum melanjutkan. Cloud SQL menyediakan lingkungan hijau, menerapkan upgrade yang diminta, dan menyiapkan replikasi logis berkelanjutan.
  • SWITCHOVER_READY: lingkungan hijau disediakan, replikasi logis dari biru ke hijau dalam kondisi baik, dan deployment siap untuk pengalihan.
  • SWITCHOVER_NOT_READY: deployment telah disediakan, tetapi pengalihan tidak dapat dimulai. Hal ini terjadi jika replikasi logis rusak atau dihentikan, jika replikasi awal belum selesai, atau jika node yang dipasangkan mengalami error.
  • SWITCHOVER_IN_PROGRESS: operasi pengalihan sedang berjalan aktif. Cloud SQL menukar endpoint koneksi dan mengonversi instance hijau menjadi instance baca dan tulis produksi aktif.
  • SWITCHOVER_COMPLETED: operasi pengalihan telah berhasil diselesaikan. Instance hijau kini menjadi instance baca dan tulis produksi aktif Anda, dan instance biru dipertahankan sebagai instance baca dan tulis mandiri.
  • DELETING: deployment sedang dihapus. Jika dihapus sebelum pengalihan, Cloud SQL akan menghapus instance penyiapan hijau dan menghapus metadata deployment. Jika menghapus setelah pengalihan, Cloud SQL akan menghapus metadata deployment dan secara opsional menghapus instance biru jika flag --delete-old-source ditentukan.
  • STATE_UNSPECIFIED: status deployment tidak diketahui.

Status dan kesiapan pengalihan

Kesiapan pengalihan bergantung pada kondisi replikasi dan status node untuk melindungi database produksi Anda dari kehilangan data atau periode nonaktif yang berkepanjangan:

  • Kesehatan dan jeda replikasi: jika replikasi logis antara biru dan hijau terganggu, dijeda, atau gagal, status deployment akan bertransisi ke SWITCHOVER_NOT_READY. Output deployment state dan describe tidak melaporkan jeda replikasi, dan Cloud SQL tidak mengevaluasi jeda replikasi sebagai pemeriksaan awal saat menentukan status deployment. Namun, operasi pengalihan akan gagal jika jeda replikasi terlalu tinggi saat pengalihan dimulai. Untuk membantu memastikan pengalihan yang berhasil, pastikan jeda replikasi minimal sebelum memulai pengalihan. Anda dapat memantau jeda replikasi di Cloud Monitoring (dengan memeriksa metrik seperti replica_lag di daftar metrik Cloud SQL) atau langsung di instance hijau. Untuk mengetahui informasi selengkapnya, lihat Memantau jeda replikasi.
  • Status node yang dipasangkan: di bagian deploymentMappings, setiap node yang dipasangkan melaporkan status nodenya sendiri (seperti PROVISIONED, UPGRADED, UPGRADE_FAILED, SWITCHOVER_IN_PROGRESS, SWITCHOVER_SUCCEEDED, atau SWITCHOVER_FAILED). Jika node yang dipasangkan mengalami error (UPGRADE_FAILED atau SWITCHOVER_FAILED), status deployment secara keseluruhan akan bertransisi ke SWITCHOVER_NOT_READY. Jika pengalihan gagal, perutean akan tetap berada di instance biru tanpa kehilangan data.
  • Memecahkan masalah kesiapan pengalihan: jika deployment Anda melaporkan SWITCHOVER_NOT_READY, periksa kolom errorDetail untuk mendiagnosis replikasi atau error node. Sebelum memulai pengalihan, pastikan jeda replikasi minimal dan verifikasi bahwa operasi DDL batch aktif atau transaksi tulis yang berjalan lama pada instance biru telah selesai.

Batasan

Tinjau batasan berikut sebelum menggunakan blue-green deployment:

  • Mesin dan versi yang didukung: Instance Cloud SQL untuk MySQL di MySQL 5.7 dan yang lebih baru didukung untuk penyiapan konfigurasi (pembuatan tanpa maksud). Target upgrade versi utama (buat dengan maksud) didukung dari MySQL 8.0 ke 8.4. MySQL 8.0.18 tidak didukung untuk blue-green deployment.
  • Mesin database yang tidak didukung: Cloud SQL untuk PostgreSQL dan Cloud SQL untuk SQL Server tidak didukung.
  • Instance dengan replika baca: deployment blue-green tidak mendukung instance dengan replika baca.
  • Konfigurasi jaringan yang tidak didukung: blue-green deployment tidak mendukung konfigurasi keluar Private Service Connect.
  • Autentikasi grup IAM: deployment blue-green tidak kompatibel dengan autentikasi grup IAM MySQL dan dapat menyebabkan kegagalan pengalihan.
  • Persyaratan arsitektur jaringan: Instance Cloud SQL harus menggunakan arsitektur jaringan baru. Instance yang menggunakan arsitektur jaringan lama tidak didukung.
  • Persyaratan logging biner: Instance MySQL harus mengaktifkan pencadangan otomatis dan logging biner untuk mendukung replikasi logis berkelanjutan ke lingkungan hijau.
  • Persyaratan versi pemeliharaan: instance sumber biru Anda harus menjalankan versi pemeliharaan terbaru sebelum Anda membuat blue-green deployment. Untuk memeriksa atau mengupdate versi pemeliharaan instance Anda, lihat Melakukan pemeliharaan mandiri.
  • Ketersediaan resource: penyediaan instance selama alur kerja blue-green deployment—termasuk pembuatan instance penyiapan hijau dan pembuatan instance biru setelah pengalihan—dapat terpengaruh oleh batasan resource komputasi di region atau zona yang dipilih.
  • Pemadaman dan failover yang tidak direncanakan: pengalihan blue-green deployment adalah operasi yang direncanakan secara ketat yang memerlukan instance sumber biru yang RUNNINGberfungsi baik. Instance penyiapan hijau berfungsi sebagai replika baca khusus; seperti replika baca standar, instance hijau tidak dapat digunakan sebagai target failover selama pemadaman layanan yang tidak direncanakan pada instance sumber. Untuk pemulihan dari gangguan otomatis, konfigurasi instance Anda untuk ketersediaan tinggi atau gunakan replika pemulihan dari bencana (DR).

Penagihan dan harga

Tidak ada biaya tambahan untuk menggunakan blue-green deployment. Namun, karena lingkungan hijau paralel yang lengkap disediakan selama deployment, Anda akan ditagih tarif standar untuk instance biru dan hijau selama durasi keberadaan kedua lingkungan tersebut.

Untuk menghindari biaya yang tidak perlu, hapus deployment dan instance terkait:

  • Sebelum pengalihan: jika Anda membatalkan deployment, hapus deployment untuk menghapus instance penyiapan hijau dan menghentikan tagihan untuk instance tersebut.
  • Setelah peralihan: hapus deployment dan tentukan flag --delete-old-source untuk menghapus instance biru secara permanen setelah Anda memverifikasi instance produksi baru. Jika Anda tidak menghapus instance biru, Anda akan terus ditagih untuk kedua instance tersebut.

Langkah berikutnya