Tempah Konsultasi Hantar Tiket

Kejuruteraan Keluaran DevOps & Pagar CI/CD: Membina Saluran Yang Berdaya Tahan

Artikel ini membincangkan amalan pagar CI/CD meliputi senario, gejala, diagnosis, arahan, kawalan risiko, pengunduran, pengesahan, dan bila perlu menghubungi OpsGlobal.

Kejuruteraan Keluaran DevOps & Pagar CI/CD: Membina Saluran Yang Berdaya Tahan
CI/CD 6min 3 paparan 2026-06-12
KubernetesSRECI/CDKejuruteraan KeluaranPengeluaran Kanari

Senario

Satu pasukan DevOps menguruskan aplikasi mikroservis dengan 50+ pengeluaran harian. Kejadian P1 kerap berlaku apabila kod melepasi pintu kualiti dan digunakan terus ke pengeluaran. Semakan kod manual terlalu lambat, dan pengunduran tidak diotomatikkan, menyebabkan MTTR tinggi.

Gejala

  • Amaran segera selepas pengeluaran dengan lonjakan kadar ralat.
  • Peringkat saluran dilangkau (contohnya ujian diabaikan).
  • Operasi pengunduran mengambil >30 minit secara manual.
  • Pembangun menggunakan SSH ke pengeluaran untuk membaiki panas, melangkau CI/CD.

Diagnosis

  1. Tiada pintu kualiti automatik: Saluran tiada ujian unit, imbasan keselamatan, dsb.
  2. Tiada pengeluaran kanari: Semua trafik bertukar serentak, risiko gangguan penuh.
  3. Pengunduran tidak piawai: Langkah manual, tiada pengesahan.
  4. Kawalan akses lemah: Pembangun boleh memintas saluran dan mengubah pengeluaran terus.

Arahan & Pelaksanaan

1. Tambah Pintu Kualiti dalam GitLab CI

stages:
  - test
  - build
  - deploy-canary
  - deploy-production

unit-test:
  stage: test
  script:
    - npm test
  only:
    - branches

security-scan:
  stage: test
  script:
    - snyk test --all-projects

deploy-canary:
  stage: deploy-canary
  script:
    - kubectl apply -f k8s/canary-deployment.yaml
  environment:
    name: production/canary
  only:
    - main

2. Laksanakan Pengeluaran Kanari dengan Flagger

# Pasang Flagger
kubectl apply -f https://raw.githubusercontent.com/fluxcd/flagger/main/artifacts/flagger/canary.yaml

# Tentukan sumber Canary
cat <<EOF | kubectl apply -f -
apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
  name: myapp
spec:
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  service:
    name: myapp
    port: 80
  analysis:
    interval: 30s
    threshold: 5
    maxWeight: 50
    stepWeight: 10
    metrics:
    - name: request-success-rate
      thresholdRange:
        min: 99
      interval: 1m
EOF

3. Skrip Pengunduran Automatik

# rollback.sh
#!/bin/bash
NAMESPACE=$1
DEPLOYMENT=$2
REVISION=${3:-previous}
kubectl rollout undo deployment/$DEPLOYMENT -n $NAMESPACE --to-revision=$REVISION

4. Kawalan Akses dengan RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: production
rules:
- apiGroups: ["apps", "extensions"]
  resources: ["deployments", "deployments/rollback"]
  verbs: []  # Tolak perubahan terus

Kawalan Risiko

  • Ujian Automatik: Wajibkan liputan ujian unit ≥80%, kadar lulus integrasi 100%.
  • Analisis Kanari: Batal pengeluaran berdasarkan kadar ralat, ambang latensi.
  • Polisi sebagai Kod: Guna OPA untuk mewajibkan semua perubahan melalui CI/CD.
  • Kelulusan Perubahan: Perlukan kelulusan pengurus Ops untuk tindakan istimewa.

Strategi Pengunduran

  1. Pengunduran Automatik: Flagger undur automatik apabila metrik kanari melebihi ambang.
  2. Pengunduran Manual: Guna skrip yang ditetapkan untuk undur ke semakan tertentu.
  3. Keserasian Pangkalan Data: Pastikan skrip migrasi boleh diterbalikkan; gunakan tampalan data jika perlu.

Pengesahan

  • Papan Pemantauan: Cipta papan pengesanan pengeluaran di Grafana yang menunjukkan kadar ralat, latensi, taburan trafik.
  • Penjajaran SLO: Takrifkan polisi pengeluaran mengikut SLO perkhidmatan; sekat pengeluaran jika SLO dilanggar.
  • Kejuruteraan Kekacauan: Uji mekanisme pengunduran dan pemulihan kegagalan secara berkala dengan eksperimen kekacauan.

Bila Perlu Hantar Tiket OpsGlobal

  • Insiden P0 (gangguan perkhidmatan penuh) dengan pengunduran automatik gagal.
  • Pagar CI/CD dipintas dan perlu pengukuhan keselamatan segera.
  • Bantuan pakar diperlukan untuk strategi kanari kompleks atau peraturan OPA.
  • Audit pematuhan yang memerlukan pengesahan pihak ketiga terhadap proses pengeluaran.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu CI/CD dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Artikel ini membincangkan amalan pagar CI/CD meliputi senario, gejala, diagnosis, arahan, kawalan risiko, pengunduran, pengesahan, dan bila perlu menghubungi OpsGlobal.

Langkah Penyelesaian

Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.

Contoh Arahan

Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.

Risiko

Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.

Pelan Rollback

Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.

Senarai Serahan

Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.

!

Perlu bantuan isu teknikal serupa?

Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.

Tiket Hubungi WhatsApp Konsultasi