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
atauCANCELED
.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 keSKIPPED
.
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 keSKIPPED
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
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail pipeline Pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.
Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.
Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase
canary-50
dan fasestable
. Peluncuran Anda mungkin memiliki lebih banyak fase atau fase yang berbeda.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
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail pipeline Pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.
Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.
Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase
canary-50
dan fasestable
. Peluncuran Anda mungkin memiliki lebih banyak fase atau fase yang berbeda.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:
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
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman Detail pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.
Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.
Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase
canary-50
dan fasestable
. Peluncuran Anda mungkin memiliki lebih banyak fase atau fase yang berbeda.Di bagian Fase, klik fase yang mencakup tugas yang menjalankan tugasnya akan Anda hentikan.
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 :
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
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman Detail pipeline pengiriman menampilkan representasi grafis dari progres pipeline pengiriman Anda.
Di tab Rollouts, di bagian Delivery pipeline details, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.
Pilih tugas yang gagal untuk diabaikan.
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.
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
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman Detail pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Peluncuran, di bagian Detail pipeline pengiriman, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan untuk peluncuran tersebut.
Di bagian Fase dan Tugas, klik fase yang mencakup tugas yang Anda coba lagi.
Pilih tugas yang akan dicoba lagi.
Klik Coba lagi, lalu konfirmasi.
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
Cari tahu lebih lanjut cara kerja strategi deployment di Cloud Deploy.
Lihat dokumentasi arsitektur layanan Cloud Deploy untuk mengetahui informasi selengkapnya tentang cara kerja peluncuran, fase, tugas, dan eksekusi tugas dengan Cloud Deploy.