Sürekli dağıtım
1) CD nedir ve CI/CD'den nasıl farklıdır?
Sürekli Dağıtım (CD), manuel "serbest bırakma trenleri olmadan, her doğrulanmış değişikliği otomatik olarak prod'a yayma uygulamasıdır. "CD, zinciri tamamladığı için CI'dan (otomatik montajlar ve taahhütlerdeki testler) farklıdır: Kod - artefakt - doğrulama - üretim. Düzenlenmiş endüstrilerde, CD'ler genellikle aşamalı teslimat ile birleştirilir.
CD hedefleri:- Pazara Çıkış Süresini azaltın ve maliyetleri değiştirin.
- Büyük sürümlerin riskini azaltın: küçük partiler - nedeni bulmak ve geri almak daha kolay.
- Kalite disiplini getirmek için:'her taahhüt potansiyel olarak satılıktır ".
2) Temel ilkeler
Küçük artışlar. Kısa fiche dalları, hızlı yorumlar, agresif merjing.
Meclis kararlılığı. Tekrarlanabilir yapı ortamları, kilit dosyaları, hermetik yapılar.
Vardiya-sol-kalite. Linters, statik analiz, entegrasyondan önce birim/sözleşme testleri.
Üretim benzeri ortamlar. Özdeş yapılandırmalar, kasa yoluyla sırlar, veriler - sentetik/kişisel olmayan.
Tüm yolculuğu otomatikleştirin. Trafik yönlendirme ve geri alma işleminden.
Varsayılan gözlenebilirlik. Metrikler, günlükler, izler, uyarılar - Bitti Tanımı'nın bir parçası olarak.
Tasarım gereği güvenlik. SAST/DAST, SCA, imzalı eserler, politika doğrulama.
3) CD boru hattının referans mimarisi
1. Tetik - VCS'deki olay (itme/birleştirme) "prod-uygun'olarak işaretlenir.
2. Yapı: yapı artefaktı (görüntü, paket), SBOM, imza (Sigstore/Cosign) oluşturun.
3. Test Hızlı: tiftik/birim/sözleşme; Hızlı geri bildirim (<5-10 dk).
4. Test Deep (paralel): entegrasyon, E2E, yükleme "profil üzerinde", aşamada kaos örnekleri.
5. Güvenlik Kapısı: SAST/DAST/SCA, sırları kontrol etme, politikaları kontrol etme (OPA/Conftest/Kyverno).
6. Uygunluk Kapısı: SoD/4-eyes gerekirse, gereksinimlerin izlenebilirliği, kontrol listeleri.
7. Tanıtın: eserin ortamlar aracılığıyla bir ve aynı yapı olarak tanıtılması (dev ^ stage ^ prod).
8. Dağıtım Stratejisi: Mavi-yeşil/kanarya/progresif + özellik bayrakları.
9. Dağıtım Sonrası Doğrulama: Otomatik sağlık, SLO/SLA, uyarılar, bozulma sırasında otomatik geri alma.
10. Denetim ve Kanıt: eserler, günlükler, doğrulama protokolleri - değişmeyen depolamada.
4) Serbest bırakma stratejileri
Mavi-Yeşil: Iki üretim standları (Mavi = akım, Yeşil = yeni), atomik yönlendirme anahtarlama. Artı - anında geri alma. Dezavantajı ikili altyapıdır.
Kanarya: Otomatik SLO-kapıları ile toplu trafik başlangıcı (%1 - %5 - %25 - %100).
Aşamalı Teslimat: Hedef kohortlar (bölge, sağlayıcı, VIP segmenti), hasar yarıçapı sınırı.
Özellik Bayrakları: tedarik kodu "kapalı", kullanıcılar/kohortlar tarafından etkinleştirilir. Zorunlu: "bayrak yaşam döngüsü" politikası.
5) Test ve kalite
Bağımsız mikro hizmet sürümleri için sözleşme testleri ve tüketici odaklı sözleşmeler.
Profilleri gerçek desenlere göre yükleyin (RPS, p95/p99, açık/kapalı modeller).
Veritabanı geçişlerinin testleri: doğrudan/geri dönüşümlü, iki versiyonun uyumluluğu (genişlet - sözleşme).
Kaos/Esneklik örnekleri: bağımlılıkları devre dışı bırakma, ağ gecikmeleri, kaynak sınırları.
Kullanıcıya yakın noktalardan yayın sonrası doğrulama (duman + sentetik).
6) CD'de güvenlik ve uyumluluk
Eser imzası, kaynağı, SBOM. Kaynağı takip ediyoruz, "tedarik zinciri" risklerini hariç tutuyoruz.
Kod Olarak İlke: Yalnızca güvenilir kayıt defterindeki görüntülere izin veriyoruz, tarama geçiyor.
Sırlar: kısa ömürlü belirteçler, dönen anahtarlar, KMS; Gita'da sırları yasaklamak.
Görevlerin ayrılması (SoD): geliştirme ≠ üretim erişimi; Boru hattındaki tüm işlemler.
Denetim izi: değiştirilemez sürüm günlükleri, kim/ne/ne zaman; Yasal gerekliliklere göre n yıl depolama.
7) Değişim yönetimi ve risk kontrolü
Değişim Türleri: Standart (tam otomatik), normal (otomatik + onay), acil durum (hızlandırılmış pencere + ölüm sonrası).
CAB minimalizm: Değişen riskler ve altyapı "kırma" güncellemeleri için CAB, geri kalanı - otomatik kalite kapıları aracılığıyla.
Risk Matrisi: etki × olasılık - strateji seçimi (kanarya daha derin, bayraklar, ek izleme).
Runbooks & Playbooks: Her sürüm ve geri alma türü için açık talimatlar.
8) Gözlemlenebilirlik, SLO ve otomatik geri alma
Altın sinyaller: gecikme, hatalar, doygunluk, trafik; İş metrikleri (dönüşüm, para yatırma, ödeme başarısı).
Korkuluklar: eğer p95> eşiği, hata rate↑, iş metrika↓ - otomatik durdurma/geri alma.
Release Dashboard'lar: widget'lar: versiya ^ metriki ^ flagi ^ kanareyechnyye trafik payı.
Uyarılar: gürültü azaltma seviyeleri, çağrı üzerine rotasyonlar, olay yönetimi ile iletişim.
9) CD Metrikleri
DORA metrikleri: tükenme oranı, değişiklikler için teslim süresi, MTTR, başarısız sürümlerin payı.
Kohortlarda değişim-başarısızlık oranı (sağlayıcıya, bölgeye, cihaza göre).
Kapı geçiş süresi: "darboğazlar" nerede (güvenlik taraması, entegrasyon testleri).
Serbest Bırakma Maliyeti: dakika penceresi başına maliyet, stratejilerin altyapı işaretlemesi (mavi-yeşil vs kanarya).
10) Geri alma kalıpları ve uyumluluk
Otomatik geri alma: yönlendirme (trafik anahtarı) ve/veya sürüm oluşturma (K8s geri alma) düzeyinde.
Veritabanı geçişleri: Expand-migrate-contract stratejisi, özellik bayrakları erişilemeyen alanları gizler.
Idempotency & Exactly-once-like: kuyruklar/ödemeler için - idempotency anahtarları, veri tekilleştirme.
Geri basınç ve zarif bozulma: bozulursa, işlevsel olmayan özellikleri devre dışı bırakın.
11) Ortamların pratik modeli
GitOps yaklaşımı: hedef durum git'te saklanır, denetleyici manifestoları uygular.
Ortamlar: 'dev' (hızlı ve kirli), 'sahne' (prod benzeri, kaos örnekleri), 'prod-A/B' (mavi-yeşil) veya kanarya havuzlu 'prod'.
Veri izolasyonu: Veri olarak yapılandırır, görüntünün dışındaki sırlar, bireysel hesaplar/sınırlar.
12) Süreçler ve roller
RACI: Mimar (Politikalar), Platform Ekibi (Boru Hattı, Kümeler), Ürün Ekipleri (Testler/Bayraklar), Güvenlik (Politikalar/Taramalar), SRE (SLO/Güvenilirlik).
ChatOps: PR botlarından yayınlar, durumların görünürlüğü, "/promote ", "/rollback ".
SOP: yayın kontrol listeleri, yayın sonrası inceleme, yaşlanan bayraklar kontrolü.
13) Yüksek düzeyde düzenlenmiş alanlar için özellikler (örn. iGaming/fintech)
İzlenebilirlik - Trebovaniye Denetlenebilirliğinin- tiket> PR> bild> artefakt> sreda> log.
Coğrafi sürüm: Yerel ödeme yapılandırması/LCC ile ülkeye/yargı yetkisine göre.
Anti-dolandırıcılık/risk motorları: kanarya trafik havuzları, yanlış pozitif/negatif izleme.
KYC/AML/responsible game: Kullanıcı etkisinin zorunlu olarak izlenmesiyle bayraklar aracılığıyla özellikleri serbest bırakın.
14) Sık anti-desenler
Aşamalar arasındaki manuel adımlar ('el ile getirilen eser ").
Sahibi ve ömrü olmayan "gri bayraklar".
Sözleşmeler yerine yaygın bir "yağ" entegrasyon testi.
Geri dönüşümlü veritabanı geçişi yok.
Konuşlandıktan sonra güvenlik taraması, daha önce değil.
15) Mini CD hazırlık kontrol listesi
- Yapı deterministiktir; Eser imzalı; Bir SBOM var.
- E2E için sözleşme testleri ve düzeltmeleri.
- Güvenlik/Uyumluluk kapıları kod olarak; sırlar - kasa yoluyla.
- Gözlemlenebilirlik: günlükler/metrikler/parçalar, yayın panoları, SLO kapıları.
- Serbest bırakma stratejisi: kanarya/mavi-yeşil + otomatik geri alma.
- DB geçiş prosedürleri (genişletme/sözleşme).
- Create ile özellik bayrakları> use> delete policy.
- RACI/Runbooks/ChatOps entegrasyonu.
16) Örnek akış (senaryo)
1. 'Main' tetik satırında birleştir.
2. Konteyner montajı, imza, SBOM.
3. Lint/unit/contracts - geçti.
4. SAST/SCA/gizli tarama -'yeşil ".
5. Otopromo aşamasında: E2E + kaos + profil yükü.
6. Kanarya prod başına %1, hata/gecikme/iş metrikleri kontrolü.
7. Yeşil kapılarla %25/% 50/% 100'e yükselme.
8. "Rollout-guard" bayrağını otomatik olarak kapatın, denetim eserlerini kaydedin.
9. Yayın sonrası inceleme, geçici bayraklar kaldırılıyor.
17) Alt satır
CD bir "dağıtım düğmesi'değil, küçük, güvenli ve gözlemlenebilir değişiklikler kültürüdür. Doğru politikalar ve otomasyon ile CD, riski azaltır, değer dağıtımını hızlandırır ve bir olaydan ziyade bir rutin haline getirir. Yüksek yüklü ve ayarlanabilir sistemler için, başarının anahtarı sıkı kalite kapıları, aşamalı kullanıma sunma, özellik bayrakları, gözlemlenebilirlik ve her adımın tekrarlanabilirliğidir.