Peta dunia

 

EN: Read in English

Dunia C3: Lancar & Deploy · Cabaran bos

Jumaat malang

Anda akan belajar: hantar canary, kesan lonjakan ralat, dan rollback sebelum ramai pengguna perasan.

Teks BM belum disemak oleh penutur asli.

Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026

Masalahnya

Jumaat, 4:55 petang. Versi 2.3.0 kedai dah ditag. Ketua anda dalam kapal terbang, dan anda bertugas. Misi bos: hantar dengan selamat, atau undur dengan pantas. Macam mana anda hantar?

Pilih satu jawapan.

Cuba

Bilik 1: tag itu mulakan workflow canary. Ia hantar 5% pengguna ke versi 2.3.0, kemudian rasa /health. Run.

Pilih satu event. Tekan Run dan tengok tali sawat.

Tag v2.3.0 deploy canary kepada 5% pengguna, kemudian smoke test semak /health.

Apa yang berlaku di GitHub

Fail workflow .github/workflows/canary.yml

name: Canary
on:
push:
tags: ['v*']
permissions:
contents: read
jobs:
canary:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v7
- run: npm ci
- run: npm run deploy:canary
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- run: curl --fail --silent https://shop.example.com/health

Tali sawat

Push tag v2.3.0 · v2.3.0

Cuba

Bilik 2: canary dah live pada 5%. Perhati graf. Naik hanya bila garis versi 2 tenang. Rollback sebelum 150 pengguna kena bug.

Hantar sedikit pengguna ke v2. Tengok graf. Roll back jika ralat melonjak.

Pengguna sekarang: 100% di v1 (lama), 0% di v2 (baharu).

Kadar ralat setiap minit
0%6%11%amaranminit →

v1 (lama) v2 (baharu)

Minit 0

Pengguna yang kena ralat v2: 0 (had 150)

Nombor, minit demi minit

Belum ada trafik.

Semak

Smoke test lulus, tapi pengguna kena ralat. Kenapa?

Pilih satu jawapan.

Cuba

Bilik 3: kekalkan undur itu. Workflow rollback, yang dijalankan secara manual, jadi merah. Baca ralat sebenar. Baiki baris kuning.

Tali sawat merah. Betulkan baris kuning, kemudian run semula.

Apa yang berlaku di GitHub

Fail workflow .github/workflows/rollback.yml

name: Rollback
on:
workflow_dispatch:
permissions:
contents: read
jobs:
rollback:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- run: npm ci
- run: npx wrangler rollback --message "Bad Friday"
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- run: curl --fail --silent https://shop.example.com/health

Kuning: baris 8–8. Anda boleh ubah baris ini.

Pilih satu pembetulan

Tali sawat

Run secara manual · main

Semak

Tulis pelan untuk lain kali. Susun apa yang pipeline buat.

Langkah pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.

  • Tag hantar canary kepada 5% pengguna
  • Smoke test rasa /health dan checkout
  • Perhati kadar ralat selama 15 minit
  • Satu makluman dibuka, dengan pautan ke larian
  • Ralat melonjak: job rollback berjalan

Anda berjaya!

Kini anda boleh hantar pada hari Jumaat dan undur dalam beberapa minit.

Nak tahu lebih (pilihan)

Di Cloudflare, canary ialah gradual deployment. Arahan ini buatnya secara manual. Wrangler cetak id setiap versi bila anda muat naik.

bash
npx wrangler versions upload
npx wrangler versions deploy NEW_ID@5% OLD_ID@95%
npx wrangler rollback --message "Bad Friday"
Muat naik versi, beri 5% trafik, kemudian rollback ke versi sebelumnya.

Latihan sebenar (pilihan): berlatih pada Worker ujian percuma, bukan milik pasukan anda.