Operasyonlar ve Yönetim Operasyonel Altyapı Ölçeklendirme
Operasyonel altyapı ölçeklemesi
1) Neden ve ne "ölçeklendirme'olarak kabul edilir
Ölçeklendirme, platformun iş hacmini (RPS/TPS, bağlantılar, IOPS, iş hacmi) ve veri hacmini SLO'yu kaybetmeden ve kontrollü bir maliyetle artırma sistemidir. IGaming/fintech için bu doğrudan para ile ilgilidir: para yatırma/bahis dönüştürme, canlı oyunlar ve yerleşimler.
Hedefler:- SLO'ları X kat yük artışı ve mevsimsel zirvelerde tutun.
- Öngörülebilir ölçekleme süresi sağlayın (saatler değil dakikalar).
- Tasarruf Ekonomisi: maliyet/RPS, maliyet/işlem, maliyet/1k olayları.
2) Ölçeklenebilir platform ilkeleri
1. Yatay-birinci: küçük, vatansız hizmetlere bölünme; Durum - veri kümelerinde.
2. Geri basınç ve kuyruklar: yumuşatma patlamaları, "fırtınalara" karşı koruma.
3. Tüm katmanlarda önbelleğe alma: istemci/kenar/hizmet/veritabanı.
4. Idempotence ve tekrarlanabilirlik: güvenli geri çekilmeler, çıkış kutusu, dedup.
5. Kısıtlı bağımlılıklar: zaman aşımları, kesiciler, bölme izolasyonu, hız sınırları.
6. Kapasite sinyallerine göre gözlemlenebilirlik: boşluk, p95/p99, gecikme, bağlantılar, kotalar.
7. Koruma raylarıyla otomatik ölçekleme: HPA/VPA/Cluster Autoscaler + durdurma koşulları.
8. Tasarım olarak çok bölgeli: bağımsız patlama bölgeleri, yerel veriler, kararlı fylovers.
3) Kapasite planlaması: 'ne kadar ihtiyacınız olduğunu hesaplamak "
Model girişleri: hedef tepe TPS, trafik profili (saatlik), "kritik yollar", önbellek isabet oranları, ortalama yükler, SLO'lar ve sağlayıcı sınırları.
Hızlı değerlendirmeler (temel kural):- RPS _ CPU/bölmeler: 'bölmeler = RPS p99_time/effective _ CPU _ in _ pod' (%30-50'lik bir marjla).
- Kuyruklar: 'minimum _ speed _ of _ consumers ≥ peak _ speed _ of _ producers 1. 2`.
- DB bağlantıları: 'max _ conns = active _ service _ pools medium _ pool _ size 1. 3`.
- Önbellek: boyut = "N dakika içinde sıcak çalışma seti" + %20-30 marj.
- Çıkış/CDN: peak çıkış = peak requests ortalama yanıt boyutu (sıkıştırmayı düşünün).
Headroom: Zirvede %20-40 hedef (katman olarak). %15'in altında - "kapasite yükseltme" tetikleyicisi.
4) Katmanlar ve ölçekleme desenleri
4. 1 Kenar/CDN/WAF
Kenar önbelleğe alma (TTL + SWR), coğrafi denge, sıkıştırma, HTTP/2/3.
IP/JWT/anahtar ile çevre üzerindeki hız sınırları, dalgalanma koruması.
Broker/pub/sub kanalları üzerinden etkinlik fan-out (jackpotlar, canlı uyarılar).
4. 2 Ön Uç için Arka Uç API Ağ Geçidi
Statlara göre yatay ölçeklendirme, downstreamlere göre özel havuzlar.
İş metriklerine göre HPA: RPS, p99, iş havuzu kuyruğu - sadece CPU değil.
4. 3 Eşzamansız kuyruklar/akış (Kafka/Tavşan/Pulsar)
Taraflara ve tüketicilere göre ölçeklendirme; Eğrilmekten kaçının (anahtarlar ve dağıtım).
Gecikme uyarıları + tüketicilerin otomatik ölçeklendirilmesi; DLQ ve yeniden deneme konuları.
SLA mutabakatları altında tutma ve yeniden oynatma.
4. 4 Önbellek (Redis/Memcached)
Küme modları, kopyalar, tahliye politikaları (LFU), multiget, boru hattı.
Kısayol tuşu ve arka plan görevlerinin ayrılması, istemci sınırları ve maksimum bellek ilkesi.
4. 5 Veritabanları
Kopyaları okuma ve yönlendirme okuma, bağlantı birleştirme.
Bölgeye/kiracıya/anahtar aralığına göre sharding.
CQRS: ustaya/lidere yazar, kopyalara okur.
Dizinleme ve toplu yazma iş akışları (giden kutusu, akış, lavabo).
Arşivleme ve sıcak/soğuk veri (katmanlama).
4. 6 Dosya/Nesne Depoları
Çok aşamalı, çok parçalı indirmeler, CDN-ön, eşzamansız dönüşümler.
Sağlayıcı kotaları, kuyruk temizleme ve çıkış bütçesi.
4. 7 Sağlayıcılar (PSP/KYC/Studios)
Çok satıcılı ve teklif/SLO/maliyet yönlendirme.
Devre kesici + her sağlayıcı için hız sınırı, retray kuyruğu, "grace modları".
5) Otomatik ölçeklendirme ve koruma rayları
Kubernetes:- HPA: метрики 'rps _ per _ pod', 'queue _ depth', 'p99 _ latency'; 'targetAverageValue'.
- VPA: kaynak yönergeleri; Pik dışında güncelleme.
- Cluster Autoscaler: spot + öncelikli isteğe bağlı profiller.
- PodDisruptionBudget/TopologySpreadConditions: bölgeler arasında tekdüze.
- LimitRange/ResourceQuota: "Sarhoş" tüketenlere karşı koruma.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
scaleTargetRef: {apiVersion: apps/v1, kind: Deployment, name: api-gw}
minReplicas: 8 maxReplicas: 200 metrics:
- type: Pods pods:
metric:
name: rps_per_pod target:
type: AverageValue averageValue: "120"
- type: Pods pods:
metric:
name: p99_latency_ms target:
type: AverageValue averageValue: "280"
behavior:
scaleUp:
stabilizationWindowSeconds: 90 scaleDown:
stabilizationWindowSeconds: 300
Korkuluklar (örnekler):
- "Pause & Rollback", eğer kanarya p99> 1 ise. 3 × taban çizgisi 10 dakika.
- Prime time'da "Freeze scale-down", sadece scale-up.
- Darboğazlara 'open _ circuit = 1' konumunda "Stop retries".
6) Çok bölgeli: varlık/varlık ve varlık/borç
Patlama yalıtımlı bölgeler: bağımsız kümeler, yerel sırlar/kotalar.
Global yönlendirme: latency-/geo-based, health-probs, manuel geçersiz kılma.
- Sıcak - yerel olarak + nihai çoğaltma (akışlar).
- Kritik işlemler - etki alanına göre tutarlı (defter/bakiyeler).
- Yük devretme oyun kitapları: adım adım kaynak değişimi, TTL, ısınma önbellekleri.
- Egzersiz Yönetmeliği (DR): RTO/RPO hedefleri ile üç aylık egzersizler.
7) Ağ ve hizmet kalıpları
Servis Mesh: mTLS, yeniden deneme/kırıcı, aykırı algılama, aşağı akış başına limitler.
EBpf/ L4/L7 üzerinde gözlemlenebilirlik, bağlantı sınırları, hat başı koruması.
S2S, genel oran sınırı ve denetim için dahili API ağ geçitleri.
Patlama bölgelerine göre VPC/alt ağlar, NAT/Çıkış kontrolü, satıcılarla gözetleme.
8) Performans: Testler ve ispatlar
& Gerilmeyi primetime + en kötü durum profilinde yükle.
Islak (uzun) - bellek/tanımlayıcı sızıntıları, gecikme büyümesi.
Kaos/oyun günleri: broker/sağlayıcı/bölge düşüşü, "yavaş sağlayıcı".
CI'de perf regresyonları: bir dizi referans senaryosu ve otomatik kapılar.
9) Veri ve Depolama: Büyüme Stratejileri
Tavana dikey büyüme - yatay/sharding.
Oku - kopya/önbellek; Kayıtlar - toplu/asynchron/log.
Şema geçişleri: genişlet, göç et, kontrat yap, global kilit yok.
Arşivleme: ucuz depolamaya soğuk partiler + isteğe bağlı yeniden hidrasyon.
Arama: artımlı güncellemeler boru hattı ile bireysel dizinler (OpenSearch/Solr).
10) Sağlayıcıları ve kotaları yönetin
Kota kartı (TPS, pencereler, maliyet); 'use _ ratio> 0 uyarır. 9`.
Maliyet/kaliteye göre yönlendirme (akıllı yönlendirme).
OLA ↔ SLO anlaşmaları ve kota artırma süreci.
Alternatifler havuzu ve "sıcak" anahtarlama.
11) Gözlemlenebilirlik ve ölçeklendirme sinyalleri
Metrikler (minimum):- Kapasite boşluğu по слоям; 'queue _ lag/backlog growth'; 'kafka ISR'; 'db connections'/' repl lag'; 'redis evications'; 'open _ circuit'/' retry _ rate'; 'kota _ kullanımı'.
- İş metrikleri: başarı oranı/para yatırma dönüşümü, oyun başlangıç zamanı.
- Maliyet: Maliyet/RPS, maliyet/1k çağrıları.
- Kapasiteye Genel Bakış (boşluk, en büyük riskler, yanma oranı SLO).
- Akış ve Kuyruk Paneli (lag/backlog, tüketici doygunluğu).
- DB & Cache (p99, bağlantılar, hit/tahliye).
- Sağlayıcılar ve Alıntılar (TPS, zaman aşımları, maliyet, geçiş).
- Değişim Güvenliği (yayın öncesi/sonrası, kanarya, otogazlar).
ALERT HeadroomLowAPI
IF capacity_headroom{layer="api"} < 0. 15 FOR 10m
ALERT KafkaBacklogAtRisk
IF (consumer_lag > 5e6 AND rate(consumer_lag[5m]) > 5e4) AND (hpa_desired == hpa_max) FOR 10m
ALERT DBConnectionsNearMax
IF active_conns / max_conns > 0. 85 FOR 5m
ALERT ProviderQuota90
IF usage_quota_ratio > 0. 9 FOR 5m
12) FinOps: Ölçeklendirme karlı
Verimlilik oranları: maliyet/RPS, maliyet/depozito, maliyet/1k olayları.
Sağ boyutlandırma: VPA/öneriler, aşırı sağlanmış raporlar.
Kritik olmayan için Spot/Preemptible; Ayrılmış/temel yük için taahhüt edilmiştir.
Çıkış bütçesi ve önbelleğe alma, CDN/kenar aktarımı.
Günlüklerin değer seviyesine göre toplanması ve arşivlenmesi (sıcak ve soğuk).
Uyarı kotaları (soft-cap) ve uzatma için otomatik biletler.
13) Süreçler ve insanlar
Değişim Yönetimi: Kanaryalar, phicheflags, regresyonlarda durur.
Olay-hazırlık: runbook've "nerede kapasite eklenir", "bölge nasıl değiştirilir".
Zamanlama zirveleri: maç/turnuva/kampanya takvimi ve sağlayıcı pencereleri.
Düzenli oyun günleri ve DR egzersizleri.
Sahiplik matrisi: feilover üzerindeki "düğmeye basabilir "/kotaları artırabilir.
14) Uygulama kontrol listeleri
Temel ölçeklenebilirliğin başlatılması (2-4 hafta):- Kritik yolların ve sınırların haritası (katmana göre), boşluk hedefi ≥ %30.
- Business Metrics + Cluster Autoscaler tarafından HPA; PDB/SpreadRestrictions.
- Sıcak yollarda kuyruklar, idempotency-tuşları, giden kutusu.
- Önbellekler: isabet hedefleri ≥ %90, tahliye politikası, anahtar endeksler.
- DB: okuma kopyaları, bağlantı havuzu, sharding planı.
- Sağlayıcılar: çok satıcı, kotalar, kırıcılar/geri çekilmeler.
- Gösterge Tabloları "Kapasite/Akış/DB/Sağlayıcılar", § 11'den uyarılar.
- Kanarya ve yayın öncesi/sonrası otogazlar.
- DR oyun kitabı ve bir kısmi feilover eğitimi.
- Önbellek, ön ölçekli HPA/ASG, sıcak bekleme kopyaları ısınma.
- Sağlayıcı kotalarını artırın, akıllı yönlendirmeyi etkinleştirin.
- Kritik olmayan uyarılar için gece modu baskılamalarını sağlar.
- "Güvenli mod" özelliği anında etkinleştirme için hazırdır.
15) Anti-desenler
Yatay yerine dikey yükseltme "tam durak".
Tüm downstreamlerde ortak bir hat başı iplik/bağlantı havuzu.
Darboğaz zaman aşımları üzerinde Retrai, titreme eksikliği - fırtına.
Uyarılar ve ölçek politikalarında histerezis yoktur - "testere".
Veri ayrıştırma ve yerelleştirme olmadan tek global veritabanı.
Zaman aşımı/geri ödeme/gözlemlenebilirlik kontrolü olmadan satıcı SDK'sına kör inanç.
DR egzersizleri eksikliği: Feilover "sadece kağıt üzerinde".
16) Ölçeklenebilirlik KPI
Zirvede SLO uyumluluğu (p95/p99, başarı oranı).
Asal zamanda katman katman boşluk.
MTTS (Mean Time To Scale) - ek kaynaklar mevcut olana kadar.
Backlog/Lag Resolution Time: Kuyrukların tepe noktasından sonra çöktüğü zaman.
Aktif büyüme dönemi için Değişim Başarısızlık Oranı.
Maliyet/RPS ve önbellek/CDN/kenar aktarımından tasarruf.
DR Hazırlık: Egzersiz RTO/RPO.
17) "Hızlı" şablonlara örnekler
Kafka: tüketicilerin katılımı ve otoscale (fikirler):
partitions(topic="bets") = ceil(peak_msgs_per_sec / target_msgs_per_partition)
consumers = min(partitions, max_pods); rebalance_on: skew > 1. 5x scale_up_if: lag > 5e5 && rate(lag[5m]) > 5e4
PostgreSQL:
max_connections = poolers pool_size 1. 3 read_routing: primary (write), replicas (read majority)
shard_key: tenant_id or region_id
Redis:
maxmemory-policy: allkeys-lfu cluster-replicas: 1 evict-alert: rate(evictions[5m]) > 0 && used_mem/limit > 0. 8
Kanarya otogaz politikası (özet):
guardrails:
- metric: api_p99_ms, threshold: 1. 3 baseline_1d, window: 10m, action: pause_and_rollback
- metric: error_rate, threshold: 2 baseline_1d, window: 5m, action: pause max_step: 10%
step_interval: 15m
18) SSS
S: Önce ne ölçeklenir?
A: Panolara göre darboğazlar: kuyruklar/önbellekler/veritabanı okur. Sıcak yollar (para yatırma/bahis/oyun başlatma) bir önceliktir.
S: Otomatik ölçeklemenin'daha da kötüleştirdiği "nasıl anlaşılır?
C: Korelasyona bakın: scale- up↑ ve p99/hatalar düzelmez - belki de "sorunu ölçeklendirirsiniz" (akışı/kotayı daraltın). Kesiciler/bozulma içerir.
S: Her zaman ikinci bir sağlayıcıya ihtiyacınız var mı?
C: Kritik yollar için evet. Aksi takdirde, en azından basitleştirilmiş bir komut dosyası ve önbellek ile "güvenli mod".
S: Aktif-aktif или aktif-pasif mi?
C: RTO gereksinimleri düşükse ve birçok bölgesel oyuncu aktif-aktifse. Aksi takdirde, kullanılmış bir feilover ile aktif-pasif ile başlayın.