Yapılandırmaları Dağıtma
1) Neden
Yapılandırma koddan daha sık değişir ve geliri (PSP yönlendirme, limitler, katsayılar, ön özellikler) ve uyumluluğu (KYC/AML, RG) doğrudan etkiler. Katı toleranslar ve gözlemlenebilirlik ile gıdalara konfigürasyon sağlamak için tekrarlanabilir, doğrulanabilir ve geri dönüşümlü bir sürece ihtiyacımız var.
2) İlkeler
1. Veri olarak Yapılandırma: yapılandırır - "manuel tıklamalar'değil, sürüm verileri (YAML/JSON).
2. Şema-ilk: herhangi bir giriş şemaya karşı doğrulanır (JSON Schema/Protobuf).
3. Kod olarak politikalar: kapılar, toleranslar, SoD - politika deposunda.
4. GitOps: gerçeğin tek kaynağı Git'tir; Kümeler uzlaştırıcı tarafından eşleştirilir.
5. Aşamalı teslimat: kanarya haddeleme, segmente göre (GEO/kiracı/banka/sağlayıcı).
6. Sıfır kesinti süresi: atomik anahtarlar, çift arabelleğe alma, format uyumluluğu.
7. Tasarım ile gözlenebilirlik: denetim, uygulama metrikleri, sürüklenme dedektörü.
8. Güvenlik: Minimum ayrıcalıklar, ayrı ayrı sırlar, riskli değişiklikler için SoD/4-eyes.
3) Yapılandırma modeli
Statik: nadiren değişir, serbest bırakma gerektirir (bağlantı noktaları, çekirdek zaman aşımları).
Dinamik: Yeniden başlatılmadan kullanılır (PSP yönlendirme, özellikler, sınırlar).
Sırlar: anahtarlar/belirteçler; Ayrı bir döngü (KMS/Gizli Yönetici).
Artifaktlar: kural dosyaları/eşlemeler (BIN, banka, GEO, PSP, bonus limitleri).
Adresleme anahtarları: 'kiracı', 'bölge', 'çevre', 'hizmet', 'sürüm', 'segment' (psp/bank_group/device).
4) Formatlar ve şemalar
Bir şema örneği (JSON Schema, payments-routing):json
{
"$schema": "https://json-schema. org/draft/2020-12/schema",
"title": "pspRouting",
"type": "object",
"properties": {
"version": {"type": "string"},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": ["geo","binGroup","primary","fallback"],
"properties": {
"geo": {"type":"string"},
"binGroup":{"type":"string"},
"primary":{"type":"string"},
"fallback":{"type":"array","items":{"type":"string"}},
"limits":{"type":"object","properties":{"perMinute":{"type":"integer"}}}
}
}
}
},
"required": ["version","rules"]
}
5) Yaşam döngüsü (GitOps)
1. Yazma: PR to config repository: data + ticket/change link.
2. Lint/Doğrulama: CI: şemalar, referanslar, semantik (çatışma kuralları), standda kuru çalıştırma.
3. Politika Kapıları: SoD/4-eyes, risk sınıfı, pencereleri dondur, SLO durumuna uygunluk.
4. Evreleme Uygula: entegrasyon testi çalıştırma/sentetikler, SLI kontrolü.
5. Aşamalı Teslimat: gıda kanaryaları (%1-5) - %25 - bölge/kiracı - %100.
6. İzleme sonrası: 30-60 dk metrikler/uyarılar; sonucu düzeltmek.
7. Promosyon/Geri Alma: yayın işaretleri, Git revert/" önceki sürüm" aracılığıyla hızlı geri alma
6) Yuvarlanma stratejileri
Bölümlere göre kanarya: 'Kiracı = A, geo = TR, banka = BIN _ XXXX'.
Bölgeye göre: EU - LATAM - APAC, saatlik zirveler dikkate alınarak.
İşlevsellik gereği: Korkuluklarla bir bayrağın (özellik bayrağı) dahil edilmesi (TTL, kapsama sınırları).
Yapılandırma kaynağı için Mavi/Yeşil: okuyucuları yeni bir anlık görüntüye geçirme.
7) Dinamik yükleme ve uyumluluk
Sıcak yeniden başlatma (gözlemciler/konsüller/OTel Collector boru hattı yeniden yükleme).
Çift biçim (v1 + v2): Her ikisi de üreticiler tarafından okunur, yenisine yazılır.
Tutarlılık: "Kimin hangi yapılandırmada olduğunu" görmek için API yanıtlarındaki/metriklerdeki sürüm.
8) Güvenlik, Sırlar, SoD
Sırlar ayrı ayrı: KMS/Secret Manager'da depolama, alan düzeyinde şifreleme, ABAC üzerinden erişim.
SoD/4-eyes: ödeme yönlendirme/bonus limitleri/PII-ihracat değişikliği - sadece çift onay yoluyla.
JIT hakları: operasyonlar için geçici belirteçler, tam denetim.
Güvenlik kontrolleri: Linter, config prod'daki PII/test anahtarlarını yasaklar.
9) Kullanım öncesi doğrulamalar
Şemalar (JSON Şeması/Protobuf), linters, kardinalite kontrolleri.
Alan anlambilimi: döngüler/kopyalar/'kara delikler "yok, mevcut bağımlılıklarla uyumluluk.
Gölge trafik/simülasyonlar: okuma-yazma olarak gerçek bir akışta yeni yönlendirme/kuralları "sürücü".
SLO kapısı: kırmızı SLI - promosyon yasağı.
10) Gözlemlenebilirlik ve denetim
Dağıtım metrikleri: uygulama süresi, başarı, kapsama oranı, ayrıştırma hataları, geri dönüşler.
Olaylar: kim/ne/ne/ne zaman/neden, diff (sırların gizlenmesi dahil).
Drift dedektörü: "Git'te ne var've" çalışma zamanında ne var "karşılaştırması; tutarsızlık durumunda uyarı.
Instances-Config okumalarının 'trace _ id'sine referans verin.
11) Tipik yapılandırmaların kataloğu (iGaming)
Ödemeler yönlendirme: GEO/BIN/yöntemi ile PSP; Retray sınırları; 3DS özellikleri.
KYC/AML: sağlayıcılar, zaman aşımları, TTL, geri dönüş/manuel doğrulama kuralları.
Risk ve RG: hız limitleri, gün/ay sınırları, coğrafi istisnalar.
Oyunlar/Çekirdek: önbellek katsayıları, havuz boyutları, phicheflags (yeniden oynatma geçmişi, yeni modlar).
Ops/Gözlemlenebilirlik: uyarı eşikleri, örnekleme kuralları, tutma sınıfları, sentetikler.
Durum/İletişim: mesaj şablonları, yerelleştirmeler, güncelleme takvimi.
12) Örnek Yapılandırma Paketi (Manifest)
yaml apiVersion: cfg. platform/v1 kind: ConfigRelease metadata:
id: payments-routing-2025-11-01 change: "RTE-421: reroute TR BIN_4571 → PSP2"
spec:
scope:
tenants: [brandA, brandB]
regions: [EU]
segments:
geo: [TR]
strategy:
steps:
- name: canary coverage: "5%"
duration: "20m"
- name: ramp coverage: "25%"
duration: "30m"
- name: region-full"
coverage: "100%"
gates:
require:
- policy: "slo-green"
- approval: ["Payments Lead","Compliance"]
- freeze: "not-in-effect"
rollback:
to: "payments-routing-2025-10-29"
autoIf:
- metric: "auth_success_rate"
condition: "drop>10% for 10m"
13) Geri dönüşler ve güvenliği değiştirme
Git aracılığıyla ters: 'revert'/' previousion teşvik'.
Atomik anahtar: okuyucular eski anlık görüntüye geçer.
Otomatik geri alma kriterleri: SLI/KRI bozulması, ayrıştırma/doğrulayıcı hatalarında artış.
İletişim: olay-bot otomatik geri alma sırasında durumu yayınlar.
14) Çok kiracılı ve jeo-ikamet
Dosya/klasör ve anahtar düzeyi ad alanları ('tenant/region/env').
Okuma politikaları: hizmetler yalnızca kapsamlarını görür.
Yapılandırmaların coğrafi kopyaları (EU/LATAM/APAC) ve SLA'larla çoğaltma gecikmesi.
Farklı yargı bölgeleri için farklı dağıtım pencereleri (uyumluluk/tatiller).
15) Performans ve maliyet (FinOps)
Anlık görüntü önbelleği: yerel/dağıtılmış; TTL/ETag/If-None-Match.
Yapılandırmaların boyutu: yapıların hacmi ve derinliği üzerindeki sınırlar; modülerleşme.
Erişim kartı: okumaların en iyi tüketicileri; Çekme frekansının optimizasyonu.
Hataların maliyeti: "pahalı" geri tepme/ek kanarya sayacı.
16) Entegrasyonlar
Uyarı/SLO: kapı promosyonu, otomatik geri tepme.
Release-gates: Yapılandırmaların kullanıma sunulması tamamlanmazsa kod yayınlarını engelleme.
Incident bot:'/config promote ','/config rollback' komutları, dağıtımlara ve panolara bağlantılar.
İş Akışı Motoru: Yüksek riskli değişiklikler için insan görevi; tırmanma zamanlayıcıları.
17) KPI/KRI işlevleri
Kurşun Zamanı yapılandırması: PR ™ prod.
Değişim Hatası Oranı (CFR): Geri alma ile yapılan değişikliklerin yüzdesi.
MTTR yapılandırma olayı.
Sürüklenme oranı - Git↔runtime tutarsızlık oranı.
SLO-gates geçiş oranı: manuel istisnalar olmadan kapıları geçen değişikliklerin oranı.
Değişiklik başına maliyet: CPU/IO, kanaryalar, olaylar.
18) Uygulama Yol Haritası (6-10 hafta)
Ned. 1-2: yapılandırmalar, diyagramlar, astarlar kataloğu; Git-repo; Temel CI (doğrulama/diff).
Ned. 3-4: GitOps-uzlaştırıcı, kuru çalıştırma/evreleme, durum panoları; TTL ile ficheflags.
Ned. 5-6: policy-as-code (SoD/windows/freeze/SLO-gates), kanarya ruloları, otomatik geri alma.
Ned. 7-8: sürüklenme dedektörü, KMS üzerinden sırlar, çok kiracılı ve coğrafi kopyalar, entegrasyon olay botu.
Ned. 9-10: yük/kaos yuvarlanma testleri, FinOps raporu, takım eğitimi ve şablonlar.
19) Eser desenleri
PR Şablonu: hedef, risk sınıfı, bölge (kiracı/bölge), haddeleme planı, geri alma planı, kuru çalışma sonuçları.
Poliçe Paketi: SLO kapıları, SoD/4-eyes, dondurulmuş takvim, boyut/kardinalite sınırları.
Runbook: "Kanaryaların mevcut versiyonu/diff/durumu nasıl okunur", "promosyonu manuel olarak nasıl durdurulur".
Config Kataloğu: sahip, şema, okuyucular, güncelleme sıklığı, uyumluluk notları.
20) Antipatterns
Git/audit olmadan "admin panelinde" manuel düzenlemeler.
Serbest bırakma artifakı koduyla karıştırılmış yapılandırmalar, çalışır durumda değiştirilemez.
Şemaların yokluğu/düşüş doğrulamaları - ayrıştırma sırasında.
Kanaryalar olmadan küresel bir kerelik yuvarlanma.
Yapılandırmada ortak sırlar; Git'teki sırlar.
Ficheflags'da komisyon/TTL/korkuluk yok.
Sürüklenme detektörü yok.
SLO kapılarının "çağrı üzerine've kayıt olmadan kaldırılması.
Toplam
Konfigürasyonların konuşlandırılması yönetilen bir boru hattıdır: şemaları olan veriler - politikalar ve kapılar - GitOps ve aşamalı teslimat - sıcak yükleme ve geri döndürülebilirlik - gözlemlenebilirlik ve denetim - güvenlik ve maliyet. Bu çerçeve, SLO, gelir ve uyumluluğu korurken, iGaming platformunun davranışını hızlı ve güvenli bir şekilde değiştirmenize olanak tanır.