Evreleme: gönderme ve senkronize etme
TL; DR
Evreleme, anonimleştirilmiş veriler ve simülatörler üzerinde sözleşmelerin, geçişlerin, yapılandırmaların, webhookların ve ödeme zincirlerinin kontrol edildiği maksimum üretim paritesine sahip bir üretim öncesi ortamdır. Başarı, değişmez dağıtım (mavi/yeşil), PII'siz veri paritesi, şema kaydı, gölge trafik, kanarya planı, özellik bayrakları, açık kapılar ve otomatik geri alma ile sağlanır.
1) Rol ve paritenin satışla sahnelenmesi
Amaç: Sürümün para ve oyuncular için güvenli olduğunu doğrulamak: veritabanı şemaları, yanıp söner, yapılandırmalar, limitler, web kitapları, yönlendirme, gözlemlenebilirlik.
Eşlik: aynı görüntüler, aynı topoloji (giriş/ağ geçidi, kafes, kuyruklar, önbellekler, veritabanı motorları, çekirdek/sürücü sürümleri), aynı politika (auth/rate/circuit).
Farklılıklar: Veriler kişiliksizleştirilir, dış tedarikçilerle etkileşimler - sandbox/simülatörler, DNS/etki alanları ve sırlar aracılığıyla - ayrı.
2) Topoloji ve erişim
Etki alanları: 'evreleme. api. örnek. com ',' sahneleme. ws. örnek. com '.
İzolasyon: Bireysel VPC/küme, bağımsız sırlar (KMS/Vault), mTLS içinde.
Erişim: SSO + RBAC (roller: 'release-manager', 'qa', 'dev', 'partner-view'), geçici belirteçler, denetim girdileri.
3) Serbest bırakma treni
1. Yapı (etiket, SBOM, artifact imzaları).
2. Testler (birim/entegrasyon/sözleşme, güvenlik hatları).
3. Paket/Tarama (SAST/DAST, vuln-gates).
4. Evreleme'ye dağıtın (değişmez, mavi/yeşil veya p95/p99 kontrolü ile yuvarlanma).
5. Evreleme Kapıları (см. § 10).
6. Canary Prod (1 - 5 - 25 - 50 - %100).
7. SLO ihlali/hatalarında otomatik geri alma.
4) Yapılandırma senkronizasyonu
GitOps: Git'teki tüm yapılandırmalar ve politikacılar; 'values'ile prod/staging için tek çizelgeler/manifestolar. sahneleme. Yaml '.
Eşlik kontrolü: Evrelemede "manuel düzenlemeler" yasaktır. Sürüklenme otomasyon ile tespit edilir (policy-diff, kube-diff).
Sırlar: bireysel anahtarlar ve belirteçler; Prod ne olursa olsun rotasyon.
5) Şemalar: API/DB/Olaylar
Birleştirilmiş kayıt defteri: OpenAPI, Protobuf tanımlayıcıları, GraphQL SDL, olaylar. Sözlük.
CI'da Breaking-Checks: Yıkıcı değişiklikleri yasaklamak.
DB göçleri: tanıtımdan önce evrelemeye 'kadar'; 'aşağı'/geri dönüşümlü olasılığı; Anlık görüntü zaman tahmini ile kuru çalışma.
Olay uyumluluğu: Geçişler sırasında "çift giriş" (eski + yeni format).
6) Veri ve senkronizasyon
Kaynak: prod'dan düzenli dökümü - anonimleştirme/tokenization/maskeleme - evreleme için ithalat.
PII/PAN/KYC belgeleri: silinmiş/sentetiklerle değiştirilmiş; Toplamlar ve frekanslar - gizlilik için bozulmuş (gürültü).
Senkron pencereler: plan/kroons (örneğin, her gece), süre ve hata izleme.
Tanımlayıcılar: Yoğunluğu ve kardinaliteyi koruyun (yük testi gerçekçiliği için).
7) Dış entegrasyonlar (PSP/KYC/sağlayıcılar)
Sandbox hesapları veya HMAC webhooks, retras, idempotency ile simülatörler.
Bayraktaki çatal: tedarikçinin veya simülatörümüzün gerçek sanal alanı (yapılandırmada geçiş).
Webhooks: imzalar, zaman penceresi, DLQ/tekrar konsolu evreleme sırasında etkinleştirilir.
Ödeme rayları: Gerçek ödeme/evreleme auth kod düzeyinde (sert blok) yasaktır.
8) Gölge trafiği ve tekrarları
Gölgelendirme: Üretimin bir alt kümesini evrelemeye (yan etki olmadan) kopyalayın, yanıtları/gecikmeyi karşılaştırın.
Trafik yansıtma: ≥ 1-5 % GET/status. Gölge mutasyonlara izin verilmez.
Sentetik yeniden oynatma: regresyon için tarihsel izlerin (maskeli) çalıştırılması.
9) Özellik bayrakları, donma ve uyumluluk
Bayraklar yeniden konuşlandırılmadan davranışı kontrol eder; Bayrak yapılandırmaları sürümlüdür.
Büyük bir olay/yük dönemi için serbest bırakma donması; evreleme "ayna" prod sabitlenir.
Geri/ileri uyumluluk: Önce yeni formatı okuyun, sonra yazın.
10) Gates: promosyondan önce kontrol ettiğimiz şey
SLO: p95/p99 gecikme, hata oranı, koridor doygunlukları.
Sözleşme: API diff - без kırma; Webhooks imzalı, idempotency yaklaşık.
DB göçü: bütçede zaman, "uzun oynayan" masalarda kilit yok, plan analizi.
Ödemeler/KYC: Pozitif/negatif vakalar geçti, webhook'ları geri çek> 2xx <3 c p95.
Oran/kotalar: doğru 429/Retry-After.
Güvenlik: eşiğin altındaki güvenlik açıkları; sırlar/izinler geçerlidir.
Dokümanlar/SDK: Kayıt defterinde yayınlanan OpenAPI/SDL/Proto; Postacı/SDK güncellendi.
Runbooks: Playbooks ve geri alma planı test edildi.
11) Gözlemlenebilirlik ve uyarılar
Метрики: RPS, p50/p95/p99, 4xx/5xx, açık devreler, kuyruk len, önbellek hit, webhook teslim.
İzler: uçtan uca korelasyon 'trace _ id'; prod ile karşılaştırma (gecikme farkı).
Günlükler: maskeleme, örnekleme, "sessiz" hatalar (WARN sivri uçları).
Evreleme panoları: ayrı, ancak yapıda aynı; Yeşil/kırmızı SLO çubukları.
12) Dağıtım stratejisi
Evrelemede Mavi/Yeşil (tercih edilen): hızlı anahtar, kolay geri alma.
Küçük partiler ve sağlık kontrolleri ile haddeleme.
Kanarya içinde evreleme: A/B profilleme için 'staging-a've' staging-b 'arasındaki yüzde trafik.
Göç DB: sıfır kesinti desenleri (genişlet, göç et, sözleşme), "çift yazma", blok arama.
13) Güvenlik ve uyumluluk
mTLS, WAF, DDoS profilleri aktiftir.
Yönetici uç noktalarında RBAC/ABAC; Entegratörleri dahili panellere devre dışı bırakmak.
Günlüklerin şartları prod'dan daha kısadır; Sürüm denetim raporları kaydedilir.
Anahtarların/sertlerin kontrol edilmesi: bireysel JWKS/serts, rotasyonlar evreleme için test edilir.
14) Olay oyun kitapları (sahneleme)
Geçişten sonra SLO hatası:'yeşil'e geri alma, şema geri alma (mümkünse), bozulmayı etkinleştirme ("pahalı" agregaları kesme).
Splash 5xx: açık devre kesiciden kırılgan yukarı akışa, geri tepmeyi BFF'ye yükseltin, önbelleği etkinleştirin.
Evreleme sırasında PII sızıntısı: çöplüklerin derhal temizlenmesi, sırların iptal edilmesi, erişimlerin denetlenmesi, maskeleme politikasının düzeltilmesi.
Webhook'ların yasaklanması: dead-letter'a geçici transfer, düzeltmeden sonra manuel tekrar oynatma.
15) Kontrol listeleri
15. 1 Prod başına promosyon
- Tüm kapılar (§ 10) geçti; rapor eklendi.
- Kanarya planı ve ayak kriterleri tanımlanmıştır.
- Özellik bayrakları hazırlanır (açık/kapalı/geçişler).
- Dokümantasyon/SDK/Portal güncellendi.
- Paydaşlar bilgilendirildi, destek pencereleri kabul edildi.
15. 2 Geri alma
- Mavi/Yeşil: önceki yuvaya trafik, yapılandırmalar geri alındı.
- Şemalar geri döndürülebilir veya bayrak güvenli bir duruma düşürülür.
- Ölüm sonrası desen ve eser koleksiyonu.
16) Mini snippet'ler
GitOps promosyonu (sözde)
yaml stages:
- deploy-staging
- verify-gates
- promote-prod deploy-staging:
script: kubectl apply -f k8s/overlays/staging verify-gates:
script:./scripts/check_slo. sh &&./scripts/check_contracts. sh promote-prod:
when: on_success script: kubectl apply -f k8s/overlays/prod
Genişlet> Migrate> Contract (DDL)
sql
-- expand
ALTER TABLE payouts ADD COLUMN note TEXT NULL;
-- migrate (background job copies data)
-- contract
ALTER TABLE payouts DROP COLUMN comment;
Gölge başlığı
X-Shadow-Trace: 1
Evreleme başına mutasyon idempotensi
pseudo if store. has(idempotency_key) return store. get(idempotency_key)
res = do()
store. set(idempotency_key,res,ttl=72h)
return res
17) Antipatterns
Evreleme "neredeyse üretim gibidir", ancak farklı sınırlar/filtreler ile - yanlış pozitif sonuçlar.
Sahnelemede gerçek PAN/rıhtımlar.
Manuel "sıcak" yapılandırma düzenlemeleri.
Zamansız ve kilitsiz geçişler.
Gölge trafiği/tekrarı yok - böcekler yalnızca prod'da açılır.
Geri alma planı olmadan terfi.
18) Evreleme için SLO (yer işaretleri)
Çalışma süresi: ≥ 99. %5 (entegrasyon vitrini düşmemelidir).
Gıdaya gecikme katkı maddesi: ≤ + %10-20.
Webhooks p95: Retrays ile 3 c ila 2xx ≤.
Hata bütçesi: 5xx ağ geçidi ≤ 0. Serbest bırakma penceresi başına %1.
Gölge kontrollerinin payı: Okumaların ≥ %1'i.
Özet
Sahneleme "kum'değil, gerçek bir üretim provasıdır: aynı yığın ve politikacılar, anonim veriler, demiryolu simülatörleri, prod trafiğinin gölgeleri, katı kapılar ve anında geri dönüş. Her şeyi GitOps + kayıt defteri şemaları + değişmez depla ile sarın, özellik bayraklarını ve kanarya planını saklayın; sürümleriniz tahmin edilebilir hale gelecek ve olaylar nadir ve yönetilebilir hale gelecektir.