Otomatiskan deployment Anda

Dokumen ini adalah ringkasan otomatisasi deployment.

Anda dapat mengonfigurasi Cloud Deploy untuk otomatis melakukan tugas terkait rilis dan terkait peluncuran untuk pipeline pengiriman tertentu. Tugas ini mencakup promosi rilis dan kemajuan fase.

Pelajari lebih lanjut resource yang digunakan untuk otomatisasi rilis di Cloud Deploy.

Pelajari lebih lanjut cara menyiapkan aturan yang menentukan cara kerja otomatisasi ini.

Tindakan yang dapat Anda otomatisasi

Di Cloud Deploy, Anda dapat mengotomatiskan aktivitas rilis dan peluncuran berikut:

  • Mempromosikan rilis secara otomatis

    Anda dapat mengonfigurasi Cloud Deploy untuk mempromosikan rilis secara otomatis setelah berhasil diluncurkan ke target. Misalnya, jika Anda memiliki tiga target, dev, staging, dan prod, Anda dapat mengonfigurasi otomatisasi sehingga rilis dipromosikan ke prod, tanpa interaksi manusia lebih lanjut, setelah deployment berhasil ke staging. Anda juga dapat menentukan waktu penundaan.

  • Mempromosikan rilis sesuai jadwal

    Anda dapat mengonfigurasi Cloud Deploy untuk mempromosikan rilis sesuai dengan jadwal cron.

  • Mempercepat peluncuran

    Anda dapat mengonfigurasi Cloud Deploy untuk melanjutkan peluncuran dari satu fase ke fase berikutnya, setelah peluncuran berhasil ke target sebelumnya. Kemajuan fase hanya tersedia di target yang menggunakan strategi deployment canary.

  • Memperbaiki peluncuran

    Anda dapat mengonfigurasi Cloud Deploy untuk mencoba kembali peluncuran yang gagal secara otomatis. Hal ini mencakup percobaan ulang peluncuran beberapa kali sesuai jumlah yang ditentukan, dan rollback otomatis jika jumlah percobaan ulang tersebut gagal.

Lihat Aturan otomatisasi untuk mengetahui informasi selengkapnya tentang tindakan ini, dan cara mengonfigurasinya.

Bagaimana cara kerja otomatisasi?

Setiap otomatisasi terikat dengan pipeline pengiriman yang digunakannya. Anda tidak dapat membagikan otomatisasi di beberapa pipeline pengiriman.

Berikut adalah proses umum untuk konfigurasi dan eksekusi otomatisasi:

  1. Anda mengonfigurasi Otomatisasi

    Otomatisasi ini dikaitkan dengan satu pipeline pengiriman.

  2. Anda mendaftarkan otomatisasi tersebut menggunakan gcloud deploy apply.

    Tindakan ini akan membuat Referensi otomatisasi.

  3. Anda memanggil pipeline pengiriman yang terkait dengan otomatisasi ini dengan membuat rilis.

  4. Peluncuran berhasil untuk setidaknya satu target, atau gagal.

    Jika peluncuran berhasil, dan otomatisasi adalah promoteReleaseRule:

    1. Eksekusi menunggu peluncuran berhasil ke target sumber. Target sumber adalah selector.targets yang dikonfigurasi untuk otomatisasi, bukan di AutomationRule.

    2. Jika ada waktu wait yang dikonfigurasi, eksekusi juga akan menunggu waktu tersebut.

    3. Rilis akan otomatis dipromosikan ke target berikutnya dalam progres pipeline, atau ke target tertentu, jika ditunjukkan.

    Jika peluncuran berhasil, dan otomatisasi adalah advanceRolloutRule dan target menggunakan strategi deployment canary:

    1. Eksekusi menunggu fase sumber yang diidentifikasi, jika ada.

      Properti sourcePhase bersifat opsional, dan jika tidak ada fase sumber yang ditentukan, setiap fase dalam peluncuran akan otomatis maju. Kemajuan fase otomatis terjadi saat fase sumber IN_PROGRESS, bergantung pada waktu wait.

    2. Jika ada waktu wait yang dikonfigurasi, eksekusi juga akan menunggu waktu tersebut.

      Saat mengotomatiskan deployment canary, Anda menggunakan waktu tunggu ini untuk menentukan durasi setiap fase canary.

    3. Peluncuran akan otomatis dilanjutkan dari fase sumber tersebut ke fase berikutnya dalam peluncuran.

    4. Jika ada fase sumber tambahan, fase tersebut akan diperlakukan sama, termasuk waktu tunggu yang sama, jika berlaku.

    Jika peluncuran gagal, dan ada otomatisasi dengan aturan repairRollout:

    1. Peluncuran akan dicoba lagi, setelah waktu wait yang dikonfigurasi, jika ada.

      Jika fase atau tugas tertentu dikonfigurasi dalam aturan repairRollout ini, hanya fase atau tugas tersebut yang dicoba lagi. Secara default, jika tidak ada tugas atau fase yang ditentukan, semua fase dan tugas dalam peluncuran akan dicoba ulang.

      Karena percobaan ulang bersifat opsional, jika otomatisasi Anda tidak dikonfigurasi untuk mencoba ulang, langkah ini tidak akan terjadi.

    2. Jika percobaan ulang pertama gagal, eksekusi akan menunggu waktu wait yang dikonfigurasi, lalu mencoba lagi.

    3. Percobaan ulang diulang hingga Cloud Deploy telah menghabiskan percobaan ulang attempts.

      Jika setiap upaya gagal, dan attempts habis, peluncuran akan gagal.

      Selama percobaan ulang, status peluncuran adalah IN_PROGRESS hingga peluncuran berhasil atau gagal setelah upaya percobaan ulang terakhir. Status fase adalah IN_PROGRESS selama percobaan ulang, tetapi FAILED setelah setiap kegagalan peluncuran.

    4. Jika semua percobaan ulang gagal (atau tidak ada yang dikonfigurasi), peluncuran baru akan dibuat untuk rollback ke rilis terbaru yang berhasil di target.

Referensi otomatisasi

Ada dua resource Cloud Deploy yang khusus untuk otomatisasi:

  • Otomatisasi

    Automation adalah resource turunan dari pipeline pengiriman, dan menyertakan informasi berikut:

    • Pointer ke target atau target yang digunakan otomatisasi
    • Aturan yang mengatur apa yang dilakukan otomatisasi dan cara melakukannya

    Konfigurasi untuk resource Otomatisasi dijelaskan dalam dokumen Tentang resource otomatisasi.

    Saat Anda menjalankan gcloud deploy apply pada file yang menyertakan konfigurasi otomatisasi (kind: Automation), Cloud Deploy akan membuat resource otomatisasi, yang mengaitkan pipeline pengiriman dan target dengan satu atau beberapa aturan otomatisasi.

  • Menjalankan otomatisasi

    AutomationRun adalah instance otomatisasi. Ini adalah pointer ke resource Otomatisasi yang sesuai, ditambah informasi tentang peluncuran yang memunculkannya, dan metadata lainnya.

    Operasi otomatis dibuat saat otomatisasi dipicu.

Pelajari resource otomatisasi lebih lanjut.

Aturan otomatisasi

Aturan otomatisasi menentukan tindakan yang dapat dilakukan di pipeline pengiriman secara otomatis, serta detail tentang cara otomatisasi dilakukan.

Pelajari lebih lanjut aturan otomatisasi.

Peran dan izin Identity and Access Management yang diperlukan

Selain izin yang Anda perlukan untuk menjalankan pipeline pengiriman Cloud Deploy, dan untuk melakukan tugas yang akan diotomatiskan (seperti mempercepat peluncuran), ada beberapa izin yang diperlukan untuk melakukan operasi tertentu pada resource Automation dan AutomationRun:

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

Selain izin ini, setiap aturan otomatisasi mungkin memerlukan izin lebih lanjut untuk melakukan operasi otomatis. Lihat Mengonfigurasi aturan otomatisasi untuk mengetahui izin spesifik yang diperlukan per aturan otomatisasi.

Lihat Peran dan izin IAM Untuk informasi selengkapnya, termasuk peran Cloud Deploy yang menyertakan izin ini.

Membuat otomatisasi

Anda dapat membuat otomatisasi, termasuk menggunakan salah satu aturan otomatisasi yang tersedia, dengan mengonfigurasi otomatisasi, lalu membuat resource otomatisasi menggunakan gcloud deploy apply

Lihat bagian berikut (Mengonfigurasi otomatisasi), dan Mengonfigurasi aturan otomatisasi.

Mengonfigurasi otomatisasi

Lihat Skema file konfigurasi untuk mengetahui detail tentang cara mengonfigurasi resource Automation.

Konfigurasi aturan otomatisasi

Selain konfigurasi otomatisasi ini, Anda menentukan aturan otomatisasi. Konfigurasi berbeda untuk setiap aturan yang tersedia.

Lihat Menggunakan aturan otomatisasi untuk mengetahui deskripsi setiap aturan yang tersedia.

Menangguhkan otomatisasi

Anda dapat menangguhkan resource yang ada tanpa menghapusnya. Hal ini dapat berguna untuk menguji otomatisasi tanpa memengaruhi pipeline penayangan. Saat Anda menangguhkan otomatisasi, otomatisasi tidak akan berjalan, tetapi log platform masih dibuat.

  1. Di konfigurasi Automation, Perbarui properti suspended menjadi true.

  2. Jalankan gcloud deploy apply terhadap file konfigurasi tersebut.

  3. Log platform masih dibuat saat otomatisasi dibuat instance-nya, meskipun ditangguhkan. Anda dapat menggunakannya untuk menguji dan men-debug otomatisasi tanpa memengaruhi pipeline pengiriman.

Langkah selanjutnya