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
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
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 keSKIPPED
.
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 keSKIPPED
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
Klik pipeline yang ditampilkan dalam daftar pipeline pengiriman.
Halaman Detail pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Rollouts, klik nama peluncuran Anda di bagian Delivery pipeline details.
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 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
Klik pipeline yang ditampilkan dalam daftar pipeline pengiriman.
Halaman Detail pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Rollouts, klik nama peluncuran Anda di bagian Delivery pipeline details.
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 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:
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
Klik pipeline yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail Pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Rollouts, pada 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 menyertakan tugas yang tugasnya berjalan dan Anda ingin dihentikan.
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 :
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
Klik pipeline yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail Pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Rollouts, pada 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.
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.
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
Klik pipeline yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail Pipeline pengiriman menampilkan representasi grafis progres pipeline pengiriman Anda.
Di tab Rollouts, pada bagian Delivery pipeline details, klik nama peluncuran Anda.
Halaman detail peluncuran akan ditampilkan, untuk peluncuran tersebut.
Di bagian Fase dan Tugas, klik fase yang menyertakan tugas yang Anda coba ulang.
Pilih tugas yang akan dicoba lagi.
Klik Coba lagi, lalu konfirmasi.
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
Cari tahu lebih lanjut cara kerja strategi deployment di Cloud Deploy.
Lihat dokumentasi arsitektur layanan Cloud Deploy untuk mengetahui informasi selengkapnya tentang cara peluncuran, fase, tugas, dan tugas berjalan sesuai dengan bagian lain Cloud Deploy.