Yapılandırma Sürüm Denetimi
1) Neden sürüm yapılandırmaları
Yapılandırma yürütülebilir bir ilkedir: yönlendirmeyi, sınırları, özellik bayraklarını, erişimleri, veri şemalarını tanımlar. Sürüm kontrolü değişiklikleri tekrarlanabilir, gözlemlenebilir ve geri dönüşümlü hale getirir: MTTR'yi ve değişim hatası oranını azaltır, "satıştaki büyüyü" ortadan kaldırır, güvenlik ve uyumluluk için denetimler sağlar.
2) Yapılandırma taksonomisi
Altyapı (IaC): kümeler, ağlar, LB, DB, kuyruklar.
Servis: uygulama parametreleri, kaynaklar, limitler, zaman aşımları, geri ödemeler.
Ürün/iş mantığı: tarifeler, AB deneyleri, içerik kuralları.
Data/DataOps: sözleşme şemaları, SLA tazeliği, dönüşüm.
Güvenlik: Erişim politikaları, roller, anahtarlar/sertifikalar (sırların kendileri repo dışındadır).
Gözlemlenebilirlik: SLI/SLO, uyarılar, panolar.
Kural: Sistemin davranışını etkileyen her şey yapılandırmadır ve sürüm oluşturma altında yaşamalıdır.
3) Sürüm oluşturma ilkeleri
1. GitOps: gerçeğin tek kaynağı depodur; PR ve otomatik boru hatları ile değişir.
2. Bildirimsel: hedef durumun açıklaması, adım komut dosyaları değil.
3. Artifacts değişmezliği: config - açıkça somutlaştırılmış anlık görüntü.
4. Şemalar ve doğrulama: JSON/YAML-schema, katı tip dökümü, gerekli alanlar.
5. Kod gibi ortamlar: 'env' - klasörler/kaplamalar (dev/stage/prod), farklılıklar minimum ve açıktır.
6. Idempotence ve geri dönüşler: Herhangi bir yapılandırma sürümünü geri alın/geri alın.
7. Denetim ve izlenebilirlik: yazar, sebep, bilet/RFC, imzaları değiştir.
4) Sürüm stratejileri
Yapılandırma paketleri için SemVer ('MAJOR. MINÖR. PATCH '):- MAJOR - uyumsuz şema/politika değişiklikleri.
- MINOR - yeni alanlar/kurallar, geriye dönük uyumluluk.
- PATCH - şemaları değiştirmeden değerleri düzeltir.
- Etiket sürümleri ve sürüm notları: ne değişti, nasıl geri alınır, kontrol noktaları.
- Dosyaları sabitleme/kilitleme: bağımlılık sürümlerini düzeltin (modüller, grafikler).
- Matrix sürümleri: X uygulamasının artifaktı, Y yapılandırmasıyla (hizmet kataloğundaki matris) uyumludur.
5) Depo organizasyonu
config-repo/
policies/ # общие политики (RBAC, SLO, алерты)
services/
checkout/
schema/ # JSON/YAML схемы конфигов base/ # дефолтные значения overlays/
dev/
stage/
prod/
data-contracts/ # схемы данных, SLA свежести releases/ # теги, changelog, артефакты валидации tools/ # линтеры, генераторы, тесты
Şube: gövde tabanlı (ana) + kısa özellikli şubeler. Birleştirme - sadece zorunlu CI ile PR yoluyla.
6) Doğrulama ve test etme
Şema: Her değişiklik şema doğrulamasını (gerekli, enum, aralıklar) geçer.
Statik astarlar: biçim, anahtarlar, kopyalar, yasak alanlar.
Uyumluluk testleri: config + servis/grafik sürümü sandbox'ta yukarı çıkar.
Test çalışır: kuru çalışma uygulamaları,'ne-if "diff hedef durumu.
Kod olarak politikalar: kabul kuralları (Rego/CEL) - kim neyi değiştirebilir.
7) Gevşeme ve geri alma konfigürasyonları
Aşamalı teslimat: SLO-gardrails ile kanarya %1 - %5 - %25.
Dağıtım kapısı: Aktif SEV-1 yok, uyarılar yeşil, imzalar geçerli, geri alma hazır.
Geri alma: 'vX etiketini geri al. Y.Z 'veya önceki anlık görüntüye geçmek; Geri alma komutları çalışma kitabında belgelenir.
Sürüm ek açıklamaları: Yapılandırma sürümü, olaylarla hızlı bir şekilde ilişkilendirmek için metrik/günlüklerde yayınlanır.
8) Dinamik ve uzaktan yapılandırma
Uzaktan yapılandırma/özellik bayrakları: parametreleri yeniden başlatmadan değiştirin; Tüm bayraklar GitOps'un altındadır.
Kenarlıklar: hangi parametrelerin dinamik olarak değişmesine izin verilir (beyaz listeler listesi).
Önbellek ve tutarlılık: TTL, sürümler, atom seti değiştirme (iki fazlı yayınlama).
Güvenli korkuluklar: çalışma zamanı değişiklikleri için sınırlar ve aralıklar, SLO'dan ayrılırken otomatik geri alma.
9) Sırlar ve hassas veriler
Bir repoda asla sır saklama. Yapılandırmalarda - yalnızca bağlantılar/yer tutucular.
Gerekirse yapılandırma dosyalarının şifrelenmesi: gizli/anahtar yöneticisi ile entegrasyon.
Rotasyon ve JIT: Erişimler işlem süresi boyunca verilir; Eylemin izi değişmez.
Alan maskeleme: Doğrulama, PII/sırların yapılandırmaya girmesini yasaklar.
10) Çevre yönetimi
Base + kaplamaları: dev/stage/prod arasındaki farklar minimal ve şeffaftır.
Eserler üzerinde tanıtım: sahneyi geçen aynı anlık görüntü prod'da teşvik edilir.
Zaman pencereleri: yapılandırmalardaki değişiklikler görev değişikliği sırasında gerçekleşmez; Risk yüksek - RFC ve bakım penceresi için.
11) Drift algılama ve eleme
Denetleyici, hedef durumu gerçek durumla karşılaştırır ve farkı bildirir.
Drift uyarıları: Sayfa sadece kritik tutarsızlıklar için; Diğerleri bilet.
Otomatik iyileştirme: çözünürlükte - hedef duruma dönüş.
Denetim kılavuzu düzenlemeleri: herhangi bir "kubectl edit/ssh" - işlem olayı ve CAPA.
12) Yapılandırma kataloğu ve sahipliği
Hizmet kataloğu: sahibi, SLO, ilgili politikalar, şemalar, sürümler, uyumluluk.
RACI: kim teklif ediyor, kim inceliyor, kim onaylıyor; Yüksek risk için CAB.
Şeffaflık: Her girişin bir sürüm geçmişi ve PR/bilet/AAR bağlantıları vardır.
13) Olgunluk metrikleri
Kapsam: GitOps için hizmetlerin/politikaların yüzdesi (hedef ≥ %95).
Kurşun zamanı yapılandırma değişiklikleri: PR'den prod'a medyan.
Değişim hatası oranı: Geri alma/olay ile yapılandırma sürümlerinin oranı.
Sürüklenme oranı: tutarsızlıkların sayısı/hafta ve eleme zamanı.
Geri alma süresi: önceki sürüme medyan kurtarma.
Denetim bütünlüğü: Tam kanıtlarla değişikliklerin oranı (doğrulayıcılar, kuru çalıştırma, incelemeler).
14) Kontrol listeleri
Yapılandırmayı değiştirmeden önce
- Bir bilet/RFC ve bir değişim sahibi var.
- Şemalar ve astarlar doğrulandı.
- Runbook'ta bir geri alma planı ve komutları var.
- Gate: testler yeşil, imzalar geçerli, aktif SEV-1 yok.
- Yüksek risk için, bir bakım penceresi atanır.
Gevşeme sırasında
- Kanarya ve SLO-gardrailler aktiftir.
- Yayın açıklamaları yayınlanmıştır.
- Kanala yankı mesajları var; Uyarı gürültüsü MW kuralları tarafından bastırıldı.
Daha sonra
- Gözlem penceresi geçti, SLO yeşil.
- Toplamlar ve kanıtlar (grafiklerden önce/sonra, kuru işlem raporları) bilete eklenir.
- Gerektiğinde güncellenmiş şemalar/belgeler.
15) Mini şablonlar
15. 1 Yapılandırma diyagramı (YAML-şema, fragman)
yaml type: object required: [service, timeouts, retries]
properties:
service: { type: string, pattern: "^[a-z0-9-]+$" }
timeouts:
type: object properties:
connect_ms: { type: integer, minimum: 50, maximum: 5000 }
request_ms: { type: integer, minimum: 100, maximum: 20000 }
retries:
type: object properties:
attempts: { type: integer, minimum: 0, maximum: 10 }
backoff_ms: { type: integer, minimum: 0, maximum: 5000 }
15. 2 Temel yapılandırma + kaplama prod
yaml services/checkout/base/config.yaml service: checkout timeouts: { connect_ms: 200, request_ms: 1500 }
retries: { attempts: 2, backoff_ms: 200 }
limits: { rps: 500 }
features:
degrade_search: false psp_a_weight: 80 psp_b_weight: 20
yaml services/checkout/overlays/prod/config.yaml limits: { rps: 1200 }
features:
psp_a_weight: 70 psp_b_weight: 30
15. 3 Kabul politikası (fikir)
yaml allow_change_when:
tests: passed schema_validation: passed active_incidents: none_of [SEV-0, SEV-1]
rollback_plan: present signed_by: ["owner:team-checkout","platform-sre"]
15. 4 Yapılandırma serbest bırakma kartı
Release: checkout-config v2.3.1
Scope: prod EU
Changes: psp_b_weight 20→30, request_ms 1500→1300
Risk: Medium (маршрутизация платежей)
Canary: 1%→5%→25% (30/30/30 мин), guardrails: success_ratio, p95
Rollback: tag v2.3.0
16) Anti-desenler
Prod geçmiş GitOps düzenlemeleri ("hızlı bükülmüş").
Yapılandırma deposundaki Sırlar/PII.
Diyagram eksikliği ve statik kontroller.
Ortamların güçlü ayrışması (base≠prod).
"Canlı" özelliği, sürümleri ve geçmişi olmayan bayrakları içerir.
Sunuculardaki sürüklenme ve manuel düzenlemeleri göz ardı etme.
Serbest bırakma notları ve geri alma planı olmayan etiketler.
17) Uygulama Yol Haritası (4-6 hafta)
1. Ned. 1: yapılandırmaların envanteri; Ayrı kataloglar, en iyi 10 hizmet için şemalar.
2. Ned. 2: CI'da linters/validation ve dry-run içerir; Yeşil çekler olmadan birleşmeyi yasaklamak.
3. Ned. 3: GitOps rulo + kanaryalar; Telemetrideki sürüm ek açıklamaları.
4. Ned. 4 - Kod olarak ilke ve geri alma kalıplarını girin. sürüklenmeye karşı uyarır.
5. Ned. 5-6: hizmetlerin %90'ını kapsar; Env farklılıklarını bindirmelere indirgeyin; Vade metrikleri ve yapılandırma değişikliklerinin haftalık incelemesini ekleyin.
18) Alt satır
Yapılandırma sürüm kontrolü bir sistemdir, sadece Git değil. Şemalar ve doğrulama, GitOps ve erişim politikaları, kanaryalar ve geri dönüşler, sürüklenme algılama ve tam denetim, yapılandırmayı yönetilen bir eser haline getirir. Sonuç, hızlı ve güvenli değişiklikler, SLO öngörülebilirliği ve her sürümde ekip güvenidir.