Mengelola peluncuran

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

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

Dokumen ini menjelaskan fase, tugas, dan eksekusi 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 bersifat standar: canary-[PERCENTAGE] untuk fase canary, dan stable untuk fase 100%. Namun, jika mengonfigurasi canary manual atau 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 yang 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.

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

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, sehingga 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 berikutnya akan menyertakan fase canary.

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

Status dalam peluncuran

Peluncuran, fase, tugas, dan tugas yang 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 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 lebih banyak fase setelah fase 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 pada peluncuran turunan

  • IN_PROGRESS

    Proses tugas sedang berjalan.

  • FAILED

    Suatu tugas gagal, dan pengguna tidak memilih untuk mengabaikan kegagalan tersebut.

  • 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

    Tahap 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 memisahkan traffic. Dalam hal ini, status ditetapkan ke SKIPPED.

Status tugas

Tugas akan memiliki salah satu status berikut:

  • ABORTED

    Jika fase gagal, fase berikutnya akan dibatalkan.

    Jika tugas gagal, dan kegagalan tersebut tidak diabaikan, tugas berikutnya akan dibatalkan. Misalnya, jika 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 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 memisahkan traffic. Dalam hal ini, status ditetapkan ke SKIPPED pada tugas dalam fase yang dilewati.

  • SUCCEEDED

    Tugas yang dijalankan berhasil selesai, 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

    Operasi tugas telah dimulai, tetapi belum selesai.

  • TERMINATED

    Pengguna menghentikan operasi tugas.

  • TERMINATING

    Pengguna menghentikan operasi tugas, tetapi belum selesai menghentikannya.

  • SUCCEEDED

    Saat tugas berhasil dijalankan, tanpa gagal atau dihentikan oleh pengguna, tugas 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 dokumen ini.

Mempercepat peluncuran

Untuk target yang dikonfigurasi untuk menggunakan strategi deployment selain "standar", Anda harus melanjutkan peluncuran dari satu fase ke fase berikutnya.

Misalnya, jika Anda memiliki target yang dikonfigurasi untuk melakukan deployment canary sederhana dengan fase 50% dan stable (100%) saja, Anda harus melanjutkan 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 keterangan:

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 yang ditampilkan dalam daftar pipeline pengiriman.

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

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

    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 Lanjutkan 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 (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 berstatus CANCELLING hingga semua tugas yang belum selesai selesai. Anda dapat menghentikan eksekusi tugas yang belum selesai yang tidak ingin Anda tunggu. Setelah peluncuran menjadi CANCELLED, peluncuran tidak dapat lagi ditingkatkan 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 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 yang ditampilkan dalam daftar pipeline pengiriman.

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

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

    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 tugas yang berjalan

Anda dapat mengakhiri tugas yang sedang berjalan. Anda mungkin ingin melakukannya, misalnya, jika tugas yang dijalankan tampaknya memerlukan waktu terlalu lama atau tidak berfungsi seperti yang diharapkan. Tugas yang dijalankan harus 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) tugas yang dijalankan yang ingin Anda hentikan. Anda dapat menemukan ID tugas yang dijalankan di konsol Google Cloud , untuk Cloud Deploy, di halaman peluncuran:

ID eksekusi tugas di detail peluncuran di konsol Google Cloud

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

RELEASE_NAME adalah nama rilis yang merupakan bagian dari operasi 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 yang dijalankan 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 yang ditampilkan dalam daftar pipeline pengiriman.

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

  3. Di tab Rollouts, pada 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 menyertakan tugas yang tugasnya berjalan dan Anda ingin dihentikan.

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

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

Setelah Anda menghentikan tugas yang berjalan, tugas tersebut dianggap gagal dan Anda dapat melakukan salah satu hal berikut:

  • Biarkan begitu dan abaikan peluncuran yang gagal
  • Mencoba ulang 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 tugas yang dijalankan 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 keterangan:

ROLLOUT_NAME adalah nama peluncuran yang menjadi bagian dari tugas yang dijalankan 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 Fase untuk peluncuran, di konsol Google Cloud :

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

PHASE_ID adalah nama fase yang menyertakan 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 yang ditampilkan dalam daftar pipeline pengiriman.

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

  3. Di tab Rollouts, pada 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.

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

Tugas yang gagal, siap diabaikan, di konsol Google Cloud

Mencoba ulang tugas yang gagal

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

  • Pengoperasian tugas gagal diselesaikan.

    Misalnya, mungkin ada kegagalan izin.

  • Pengguna menghentikan operasi tugas dari tugas tersebut.

    Menghentikan tugas yang berjalan akan menyebabkan tugas gagal, yang dapat Anda coba ulang.

  • Pengujian verifikasi gagal.

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

Untuk mencoba ulang 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 tugas yang Anda coba ulang. Misalnya, jika Anda mencoba kembali tugas verifikasi setelah verifikasi gagal, nilainya adalah verify.

RELEASE_NAME adalah nama rilis yang merupakan bagian dari operasi 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 yang dijalankan 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 yang ditampilkan dalam daftar pipeline pengiriman.

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

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

    Halaman detail peluncuran akan ditampilkan, untuk peluncuran tersebut.

  4. Di bagian Fase dan Tugas, klik fase yang menyertakan tugas yang Anda coba ulang.

  5. Pilih tugas yang akan dicoba lagi.

  6. Klik Coba lagi, lalu konfirmasi.

    detail peluncuran di konsol Google Cloud

    Proses tugas dijalankan lagi dan status tugas, seperti yang ditunjukkan dalam tabel Fase, adalah "sedang berlangsung". Jika ada tugas lain dalam fase yang sama, tugas tersebut akan dijalankan. Jika tidak, peluncuran siap dilanjutkan ke fase berikutnya.

Langkah selanjutnya