Bermigrasi dari versi lama ke health check terpisah

Mulai 15 September 2019, jika Anda menggunakan health check lama, aplikasi Anda akan terus menjalankan dan menerima health check, tetapi Anda tidak akan dapat men-deploy versi baru aplikasi.

Halaman ini menjelaskan cara mengupgrade dari health check lama ke health check terpisah.

Memverifikasi jenis health check Anda

Untuk memverifikasi jenis health check yang digunakan aplikasi Anda, jalankan perintah berikut:

gcloud app describe

Jika aplikasi Anda menggunakan health check terpisah, deskripsi harus menyertakan informasi berikut:

featureSettings:
    splitHealthChecks: true

Memahami perbedaan utama

Sebelum mengupgrade ke health check terpisah, pertimbangkan perbedaan penting berikut antara health check lama dan terpisah:

  • Permintaan HTTP untuk health check terpisah tidak diteruskan secara default. Sebaliknya, health check lama diteruskan ke jalur /_ah/health di aplikasi Anda secara default.

  • Health check terpisah yang diteruskan harus menampilkan 200 OK jika responsif dan siap. Health check lama menganggap kode HTTP berikut sebagai responsif: 200, 301, 302, 303, 307, 401, 402, 403, 404, 405.

Jika Anda tidak menentukanjalur pemeriksaan keaktifan atau jalur pemeriksaan kesiapan, secara default health check terpisah hanya mengonfirmasi bahwa instance VM dan container Docker sedang berjalan. Selama kondisi ini terus berlanjut, VM akan terus menerima traffic dan tetap aktif, terlepas dari status internal aplikasinya.

Sebaliknya, saat health check lama diaktifkan, jika jalur /_ah/health aplikasi Anda mulai menampilkan kode error HTTP yang tidak responsif (misalnya 5XX), health check lama akan mulai gagal dan VM akan berhenti menerima kemacetan dan dimulai ulang.

Jika aplikasi Anda bergantung pada perilaku health check lama default, tetapkan jalur pemeriksaan keaktifan dan jalur kesiapan yang sesuai.

Mengonversi opsi health check lama

Setiap opsi health check lama dapat ditulis ulang menggunakan health check terpisah sebagai berikut:

Opsi Mempertahankan perilaku yang sama dalam health check terpisah
enable_health_check Jika True atau tidak disetel, konfigurasikan liveness_check.path dan readiness_check.path ke jalur di aplikasi yang menampilkan 200 OK saat aplikasi responsif.
check_interval_sec Konfigurasikan liveness_check.check_interval_sec dan readiness_check.check_interval_sec ke nilai yang sama.
timeout_sec Konfigurasikan liveness_check.timeout_sec dan readiness_check.timeout_sec ke nilai yang sama.
unhealthy_threshold Konfigurasikan readiness_check.failure_threshold ke nilai yang sama.
healthy_threshold Konfigurasikan liveness_check.success_threshold dan readiness_check.success_threshold ke nilai yang sama.
restart_threshold Konfigurasikan liveness_check.failure_threshold ke nilai yang sama. Perhatikan bahwa nilai opsi check_interval_sec dikalikan dengan opsi failure_threshold adalah waktu yang diperlukan untuk menghapus VM yang tidak responsif.

Mengaktifkan health check terpisah

Untuk bermigrasi dari health check lama ke health check terpisah dan menghindari kode status 5xx yang ditingkatkan, selesaikan langkah-langkah berikut:

  1. Memahami perbedaan penting antara health check lama dan terpisah.

  2. Konversikan opsi health check lama untuk setiap versi dalam aplikasi Anda.

    Atau, Anda dapat menyesuaikan bagian liveness_check atau readiness_check dalam file app.yaml untuk setiap versi. Misalnya, lihat Pemeriksaan kehidupan dan Pemeriksaan kesiapan.

  3. Jalankan perintah berikut:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Jika menggunakan setelan yang disesuaikan untuk health check lama, Anda harus menghapus bagian health_check dari file app.yaml.

  5. Deploy versi utama baru aplikasi Anda untuk mulai menggunakan health check keaktifan dan kesiapan.