Mengelola peluncuran

Peluncuran Cloud Deploy mencakup fase. Fase adalah pengelompokan tugas yang harus dilakukan dalam peluncuran secara berurutan dan logis.

Setiap fase mencakup tugas, yang merupakan tindakan yang harus dilakukan di setiap fase (misalnya, deploy atau verify). Setiap tugas dapat memiliki nol atau lebih tugas yang dijalankan. Eksekusi tugas adalah instance tugas. Jika tugas belum berjalan, tidak ada eksekusi tugas.

Dokumen ini menjelaskan fase, tugas, dan jalannya tugas, serta 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 kenari otomatis kustom atau kenari kustom, Anda dapat mengontrol nama fase.

Tugas dan operasi tugas

Setiap fase peluncuran mencakup satu atau beberapa tugas.

Untuk peluncuran dalam strategi deployment standar, tanpa verifikasi deployment diaktifkan, 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.

Eksekusi tugas adalah instance tugas. Misalnya, eksekusi tugas untuk tugas deploy dilakukan, dan jika berhasil, tidak ada lagi eksekusi tugas untuk tugas tersebut. Jika gagal, tugas dapat dicoba lagi sebagai proses tugas lain.

Melewati fase untuk pertama kalinya

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

Oleh karena itu, saat Anda men-deploy canary untuk pertama kalinya, kami akan melewati fase canary dan menjalankan fase stable. Setelah itu, aplikasi akan di-deploy, dan deployment canary di masa mendatang akan mencakup fase canary.

Dalam situasi dunia nyata, Anda biasanya akan menjalankan deployment canary saat aplikasi Anda sudah berjalan, sehingga fase ini jarang dilewati.

Negara bagian dalam peluncuran

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

Status peluncuran

Peluncuran akan memiliki salah satu status berikut:

  • APPROVAL_REJECTED

    Peluncuran memerlukan persetujuan, tetapi persetujuan ditolak.

  • CANCELLED

    Status akhir 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 lebih banyak fase setelah fase saat ini.

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

    • Membatalkan peluncuran pengontrol

    • Mencoba lagi atau mengabaikan tugas yang gagal pada peluncuran turunan

  • IN_PROGRESS

    Eksekusi tugas sedang diproses.

  • FAILED

    Pekerjaan 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

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 dalam 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 untuk membagi traffic. Dalam hal ini, status ditetapkan ke SKIPPED.

Status tugas

Tugas akan memiliki salah satu status berikut:

  • ABORTED

    Jika satu fase gagal, fase berikutnya akan dibatalkan.

    Jika tugas gagal, dan kegagalan tersebut tidak diabaikan, tugas berikutnya akan dibatalkan. Misalnya, jika fase mencakup 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, baik verifikasi diaktifkan atau tidak. Jika verifikasi tidak diaktifkan, tugas verifikasi akan ditetapkan ke DISABLED.

  • FAILED

    Eksekusi tugas untuk tugas ini gagal, dan pengguna tidak memilih untuk mengabaikan kegagalan.

    Pengguna memilih untuk menghentikan eksekusi tugas untuk tugas ini.

  • IGNORED

    Eksekusi tugas untuk tugas ini gagal, dan pengguna memilih untuk mengabaikan kegagalan.

  • IN_PROGRESS

    Saat ini, tugas untuk pekerjaan ini sedang berjalan.

  • PENDING

    Run tugas untuk tugas ini sedang menunggu untuk dimulai, karena fase atau tugas lain belum selesai.

  • SKIPPED

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

  • SUCCEEDED

    Eksekusi tugas berhasil diselesaikan, dan tugas berikutnya dalam fase telah dimulai, atau fase berikutnya telah dimulai atau siap dimulai (mungkin menunggu input pengguna), atau peluncuran telah selesai.

Status operasi tugas

  • FAILED

    Eksekusi tugas gagal selama eksekusi.

  • IN_PROGRESS

    Eksekusi tugas telah dimulai, tetapi belum selesai.

  • TERMINATED

    Pengguna menghentikan eksekusi tugas.

  • TERMINATING

    Pengguna menghentikan eksekusi tugas, tetapi penghentian belum selesai.

  • SUCCEEDED

    Saat proses tugas selesai dengan berhasil, tanpa gagal atau dihentikan oleh pengguna, proses tersebut akan dimasukkan ke dalam status SUCCEEDED, yang

Mengelola peluncuran

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 cara mengelola peluncuran canary paralel.

Memajukan peluncuran

Untuk 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 dengan hanya fase 50% dan stable (100%), Anda harus memajukan peluncuran sekali, 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:

ROLLOUT_NAME adalah nama peluncuran saat ini yang Anda lanjutkan 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 region tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Lihat referensi Google Cloud SDK untuk mengetahui informasi selengkapnya tentang perintah gcloud deploy rollouts advance.

Konsol

  1. Buka halaman pipeline pengiriman.

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

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

  3. Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.

    Halaman detail peluncuran akan 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 lebih banyak fase atau fase yang berbeda.

  4. Klik Maju peluncuran.

    Peluncuran 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 berada 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 selesai dijalankan. Anda dapat menghentikan proses tugas yang tertunda yang tidak ingin Anda tunggu. Setelah peluncuran 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:

ROLLOUT_NAME adalah nama peluncuran saat ini yang Anda lanjutkan 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 region tempat rilis dibuat, misalnya us-central1. Wajib diisi.

Lihat referensi Google Cloud SDK untuk mengetahui informasi selengkapnya tentang perintah gcloud deploy rollouts cancel.

Konsol

  1. Buka halaman pipeline pengiriman.

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

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

  3. Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.

    Halaman detail peluncuran akan 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 lebih banyak fase atau fase yang berbeda.

  4. Klik Batalkan peluncuran.

    Peluncuran dibatalkan.

Menghentikan eksekusi tugas

Anda dapat mengakhiri proses tugas yang sedang berlangsung. Anda mungkin ingin melakukannya, misalnya, jika eksekusi tugas tampaknya memerlukan waktu terlalu lama atau tidak berfungsi seperti yang diharapkan. Eksekusi tugas harus IN_PROGRESS agar Anda dapat mengakhirinya.

gcloud

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

Dengan:

JOB_RUN_ID adalah (UUID) run tugas yang ingin Anda hentikan. Anda dapat menemukan ID eksekusi tugas di konsol Google Cloud , untuk Cloud Deploy, di halaman peluncuran:

ID eksekusi tugas dalam detail peluncuran di konsol Google Cloud

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

RELEASE_NAME adalah nama rilis yang menjadi bagian dari jalankan tugas ini.

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

ROLLOUT_NAME adalah nama peluncuran yang menjadi bagian dari tugas ini.

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

Lihat referensi Google Cloud SDK untuk mengetahui informasi selengkapnya tentang perintah gcloud deploy job-runs terminate.

Konsol

  1. Buka halaman pipeline pengiriman.

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

    Halaman Detail pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.

    Halaman detail peluncuran akan 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 lebih banyak fase atau fase yang berbeda.

  4. Di bagian Fase, klik fase yang mencakup tugas yang menjalankan tugasnya akan Anda hentikan.

  5. Di bagian Job runs, pilih job run tertentu yang Anda hentikan, lalu klik Terminate.

    Eksekusi tugas dihentikan, dan status tugas, seperti yang ditampilkan dalam tabel Phases, adalah Failure.

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

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

Mengabaikan tugas

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

Tugas yang gagal berarti fase yang gagal dan peluncuran yang gagal. Namun, jika Anda mengabaikan kegagalan, fase dan peluncuran dapat dilanjutkan dan pada 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:

ROLLOUT_NAME adalah nama peluncuran yang menjadi bagian dari tugas ini.

RELEASE_NAME adalah nama rilis saat ini yang mencakup 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 Fase untuk peluncuran, di konsol Google Cloud :

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

PHASE_ID adalah nama fase yang mencakup tugas yang Anda abaikan.

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

Lihat referensi Google Cloud SDK untuk mengetahui informasi selengkapnya tentang perintah gcloud deploy rollouts ignore-job.

Konsol

  1. Buka halaman pipeline pengiriman.

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

    Halaman Detail pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.

  3. Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.

    Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.

  4. Pilih tugas yang gagal untuk diabaikan.

  5. Klik tombol Abaikan kegagalan.

    Eksekusi 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 diabaikan, di konsol Google Cloud

Mencoba lagi tugas yang gagal

Anda dapat mencoba lagi eksekusi tugas yang gagal. Pekerjaan dapat gagal karena salah satu alasan berikut:

  • Eksekusi tugas gagal diselesaikan.

    Misalnya, mungkin terjadi kegagalan izin.

  • Pengguna menghentikan eksekusi tugas dari tugas tersebut.

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

  • Tes verifikasi gagal.

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

Untuk mencoba lagi 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:

JOB_NAME adalah nama tugas yang Anda coba lagi. Misalnya, jika Anda mencoba lagi tugas verifikasi setelah verifikasi gagal, nilai ini adalah verify.

RELEASE_NAME adalah nama rilis yang menjadi bagian dari jalankan tugas ini.

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

ROLLOUT_NAME adalah nama peluncuran yang menjadi bagian dari tugas ini.

PHASE_ID adalah nama fase yang menjadi bagian dari tugas ini. Misalnya, canary-50, atau stable.

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

Lihat referensi Google Cloud SDK untuk mengetahui informasi selengkapnya tentang perintah gcloud deploy rollouts retry-job.

Konsol

  1. Buka halaman pipeline pengiriman.

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

    Halaman Detail pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.

  3. Di tab Peluncuran, di bagian Detail pipeline pengiriman, klik nama peluncuran Anda.

    Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.

  4. Di bagian Fase dan Tugas, klik fase yang mencakup tugas yang Anda coba lagi.

  5. Pilih tugas yang akan dicoba lagi.

  6. Klik Coba lagi, lalu konfirmasi.

    detail peluncuran di konsol Google Cloud

    Run tugas dijalankan lagi dan status tugas, seperti yang ditampilkan dalam tabel Phases, adalah "in progress". Jika ada tugas lain dalam fase yang sama, tugas tersebut akan dijalankan. Jika tidak, peluncuran siap dilanjutkan ke fase berikutnya.

Langkah berikutnya