Mengelola peluncuran

Peluncuran Cloud Deploy meliputi beberapa fase. Fase adalah pengelompokan tugas yang diurutkan dan logis untuk dilakukan dalam peluncuran.

Setiap fase mencakup tugas, yang merupakan tindakan yang harus diambil di setiap fase (misalnya, deploy atau verify). Dan setiap tugas dapat memiliki nol atau beberapa tugas yang dijalankan. Operasi tugas adalah instance tugas. Jika tugas belum berjalan, berarti tidak ada tugas yang berjalan.

Dokumen ini menjelaskan fase, tugas, dan tugas-tugas, dan cara mengelolanya.

Struktur peluncuran

Peluncuran adalah resource Cloud Deploy yang mengaitkan rilis dengan target.

Fase

Peluncuran terdiri dari satu atau beberapa fase.

Untuk strategi deployment standar, hanya ada satu fase: stable.

Untuk strategi deployment canary, ada fase terpisah untuk setiap persentase yang dikonfigurasi. Misalnya, jika Anda mengonfigurasi canary yang men-deploy 25%, lalu 50%, lalu 100%, akan ada tiga fase:

  • canary-25
  • canary-50
  • stable

Nama fase ini adalah standar: canary-[PERCENTAGE] untuk tahap canary, dan stable untuk fase 100%. Namun, jika mengonfigurasi canary manual atau kustom, Anda dapat mengontrol nama fase.

Tugas dan tugas yang dijalankan

Setiap fase peluncuran mencakup satu atau beberapa tugas.

Untuk peluncuran dalam strategi deployment standar, tanpa mengaktifkan verifikasi deployment, ada satu fase (stable).

Untuk peluncuran canary, akan ada fase untuk setiap bagian canary (misalnya, canary-25, canary-50, stable), dan untuk setiap fase, ada tugas deploy. Jika verifikasi diaktifkan, ada juga tugas verify untuk setiap fase.

Operasi tugas adalah instance tugas. Misalnya, tugas yang dijalankan untuk tugas deploy akan dieksekusi, dan jika berhasil, tidak ada tugas lebih lanjut yang dijalankan untuk tugas tersebut. Jika gagal, tugas dapat dicoba lagi saat tugas lain berjalan.

Melewati fase pertama kali

Beberapa strategi deployment (misalnya, canary) membagi traffic antara versi lama dan versi baru. Jika Anda men-deploy ke target untuk pertama kalinya, tidak ada versi lama, sehingga kita tidak dapat membagi traffic.

Karena alasan ini, saat Anda men-deploy canary untuk pertama kalinya, kita akan melewati beberapa fase atau fase canary dan menjalankan fase stable. Setelah itu, aplikasi akan di-deploy, dan deployment canary mendatang akan mencakup fase canary.

Dalam situasi nyata, Anda biasanya akan menjalankan deployment canary jika aplikasi sudah berjalan, sehingga melewatkan fase ini akan jarang terjadi.

Status dalam peluncuran

Peluncuran, fase, tugas, dan tugas berjalan semuanya memiliki status. Bagian ini menjelaskan status untuk setiap status.

Status peluncuran

Peluncuran akan memiliki salah satu status berikut:

  • APPROVAL_REJECTED

    Peluncuran memerlukan persetujuan, tetapi persetujuan tersebut ditolak.

  • CANCELLED

    Status terminal untuk peluncuran yang telah dibatalkan oleh pengguna.

  • CANCELLING

    Pengguna telah membatalkan peluncuran, tetapi pembatalan belum selesai diproses.

  • HALTED

    Dalam deployment paralel, jika satu atau beberapa peluncuran turunan gagal, tetapi setidaknya satu peluncuran turunan berhasil, peluncuran pengontrol akan DIHENTIKAN jika ada beberapa fase setelah peluncuran saat ini.

    Anda dapat melanjutkan peluncuran pengontrol yang dihentikan dengan melakukan salah satu tindakan berikut:

    • Membatalkan peluncuran pengontrol

    • Mencoba lagi atau mengabaikan tugas yang gagal di peluncuran turunan

  • IN_PROGRESS

    Operasi tugas sedang diproses.

  • FAILED

    Tugas gagal, dan pengguna tidak memilih untuk mengabaikan kegagalan.

  • PENDING

    Peluncuran belum mulai diproses. Status ini bertransisi ke IN_PROGRESS atau CANCELED.

  • PENDING_APPROVAL

    Peluncuran memerlukan persetujuan, tetapi belum disetujui.

  • PENDING_RELEASE

    Peluncuran menunggu rilis dirender.

  • SUCCEEDED

    Peluncuran telah selesai, tanpa kegagalan.

Status fase

Sebuah fase akan memiliki salah satu status berikut:

  • PENDING

    Fase ini menunggu fase lain dalam peluncuran selesai.

  • IN_PROGRESS

    Fase telah dimulai.

  • SUCCEEDED

    Fase berhasil diselesaikan.

  • FAILED

    Tugas di fase gagal, dan pengguna tidak memilih untuk mengabaikan kegagalan.

  • ABORTED

    Fase sebelumnya gagal.

  • SKIPPED

    Saat Anda menjalankan strategi deployment, seperti canary, Cloud Deploy akan melewati fase stable jika belum ada versi aplikasi yang berjalan yang akan digunakan untuk membagi traffic. Dalam hal ini, status ditetapkan ke SKIPPED.

Status pekerjaan

Tugas akan memiliki salah satu status berikut:

  • ABORTED

    Jika salah satu fase gagal, fase berikutnya akan dibatalkan.

    Jika tugas gagal, dan kegagalan tersebut tidak diabaikan, tugas berikutnya akan dibatalkan. Misalnya, jika suatu fase menyertakan tugas deployment dan tugas verifikasi, dan tugas deployment gagal, tugas verifikasi akan dibatalkan.

  • DISABLED

    Beberapa tugas dalam Fase mungkin dinonaktifkan. Misalnya, fase selalu menyertakan tugas verifikasi, terlepas dari apakah verifikasi diaktifkan atau tidak. Jika verifikasi tidak diaktifkan, tugas verifikasi akan ditetapkan ke DISABLED.

  • FAILED

    Tugas yang dijalankan untuk tugas ini gagal, dan pengguna tidak memilih untuk mengabaikan kegagalan.

    Pengguna memilih untuk menghentikan operasi tugas untuk tugas ini.

  • IGNORED

    Tugas yang dijalankan untuk tugas ini gagal, dan pengguna memilih untuk mengabaikan kegagalan.

  • IN_PROGRESS

    Tugas yang dijalankan untuk tugas ini sedang berjalan.

  • PENDING

    Tugas yang dijalankan untuk tugas ini menunggu untuk dimulai, karena fase atau tugas lainnya belum selesai.

  • SKIPPED

    Saat Anda menjalankan strategi deployment, seperti canary, Cloud Deploy akan melewati fase stable jika belum ada versi aplikasi yang berjalan yang akan digunakan untuk membagi traffic. Dalam hal ini, status ditetapkan ke SKIPPED pada tugas dalam satu atau beberapa fase yang dilewati.

  • SUCCEEDED

    Tugas berjalan dengan sukses, dan tugas berikutnya dalam fase telah dimulai, atau fase berikutnya telah dimulai atau siap dimulai (mungkin tertunda input pengguna), atau peluncuran telah selesai.

Status operasi tugas

  • FAILED

    Tugas yang dijalankan gagal selama eksekusi.

  • IN_PROGRESS

    Operasi tugas telah dimulai, tetapi belum selesai.

  • TERMINATED

    Pengguna menghentikan operasi tugas.

  • TERMINATING

    Pengguna menghentikan tugas yang berjalan, tetapi belum selesai.

  • SUCCEEDED

    Jika tugas berhasil dijalankan, tanpa gagal atau dihentikan oleh pengguna, tugas tersebut akan dialihkan ke status SUCCEEDED, yang

Kelola peluncuran Anda

Dengan menggunakan Konsol Google Cloud atau Google Cloud SDK, Anda dapat melakukan hal berikut dengan peluncuran Cloud Deploy:

Jika Anda menggunakan deployment paralel dengan strategi deployment canary, lihat dokumen ini.

Melanjutkan peluncuran

Agar target yang dikonfigurasi untuk menggunakan strategi deployment selain "standar", Anda harus memajukan peluncuran dari fase ke fase.

Misalnya, jika Anda memiliki target yang dikonfigurasi untuk melakukan deployment canary sederhana hanya dengan fase 50% dan stable (100%), Anda harus memajukan peluncuran satu kali, dari fase canary-50 ke fase stable (100%).

gcloud

gcloud deploy rollouts advance ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Dengan keterangan:

ROLLOUT_NAME adalah nama peluncuran saat ini yang melanjutkan ke fase berikutnya.

RELEASE_NAME adalah nama rilis yang menjadi bagian dari peluncuran ini.

PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy rollouts advance.

Konsol

  1. Buka halaman pipeline Penayangan.

  2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

    Halaman detail Pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Pada tab Peluncuran, di bagian Detail pipeline penayangan, klik nama peluncuran Anda.

    Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

    detail peluncuran di Konsol Google Cloud

    Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase canary-50 dan fase stable. Peluncuran Anda mungkin memiliki beberapa fase atau fase yang berbeda.

  4. Klik Peluncuran lanjutan.

    Peluncuran ini dilanjutkan ke fase berikutnya.

Membatalkan peluncuran

Anda dapat membatalkan peluncuran yang belum selesai. Anda juga dapat membatalkan peluncuran yang gagal untuk mencegah tindakan lebih lanjut pada peluncuran tersebut (seperti mengabaikan atau mencoba lagi). Peluncuran harus dalam salah satu status berikut:

  • FAILED
  • HALTED
  • IN_PROGRESS
  • PENDING
  • PENDING_APPROVAL
  • PENDING_RELEASE

Setelah Anda membatalkan peluncuran, peluncuran tersebut akan berada dalam status CANCELLING hingga semua tugas yang belum terselesaikan telah selesai. Anda dapat menghentikan tugas yang masih berjalan yang tidak ingin Anda tunggu. Setelah ditetapkan ke CANCELLED, peluncuran tidak dapat lagi dilanjutkan atau diubah.

Untuk membatalkan peluncuran:

gcloud

gcloud deploy rollouts cancel ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Dengan keterangan:

ROLLOUT_NAME adalah nama peluncuran saat ini yang melanjutkan ke fase berikutnya.

RELEASE_NAME adalah nama rilis yang menjadi bagian dari peluncuran ini.

PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy rollouts cancel.

Konsol

  1. Buka halaman pipeline Penayangan.

  2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

    Halaman detail Pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Pada tab Peluncuran, di bagian Detail pipeline penayangan, klik nama peluncuran Anda.

    Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

    detail peluncuran di Konsol Google Cloud

    Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase canary-50 dan fase stable. Peluncuran Anda mungkin memiliki beberapa fase atau fase yang berbeda.

  4. Klik Batalkan peluncuran.

    Peluncuran dibatalkan.

Menghentikan operasi tugas

Anda dapat mengakhiri tugas yang sedang berlangsung. Sebaiknya lakukan hal ini, misalnya, jika tugas yang dijalankan tampaknya memerlukan waktu terlalu lama atau tidak berfungsi seperti yang diharapkan. Tugas yang dijalankan harus berupa IN_PROGRESS agar Anda dapat menghentikannya.

gcloud

gcloud deploy job-runs terminate JOB_RUN_ID \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --rollout=ROLLOUT_NAME \
                               --region=REGION

Dengan keterangan:

JOB_RUN_ID adalah (UUID) dari tugas yang ingin Anda hentikan. Anda dapat menemukan ID pengoperasian tugas di Konsol Google Cloud, untuk Cloud Deploy, di halaman peluncuran:

ID operasi tugas dalam detail peluncuran di Konsol Google Cloud

Anda juga bisa mendapatkan ID yang dijalankan tugas menggunakan perintah gcloud deploy rollouts describe.

RELEASE_NAME adalah nama rilis tempat tugas ini menjadi bagiannya.

PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

ROLLOUT_NAME adalah nama peluncuran yang menjalankan tugas ini.

REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy job-runs terminate.

Konsol

  1. Buka halaman pipeline Penayangan.

  2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

    Halaman detail Pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Pada tab Peluncuran, di bagian Detail pipeline penayangan, klik nama peluncuran Anda.

    Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

    detail peluncuran di Konsol Google Cloud

    Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase canary-50 dan fase stable. Peluncuran Anda mungkin memiliki beberapa fase atau fase yang berbeda.

  4. Pada Phases, klik fase yang menyertakan tugas yang tugasnya berjalan Anda hentikan.

  5. Di bagian Menjalankan tugas, pilih tugas tertentu yang akan Anda hentikan, lalu klik Hentikan.

    Tugas yang dijalankan dihentikan, dan status tugas, seperti yang ditunjukkan dalam tabel Fase, adalah Failure.

Setelah menghentikan operasi tugas, tugas tersebut dianggap gagal dan Anda dapat melakukan salah satu tindakan berikut:

  • Biarkan seperti itu dan abaikan peluncuran yang gagal
  • Mencoba lagi tugas
  • Abaikan tugas dan lanjutkan dengan tugas atau fase berikutnya di peluncuran

Mengabaikan tugas

Anda dapat mengabaikan tugas yang gagal dan langsung berpindah ke tugas berikutnya dalam fase tersebut. Tugas tersebut mungkin gagal karena alasan apa pun, termasuk Anda atau orang lain menghentikan tugas yang dijalankan untuk tugas tersebut.

Tugas yang gagal berarti fase yang gagal dan peluncuran yang gagal. Namun, jika Anda mengabaikan kegagalan tersebut, baik fase maupun peluncuran dapat dilanjutkan dan akhirnya dapat memiliki status SUCCEEDED.

gcloud

gcloud deploy rollouts ignore-job ROLLOUT_NAME \
                               --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --job-id=JOB_ID \
                               --phase-id=PHASE_ID \
                               --region=REGION

Dengan keterangan:

ROLLOUT_NAME adalah nama peluncuran yang menjalankan tugas ini.

RELEASE_NAME adalah nama rilis saat ini yang menyertakan tugas ini.

PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

JOB_ID adalah nama tugas yang akan diabaikan, misalnya DEPLOY. Anda dapat menemukan nama tugas di tabel Phases untuk peluncuran, di Konsol Google Cloud:

Tabel fase, di konsol Google Cloud, dengan tugas yang gagal dijalankan

PHASE_ID adalah nama fase yang menyertakan pekerjaan yang Anda abaikan.

REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1.

Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy rollouts ignore-job.

Konsol

  1. Buka halaman pipeline Penayangan.

  2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

    Halaman detail Pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Pada tab Peluncuran, di bagian Detail pipeline penayangan, klik nama peluncuran Anda.

    Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

  4. Pilih tugas yang gagal untuk diabaikan.

  5. Klik tombol Abaikan kegagalan.

    Operasi tugas yang gagal akan diabaikan, dan peluncuran akan dilanjutkan seolah-olah tugas telah berhasil. Artinya, jika ada tugas lain dalam fase yang sama, tugas tersebut akan dieksekusi. Jika tidak, peluncuran siap dilanjutkan ke fase berikutnya.

Tugas yang gagal, siap untuk diabaikan, di konsol Google Cloud

Mencoba lagi tugas yang gagal

Anda dapat mencoba kembali tugas yang gagal dijalankan. Tugas bisa gagal karena salah satu alasan berikut:

  • Operasi tugas gagal diselesaikan.

    Misalnya, mungkin ada kegagalan izin.

  • Pengguna menghentikan tugas yang berjalan dari tugas tersebut.

    Menghentikan jalannya tugas akan menghasilkan tugas yang gagal, yang dapat Anda coba lagi.

  • Pengujian verifikasi gagal.

    Untuk tugas verifikasi, pengujian verifikasi gagal. Meskipun tugas verifikasi diselesaikan dengan benar, salah satu pengujian verifikasi Anda gagal, dan kami menyebarkannya kembali ke tugas verifikasi. Dalam hal ini, Anda akan mencoba kembali tugas tersebut sebagai bagian dari proses debug pengujian yang gagal terhadap aplikasi Anda.

Untuk mencoba kembali tugas yang gagal:

gcloud

gcloud deploy rollouts retry-job JOB_NAME \
                       --release=RELEASE_NAME \
                       --delivery-pipeline=PIPELINE_NAME \
                       --rollout=ROLLOUT_NAME \
                       --phase=PHASE_ID \
                       --region=REGION

Dengan keterangan:

JOB_NAME adalah nama pekerjaan yang sedang Anda coba lagi. Misalnya, jika Anda mencoba kembali tugas verifikasi setelah verifikasi gagal, nilainya adalah verify.

RELEASE_NAME adalah nama rilis tempat tugas ini menjadi bagiannya.

PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

ROLLOUT_NAME adalah nama peluncuran yang menjalankan tugas ini.

PHASE_ID adalah nama fase yang mencakup tugas ini. Misalnya, canary-50, atau stable.

REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy rollouts retry-job.

Konsol

  1. Buka halaman pipeline Penayangan.

  2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

    Halaman detail Pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Pada tab Peluncuran, di bagian Detail pipeline penayangan, klik nama peluncuran Anda.

    Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

  4. Di bagian Phases and Jobs, klik fase yang menyertakan tugas yang Anda coba lagi.

  5. Pilih tugas yang ingin dicoba lagi.

  6. Klik Coba lagi, dan konfirmasi.

    detail peluncuran di Konsol Google Cloud

    Tugas yang dijalankan akan dijalankan lagi dan status tugas, seperti yang ditunjukkan dalam tabel Phases, adalah "dalam proses". Jika ada tugas lain dalam fase yang sama, tugas tersebut akan dieksekusi. Jika tidak, peluncuran siap dilanjutkan ke fase berikutnya.

Langkah selanjutnya