Rilis Kenari dengan Actions
Terapkan pola rilis Kenari untuk meluncurkan fitur baru secara bertahap kepada sebagian pengguna sambil memantau kinerja dan stabilitas.
Rilis Kenari dengan Actions adalah pelajaran CI/CD with GitHub Actions & DevOps Pipelines gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CI/CD with GitHub Actions & DevOps Pipelines, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CI/CD with GitHub Actions & DevOps Pipelines mencakup 4 pelajaran total.
Pengantar Rilis Canary
Bayangkan Anda meluncurkan fitur atau pembaruan baru. Bagaimana jika terdapat bug yang memengaruhi semua pengguna Anda? Menakutkan, bukan?
Rilis canary membantu mengurangi risiko ini dengan meluncurkan perubahan secara bertahap kepada sebagian kecil pengguna terlebih dahulu. Ini seperti mengirim "burung kenari di tambang batu bara" untuk menguji udara sebelum orang lain masuk.
Manfaat Rilis Canary
Rilis canary menawarkan beberapa manfaat utama:
- Risiko Lebih Rendah: Membatasi dampak masalah pada kelompok pengguna yang kecil.
- Umpan Balik Dunia Nyata: Mendapatkan data produksi tentang kinerja dan stabilitas.
- Pengembalian Cepat: Jika muncul masalah, kembalikan hanya kelompok canary atau seluruh layanan dengan cepat.
- Paparan Terkendali: Tingkatkan paparan pengguna secara bertahap seiring meningkatnya keyakinan.
Canary vs. Biru/Hijau
Anda mungkin mengingat penerapan Biru/Hijau, yang mengalihkan lalu lintas secara instan antara dua lingkungan identik.
Rilis canary berbeda. Alih-alih pengalihan instan, rilis ini melibatkan pergeseran lalu lintas bertahap. Versi baru berjalan berdampingan dengan versi lama, dan pada awalnya hanya sebagian kecil pengguna yang melihat versi baru. Dengan demikian, pemantauan terperinci dapat dilakukan sebelum peluncuran penuh.
Cara Kerja Rilis Canary
Berikut alur dasar rilis canary:
- Terapkan Versi Baru: Versi baru aplikasi diterapkan ke sejumlah kecil server atau instans, berdampingan dengan versi stabil yang sudah ada.
- Alihkan Sebagian Kecil Lalu Lintas: Penyeimbang beban atau jaring layanan dikonfigurasi untuk mengirim sebagian kecil (misalnya, 5-10%) lalu lintas pengguna ke versi baru.
- Pantau: Kinerja, tingkat error, dan umpan balik pengguna dipantau secara ketat untuk kelompok canary.
- Promosikan atau Kembalikan: Jika semuanya terlihat baik, lalu lintas ditingkatkan secara bertahap atau versi baru dipromosikan hingga 100%. Jika terjadi masalah, canary dikembalikan dan lalu lintas dialihkan kembali ke versi stabil.
Mengatur Orkestrasi dengan GitHub Actions
GitHub Actions dapat mengatur seluruh proses rilis canary. GitHub Actions tidak mengelola lalu lintas secara langsung (itu adalah tugas infrastruktur Anda), tetapi memicu langkah-langkah berikut:
- Membangun dan menguji aplikasi Anda.
- Menerapkan versi baru ke lingkungan canary.
- Memulai pengalihan lalu lintas melalui panggilan API ke penyeimbang beban atau mesh layanan Anda.
- Menunggu hasil pemantauan atau persetujuan manual.
- Mempromosikan canary atau memicu pemulihan.
Gambaran Umum Alur Kerja Canary
Alur kerja GitHub Actions yang umum untuk rilis canary dapat terlihat seperti berikut:
name: Canary Deployment
on: push
jobs:
build:
# ... build and test steps ...
deploy-canary:
needs: build
steps:
- name: Deploy to Canary Group
# ... call script/tool to deploy and shift 10% traffic ...
monitor-canary:
needs: deploy-canary
# ... wait for monitoring/approval ...
promote-or-rollback:
needs: monitor-canary
# ... conditionally promote to 100% or rollback ...Setiap langkah akan berinteraksi dengan alat penerapan Anda.
Menyimulasikan Logika Peluncuran Canary
Meskipun GitHub Actions mengatur orkestrasi, pengambilan keputusan dan perintah penerapan yang sebenarnya sering kali berlangsung di dalam skrip. Berikut contoh Python yang menyimulasikan logika peluncuran canary. Bayangkan sebuah Action menjalankan skrip ini:
def deploy_version(version, traffic_percent):
print(f"Deploying {version} to {traffic_percent}% traffic.")
if traffic_percent == 100:
print("Full rollout complete!")
elif traffic_percent > 0:
print("Canary deployed. Monitoring for stability...")
else:
print("Version removed (rollback).")
if __name__ == "__main__":
print("--- Starting Canary Workflow ---")
new_app_version = "v2.1-canary"
stable_app_version = "v2.0"
# Step 1: Deploy new version to 10% traffic
deploy_version(new_app_version, 10)
# Step 2: Simulate monitoring (e.g., waiting for metrics)
print("Monitoring canary performance...")
import random
canary_successful = random.choice([True, True, True, False]) # 75% chance of success
if canary_successful:
print("Canary looks good! Proceeding to full rollout.")
# Step 3a: Promote new version to 100%
deploy_version(new_app_version, 100)
else:
print("Canary issues detected! Rolling back.")
# Step 3b: Rollback to stable version
deploy_version(stable_app_version, 100)
print("--- Canary Workflow Finished ---")Memantau Canary Anda
Pemantauan yang efektif sangat penting. Alur kerja GitHub Actions Anda dapat terintegrasi dengan sistem pemantauan melalui beberapa cara:
- Panggilan API: Meminta metrik utama dari alat pemantauan (misalnya, Datadog dan Prometheus).
- Pemeriksaan Kesehatan: Memeriksa titik akhir kesehatan aplikasi secara berkala.
- Gerbang Manual: Menjeda alur kerja untuk peninjauan dan persetujuan manusia.
- Penundaan Berbasis Waktu: Menunggu selama periode tertentu agar metrik menjadi stabil.
Alur kerja kemudian menggunakan sinyal ini untuk memutuskan apakah akan mempromosikan atau memulihkan.
Promosi/Pemulihan Bersyarat
Setelah tahap pemantauan, GitHub Actions menggunakan logika bersyarat untuk menentukan langkah berikutnya. Anda dapat menggunakan pernyataan if dalam definisi pekerjaan atau langkah Anda.
promote-or-rollback:
needs: monitor-canary
if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
steps:
- name: Promote Full Rollout
# ... command to shift 100% traffic to new version ...
rollback:
needs: monitor-canary
if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
steps:
- name: Rollback to Stable
# ... command to shift 100% traffic to old version ...Dengan demikian, sistem dapat merespons kinerja canary secara otomatis.
Pemeriksaan Rilis Canary
Anda telah mempelajari manfaat dan mekanisme rilis canary. Mari uji pemahaman Anda.
Rangkuman: Rilis Canary dengan Actions
Dalam pelajaran ini, Anda mempelajari Rilis Canary, strategi penerapan yang efektif untuk meluncurkan versi perangkat lunak baru secara bertahap kepada sebagian pengguna.
- Rilis canary mengurangi risiko dan memberikan umpan balik dari kondisi nyata.
- GitHub Actions mengatur orkestrasi langkah pembangunan, penerapan ke canary, pemantauan, serta promosi/pemulihan bersyarat.
- Pemantauan yang efektif dan logika bersyarat merupakan kunci keberhasilan alur penerapan canary.
Dengan menggunakan canary, Anda dapat menerapkan perangkat lunak dengan keyakinan dan kendali yang lebih besar!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Rilis Kenari dengan Actions” gratis?
Ya — teks lengkap “Rilis Kenari dengan Actions” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CI/CD with GitHub Actions & DevOps Pipelines, upgrade ke CoddyKit PRO. Kursus CI/CD with GitHub Actions & DevOps Pipelines mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Rilis Kenari dengan Actions”?
Terapkan pola rilis Kenari untuk meluncurkan fitur baru secara bertahap kepada sebagian pengguna sambil memantau kinerja dan stabilitas. Kamu berlatih CI/CD with GitHub Actions & DevOps Pipelines dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai CI/CD with GitHub Actions & DevOps Pipelines?
Tidak diperlukan pengalaman sebelumnya. CI/CD with GitHub Actions & DevOps Pipelines di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Rilis Kenari dengan Actions” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran CI/CD with GitHub Actions & DevOps Pipelines ini?
Ya. Setiap pelajaran CI/CD with GitHub Actions & DevOps Pipelines menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penerapan Biru/Hijau
- Rilis Kenari dengan Actions
- Pengembalian Versi dan Pemulihan Bencana
- Feature Flag dan Peluncuran Bertahap