Tempah Konsultasi Hantar Tiket

Kejuruteraan Pelepasan DevOps dan Pengawal CI/CD: Panduan Tahap Pengeluaran

Post ini membincangkan pelaksanaan pengawal CI/CD dalam Kubernetes, meliputi senario, diagnosis, arahan, kawalan risiko, pengembalian, dan pengesahan untuk pelepasan selamat.

Kejuruteraan Pelepasan DevOps dan Pengawal CI/CD: Panduan Tahap Pengeluaran
CI/CD 6min 47 paparan 2026-07-13
KubernetesSRECI/CDKejuruteraan PelepasanPengawal

Senario

Satu pasukan menggunakan Jenkins dan GitLab CI untuk menggunakan mikroservis pada Kubernetes. Mereka sering mengalami kegagalan pelepasan dan masa henti. Mereka mahu menguatkuasakan pengawal CI/CD untuk meningkatkan keselamatan.

Gejala

  • Kadar ralat meningkat serta-merta selepas penggunaan produksi
  • Pengembalian lambat dan manual
  • Pembangun memintas ujian dan menggabung kod secara langsung

Diagnosis

  1. Ketiadaan get ujian automatik (ujian unit, integrasi, imbasan keselamatan)
  2. Tiada strategi penghantaran progresif (misalnya, canary)
  3. Proses pengembalian sepenuhnya manual
  4. Penggera pemantauan tidak disepadukan dengan saluran paip

Arahan & Konfigurasi Utama

Contoh saluran paip Jenkins dengan peringkat pengawal:

pipeline {
    agent any
    stages {
        stage('Lint') {
            steps { sh 'golangci-lint run' }
        }
        stage('Ujian Unit') {
            steps { sh 'go test ./... -cover' }
        }
        stage('Bina Imej') {
            steps { sh 'docker build -t myapp:$BUILD_NUMBER .' }
        }
        stage('Imbasan Keselamatan') {
            steps { sh 'trivy image myapp:$BUILD_NUMBER' }
        }
        stage('Gunakan ke Pensandian') {
            steps { sh 'kubectl set image deployment/myapp-staging myapp=myapp:$BUILD_NUMBER -n staging' }
        }
        stage('Ujian Asap') {
            steps { sh 'newman run smoke-tests.json' }
        }
        stage('Penggunaan Canary') {
            steps {
                sh 'kubectl set image deployment/myapp-canary myapp=myapp:$BUILD_NUMBER -n production'
                input 'Teruskan dengan pelepasan penuh?'
            }
        }
        stage('Pelepasan Penuh') {
            steps { sh 'kubectl set image deployment/myapp myapp=myapp:$BUILD_NUMBER -n production' }
        }
    }
}

Kawalan Risiko

  • Gunakan Flag Ciri: togol fungsi melalui pengurusan konfigurasi
  • Get automatik: sekat gabung jika liputan kod < 80%
  • Penghantaran progresif: canary dengan 5% trafik selama 15 minit
  • Sandaran pra-penggunaan: kubectl get deployment myapp -o yaml > backup.yaml

Pengembalian

Skrip pengembalian automatik:

kubectl rollout undo deployment/myapp -n production
kubectl rollout status deployment/myapp -n production

Dengan Helm:

helm rollback myapp 1

Pengesahan

  1. Periksa status pod: kubectl get pods -n production -l app=myapp
  2. Pantau metrik: Pertanyaan Prometheus kadar ralat rate(http_requests_total{status=~"5.."}[5m])
  3. Sahkan versi pengembalian: kubectl rollout history deployment/myapp -n production

Bila Hantar Tiket OpsGlobal

  • Perlu strategi penggunaan progresif lanjutan (biru/hijau)
  • Kegagalan saluran paip tanpa punca jelas
  • Pengawal automatik tidak berfungsi seperti yang diharapkan
  • Keperluan pematuhan menuntut log audit dan konfigurasi get

Senario Penggunaan

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

Latar Belakang Masalah

Post ini membincangkan pelaksanaan pengawal CI/CD dalam Kubernetes, meliputi senario, diagnosis, arahan, kawalan risiko, pengembalian, dan pengesahan untuk pelepasan selamat.

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