Melakukan pengalihan deployment blue-green

Setelah menguji dan memvalidasi lingkungan hijau, Anda memulai pengalihan untuk mengonversi lingkungan hijau menjadi lingkungan baca dan tulis produksi baru.

Sebelum memulai

Sebelum memulai pengalihan, pastikan Anda memiliki izin yang diperlukan dan deployment Anda siap untuk pengalihan.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menjalankan pengalihan, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

  • Admin Cloud SQL (roles/cloudsql.admin)

Untuk peran khusus, pastikan Anda memiliki izin berikut:

  • cloudsql.blueGreenDeployments.switchover
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.switchover
  • cloudsql.operations.get

Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di Cloud SQL, lihat Peran dan izin.

Verifikasi sebelum pengalihan

Sebelum memulai pengalihan, verifikasi kondisi berikut:

  1. Status deployment: deployment harus dalam status SWITCHOVER_READY.
  2. Validasi beban kerja: selesaikan semua pengujian dan validasi pada instance penyiapan hijau.
  3. Lag replikasi rendah: pastikan lag replikasi antara biru dan hijau minimal untuk mengurangi waktu peralihan.

Cara kerja pengalihan

Saat Anda memulai pengalihan, Cloud SQL akan melakukan urutan otomatis berikut:

  1. Validasi pra-pengalihan: sebelum operasi pengalihan, Cloud SQL memvalidasi bahwa replikasi tidak terganggu dan melakukan serangkaian pemeriksaan konfigurasi untuk memastikan bahwa deployment sudah siap.
  2. Eksekusi alur kerja pengalihan: selama eksekusi alur kerja, Cloud SQL menyiapkan instance untuk pengalihan. Jika jeda replikasi terlalu tinggi atau jika transaksi aktif memblokir peralihan, operasi pengalihan akan gagal dan lingkungan biru produksi Anda tetap online.
  3. Pengalihan traffic: Cloud SQL menukar endpoint koneksi antara instance biru dan hijau.
  4. Konversi peran: instance hijau menjadi instance baca dan tulis produksi yang aktif, dan instance biru menjadi instance baca dan tulis mandiri.

Selama pengalihan, koneksi aplikasi akan mengalami gangguan singkat (biasanya dalam hitungan detik) sebelum terhubung kembali secara otomatis ke instance produksi yang diupgrade. Waktu henti saat 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 diperlukan perubahan konfigurasi aplikasi atau string koneksi.

Status siklus proses pengalihan

Sebelum, selama, dan setelah pengalihan, deployment bertransisi melalui status berikut di kolom respons state:

  • SWITCHOVER_READY: replikasi logis dari biru ke hijau dalam kondisi baik dan deployment siap untuk pengalihan. Status SWITCHOVER_READY hanya bergantung pada replikasi yang responsif. Cloud SQL tidak mengevaluasi jeda replikasi saat menyetel status ini.
  • SWITCHOVER_NOT_READY: deployment telah disediakan, tetapi pengalihan tidak dapat dimulai. Hal ini terjadi jika replikasi logis rusak, dijeda, atau dihentikan, atau jika terjadi error node yang mendasarinya. Cloud SQL tidak mengevaluasi jeda replikasi saat menyetel status ini. Periksa errorDetail dan selesaikan error sebelum mencoba pengalihan.
  • SWITCHOVER_IN_PROGRESS: perintah pengalihan sedang dijalankan secara aktif. Cloud SQL sedang menukar endpoint koneksi dan mengonversi hijau menjadi instance baca dan tulis produksi.
  • SWITCHOVER_COMPLETED: pengalihan berhasil diselesaikan. Green kini menjadi instance database produksi aktif Anda yang melayani traffic baca dan tulis, dan instance biru dipertahankan sebagai instance baca dan tulis mandiri hingga Anda menghapus deployment.

Praktik terbaik sebelum pengalihan

  • Jadwalkan selama periode traffic rendah: meskipun waktu non-operasionalnya minimal (biasanya dalam hitungan detik), mulai pengalihan selama periode aktivitas penulisan rendah (misalnya, di luar jam sibuk atau masa pemeliharaan saat kueri penulisan per detik [QPS] berada pada titik terendah). Tindakan ini meminimalkan jeda replikasi dan mengurangi risiko transaksi yang dibatalkan.
  • Verifikasi jeda replikasi: pastikan jeda replikasi minimal sebelum Anda memulai pengalihan. Mendeskripsikan blue-green deployment tidak menunjukkan jeda replikasi, dan Cloud SQL tidak memeriksa jeda replikasi sebelum operasi pengalihan. Namun, selama eksekusi alur kerja, pengalihan akan gagal jika jeda replikasi terlalu tinggi. Untuk memantau jeda replikasi, periksa metrik Cloud Monitoring (seperti replica_lag) atau periksa status replikasi secara langsung di instance hijau. Untuk informasi selengkapnya, lihat Jeda replikasi.
  • Periksa transaksi aktif: pastikan operasi DDL yang berjalan lama atau penulisan batch selesai sebelum Anda memulai pengalihan.

Memulai pengalihan

Mulai operasi pengalihan menggunakan Google Cloud konsol, gcloud CLI, atau Cloud SQL Admin API:

Konsol

  1. Di Konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Di kartu Blue Green Deployment Status, klik Details untuk membuka halaman Deployment overview.
  4. Klik Switchover deployment.
  5. Dalam dialog Perbedaan Setelan Instance, tinjau perbedaan setelan antara instance Sumber dan Target, lalu klik Lanjutkan untuk memulai pengalihan.

gcloud

Jalankan perintah blue-green-deployments switchover:

gcloud beta sql blue-green-deployments switchover DEPLOYMENT_NAME \
  --region=REGION \
  --async

Operasi pengalihan dapat memerlukan waktu beberapa menit hingga selesai. Anda mungkin melihat pesan yang menunjukkan bahwa operasi memerlukan waktu lebih lama dari yang diperkirakan. Anda dapat mengabaikan pesan ini atau menjalankan perintah gcloud sql operations wait untuk menutup pesan dan menunggu hingga operasi selesai:

gcloud sql operations wait OPERATION_ID

Untuk memeriksa status operasi pengalihan, jalankan perintah gcloud sql operations describe:

gcloud sql operations describe OPERATION_ID

Ganti kode berikut:

  • DEPLOYMENT_NAME: nama deployment blue-green Anda.
  • REGION: region Google Cloud tempat deployment dibuat.
  • OPERATION_ID: ID operasi pengalihan.

REST v1

Kirim permintaan POST ke metode blueGreenDeployments.switchover:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME:switchover

Ganti kode berikut:

  • PROJECT_ID: ID Google Cloud project Anda.
  • REGION: region Google Cloud tempat deployment dibuat.
  • DEPLOYMENT_NAME: nama deployment blue-green Anda.

REST v1beta4

Kirim permintaan POST ke metode blueGreenDeployments.switchover:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME:switchover

Ganti kode berikut:

  • PROJECT_ID: ID Google Cloud project Anda.
  • REGION: region Google Cloud tempat deployment dibuat.
  • DEPLOYMENT_NAME: nama deployment blue-green Anda.

Pemantauan pasca-pengalihan

Setelah pengalihan selesai:

  1. Pastikan aplikasi Anda berhasil terhubung kembali dan operasi database produksi dilanjutkan.
  2. Pantau throughput kueri, log error, dan status replikasi di instance produksi baru.
  3. Pertahankan instance mandiri biru selama periode verifikasi awal setelah upgrade. Setelah Anda mengonfirmasi stabilitas, hapus deployment. Untuk mengetahui informasi selengkapnya, lihat Menghapus deployment blue-green.

Langkah berikutnya