Boru hatlarını ve sürümleri hazırlama
1) Neden evreleme-boru hattına ihtiyacınız var
Evreleme boru hattı, PR'den üretime, kalite ve güvenlik kontrolleri ile standart bir eser yoludur ". "Hedefler:- Montaj ve serbest bırakma tekrarlanabilirliği;
- Hızlı ve öngörülebilir geri bildirim;
- Risk minimizasyonu (progresif haddeleme, phicheflags, geri dönüşler);
- uyum ve değişim kontrolü.
2) Referans kaynağı akışı (üst düzey)
1. PR - otomatik kontroller (tiftik, ünite, SAST, lisanslar).
2. Derleme - deterministik görüntü/paket, imza ve SBOM.
3. Ephemeral üzerinde test edin - PR başına önizleme ortamı.
- Görüntü birikimi;
- Kontrat-, entegrasyon-, e2e-testleri;
- DAST/IAST, regresyonlar, yükleme dumanı;
- Gerekirse manuel UAT/QA.
- 5. Release Candidate (RC) - donma penceresi - Prod (kanarya/mavi-yeşil).
- 6. Dağıtım sonrası kontroller ve otomatik olarak SLO/hata bütçesine gönderme.
- 7. Runbook/Changelog - kapanış sürümü ve retrospektif.
3) Standartlaştırılmış YAML boru hattı şablonu (deklanşör hızı)
yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]
verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog
4) Kapılar ve hazırlık kriterleri (Kalite Kapıları)
Kod ve güvenlik: bağlantı noktaları, kapsama alanı, SAST/SCA, bağımlılık politikası, kritik/yüksek değil.
Sözleşmeler: şemaların uyumluluğu (API/etkinlikler), Pact/Buf kontrolleri.
Testler: birim/entegrasyon/e2e p-eşiği, kararlılık (pul oranı).
Yük dumanı: p95/p99 bütçe dahilinde, bozulma yok.
DAST/IAST: Kritik bulgu yok, hassas yollar için kalem test senaryoları.
Gözlem: panolar/uyarılar "kod olarak" güncellendi, çalışma kitapları eklendi.
CAB/UAT: Serbest bırakma pencerelerinde onay (düzenleyici/işletme tarafından istenirse).
5) Serbest bırakma stratejileri
Kanarya - trafik payında kademeli bir artış (%5 - %25 - %50 - %100), SLO ve anomaliler için otomatik ileri/geri alma.
Mavi-Yeşil - paralel medya; Anında geçiş, basit geri dönüş.
Özellik Bayrakları - yeniden dağıtım olmadan özelliklerin mantıksal olarak dahil edilmesi; "Karanlık fırlatma've A/B yeteneği.
Gölge/Trafik Yansıtma - pasif trafik, kullanıcıları etkilemeden yeni sürüme geçer.
Halka Dağıtımları - Bölgeye/Kiracıya Göre Dalgalar.
6) Geri dönüşler ve serbest bırakma güvenlik politikası
Tetikleyiciler tarafından otomatik geri alma: hata oranı artışı, eşiğin üzerinde p95/TTFB, 5xx/zaman aşımı artışı, DLQ artışı.
Manual rollback: command'/rollback <service> <sha> 'In chatbot, one button in release console.
Pencereleri dondurun: Kritik etkinliklere (turnuvalar/zirve maçları) serbest bırakmak yasaktır.
Changelog & Release Notes: PR'den üretim, SemVer etiketleri, bileşenler, geçişler.
7) Veritabanı geçişleri ve uyumluluğu
Genişlet> Migrate> Contract:1. Uyumlu alanlar/dizinler ekleme
2. Uygulama dağıtımı (her iki şemaya da okur/yazar);
3. arka plan işleri ile veri taşıma;
4. eski silin.
Şemalar sürümlü, idempotent göçler, evreleme kuru-run.
Yıkıcı SQL'i koruyun: bayrak/onay, otomatik yedekleme ve plan kontrolü gerektirir.
8) Ficheflags ve aşamalı aktivasyon
Ayrı operasyon bayrakları (güvenli çalışma için) ve ürün bayrakları.
Kitleye göre dahil etme: yüzde, coğrafi, kiracı, rol.
Bayrak metrikleri: dönüşüm etkisi, gecikme, hatalar.
Sorun olması durumunda - bayrağın evrilmesi geri dönüşten daha hızlıdır.
9) Serbest bırakmanın bir parçası olarak gözlemlenebilirlik
İzler: DB/kuyruklara ağ geçidinden uçtan uca 'trace _ id'; Eski/yeni versiyonların karşılaştırılması.
Metrikler: p50/p95/p99, hata oranı, RPS, doygunluk, DLQ, retray, Time-to-Wallet/Business KPI.
Günlükler: yapılandırılmış, PII maskeleme, 'request _ id' korelasyonu.
Uyarılar: SLO bütçesi, çağrı üzerine acil sayfalar, otomatik evrişim serbest bırakın.
10) Tedarik zinciri güvenliği
Her yapı için SBOM, depolama ve serbest bırakma etiketine bağlama.
Görüntü imzaları (cosign), bir kümede doğrulama (politika kabulü).
SLSA tasdik: kanıtlanabilir artefakt orijini.
Kod Olarak Politika (OPA/Conftest): Altyapı PR'leri için varsayılan olarak reddet.
Sırlar: Yalnızca KMS, kısa ömürlü belirteçler, boru hattı rotasyonları.
11) Değişim kontrolü ve süreçleri
RFC - CRQ - CAB: Önceden belgelenmiş davranış/sözleşme değişikliği konusunda hemfikiriz.
Sürüm Takvimi: Ürüne/bölgeye/ekibe göre görünür pencereler.
Runbook'lar: her bileşen için - geri alma/geri alma/tanılama prosedürleri.
Postmortem/Retro: Önemli sürümlerden sonra - analiz ve eylem.
12) Test profillerini hazırlama
API/Events-Blocks uyumsuz değişiklikler.
Integration/e2e: uçtan uca senaryolar "para yatırma", "KYC", "para çekme".
Yük dumanı: temsili zirveler; Kaynak limitlerini takip ediyoruz.
Kaos senaryoları: sağlayıcı bağlantısı kesilmesi, gecikmede artış, ağ flappingleri.
Sentetik izleme: bir programda "deneme" işlemleri.
13) Serbest bırakma hedeflerinin Makefile örneği (snippet)
makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog
14) Roller ve sorumluluklar
Dev/Team: kod kalitesi, testler, geçişler, runbooks.
QA: UAT/regresyon senaryoları, kapılar üzerinde kalite kontrolü.
SRE/Platform: boru hattı güvenilirliği, gözlemlenebilirlik, politikalar.
Release Manager: takvim, pencereler, CAB, nihai çözüm.
Güvenlik: SAST/DAST/SCA, tedarik zinciri, gizli politika.
15) Serbest bırakma olgunluk modeli
1. Temel - manuel kontroller, nadir sürümler, geri dönüşler zordur.
2. Gelişmiş - standart CI/CD, evreleme kontur, kanarya/mavi-yeşil, sık bültenleri.
3. Uzman - kiracılar/bölgeler tarafından aşamalı teslimat, önce bayraklar, kod olarak politika, SLO otomatik yükleme, tam izlenebilirlik ve SLSA özellikleri.
16) Uygulama Yol Haritası
M0-M1 (MVP): boru hattı şablonu, inşa + işareti + SBOM, evreleme-dağıtım, temel testler ve kapılar.
M2-M3: kanarya/mavi-yeşil, PR başına önizleme, sözleşme testleri, DAST, sentetik kontroller.
M4-M6: feature flags platform, shadow traffic, policy-as-code, auto-rollback, release calendar + CAB-workflow.
M6 +: bölgeye göre ring dağıtımları, SLSA sertifikası ve katı kabul, runbook'ların tam otomasyonu.
17) Yayın Öncesi Kontrol Listesi
- Resim imzalandı, SBOM yüklendi ve serbest bırakıldı.
- Sözleşmeler uyumlu, testler yeşil, e2e evreleme geçti.
- Geçişler kontrol edildi (kuru çalıştırma), yedekleme hazır, geri alma planı açıklandı.
- Gösterge panoları/uyarılar güncellendi, SLO kapıları aktif.
- Runbook ve Changelog yayınlandı, serbest bırakma pencereleri kabul edildi.
- Özellik bayrakları aşamalı etkinleştirme için yapılandırılmıştır.
- Dondurma kısıtlamaları karşılanır, çağrı hazır.
Kısa sonuç
İyi tasarlanmış bir aşamalı boru hattı, yayınları yönetilebilir bir rutine dönüştürür: Tek tip şablonlar, açık kalite kapıları, güvenli bir tedarik zinciri, aşamalı yuvarlanma ve gözlemlenebilirlik, kalite ve iş metrikleri üzerindeki kontrolü korurken, riski azaltır ve üretimde değişiklik yapma süresini azaltır.