Tempah Konsultasi Hantar Tiket

Membina Pengawal CI/CD untuk Kejuruteraan Pelepasan yang Boleh Dipercayai

Ketahui cara melaksanakan pengawal automatik untuk mengelakkan penggunaan yang buruk, mengurangkan masa henti, dan mengekalkan SLO dalam persekitaran Kubernetes.

Membina Pengawal CI/CD untuk Kejuruteraan Pelepasan yang Boleh Dipercayai
CI/CD 6min 9 paparan 2026-06-19
CI/CDKejuruteraan PelepasanPengawalKubernetesSRE

Senario

Sebuah syarikat SaaS yang berkembang pesat menggunakan puluhan kali sehari. Pasukan mendapati bahawa walaupun saluran paip CI sentiasa lulus hijau, insiden pengeluaran melonjak selepas setiap penggunaan. Amaran muncul dalam beberapa minit: pengguna mengalami tamat masa dan ralat. Penggulungan semula adalah perlahan dan manual, menyebabkan downtime yang panjang.

Gejala

  • Amaran P1 sejurus selepas penggunaan.
  • Bajet ralat terbakar dengan cepat.
  • Penggulungan semula mengambil masa 30+ minit.
  • Pasukan Dev dan SRE sentiasa menyalahkan antara satu sama lain.

Diagnosis

Punca utama adalah ketiadaan pengawal CI/CD: tiada gating ujian automatik, analisis canari, kawalan tetingkap penggunaan, atau penggulungan semula automatik berdasarkan pemeriksaan kesihatan. Saluran paip CI hanya menjalankan ujian unit — tiada ujian integrasi, ujian beban, atau imbasan keselamatan. Saluran paip CD menggunakan terus ke pengeluaran penuh tanpa pelancaran beransur-ansur.

Perintah & Konfigurasi

Di bawah adalah contoh persediaan pengawal menggunakan GitHub Actions dan ArgoCD:

# .github/workflows/deploy.yaml
name: Deploy with Guardrails
on:
  push:
    branches: [main]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run unit tests
        run: make test
      - name: Run integration tests
        run: make integration-test
      - name: Security scan
        run: trivy image --severity HIGH,CRITICAL --exit-code 1 myapp:${{ github.sha }}
  deploy-canary:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Deploy canary to 10%
        run: kubectl set image deployment/myapp-canary myapp=myapp:${{ github.sha }} -n production
      - name: Wait for health check
        run: sleep 60 && kubectl rollout status deployment/myapp-canary -n production --timeout=5m
  promote:
    needs: deploy-canary
    runs-on: ubuntu-latest
    steps:
      - name: Promote to full
        run: kubectl set image deployment/myapp myapp=myapp:${{ github.sha }} -n production
      - name: Verify deployment
        run: kubectl rollout status deployment/myapp -n production --timeout=10m

Kawalan Risiko

  • Bendera Ciri: Kawal pendedahan dengan LaunchDarkly atau bendera ConfigMap.
  • Pelancaran Beransur-ansur: Gunakan penggulungan semula automatik ArgoCD apabila pemeriksaan kesihatan gagal.
  • Tetingkap Penggunaan: Semak masa terhadap tetingkap yang diluluskan dalam CI; tolak jika di luar.
  • Gating Bajet Ralat: Sekat penggunaan jika penggunaan bajet ralat melebihi 70%.

Penggulungan Semula

# Gulung semula dengan kubectl
kubectl rollout undo deployment/myapp -n production

# Gulung semula dengan Git revert
revert HEAD

# Gulung semula dengan ArgoCD
argocd app rollback myapp --prune

Pengesahan

  • Papan pemuka mengesan: kekerapan penggunaan, kadar kegagalan, bajet ralat, bilangan penggulungan semula.
  • Pemeriksaan sintetik: laksanakan laluan pengguna transaksi kritikal setiap 5 minit.
  • Peraturan amaran: jika ralat 5xx meningkat >1% dalam 10 minit selepas penggunaan, picu penggulungan semula.

Bila Hantar Tiket OpsGlobal

  • Apabila anda perlu mereka bentuk saluran paip pengawal lengkap tetapi tidak mempunyai kepakaran dalaman.
  • Apabila pengawal sedia ada gagal dan menyebabkan insiden berulang.
  • Apabila anda memerlukan strategi penghantaran progresif kompleks yang diselaraskan merentas berbilang kluster Kubernetes.

Senario Penggunaan

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

Latar Belakang Masalah

Ketahui cara melaksanakan pengawal automatik untuk mengelakkan penggunaan yang buruk, mengurangkan masa henti, dan mengekalkan SLO dalam persekitaran Kubernetes.

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