GH GambleHub

Geri dönüşler ve stabilite geri kazanımı

(Bölüm: Teknoloji ve Altyapı)

Kısa Özet

Geri alma, en az veri kaybı ve SLO ihlali riski olan en son kararlı sürüme yönetilen bir geri dönüştür. Güvenilir bir süreç şunları içerir: SLO sinyalleri, açık kapılar ve geri alma kriterleri, bir anahtarlama mekanizması (GitOps/Ingress/mesh), uyumlu bir veri şeması, yalıtılmış yapılandırmalar/sırlar/önbellekler, runabook ve olay sonrası iyileştirme döngüsü.

1) Ne zaman geri alınacak (başlangıç kriterleri)

SLO/iş kapıları: Eşiğin üzerinde p95/99, hata oranı ↑, ödeme/oran dönüşümünde düşüş, PSP zaman aşımlarında artış.
Teknik sinyaller: ocak çöker, bellek sızıntıları, kuyruk büyüme, belirteç bozulması/sn (LLM), Edge 5xx.
Veri riski: Yanlış geçişler, kopyaların tutarsızlığı, yetim işlemleri/ödemeleri.
Güvenlik/PII: şüpheli sızıntı - derhal geri alma/izolasyon.

Kural: 2 + anahtar metrikleri eşikler> N dakika dışındaysa, geri alma tetiklenir.

2) Geri dönüş türleri

1. Uygulama: Kapların/paketin önceki etikete geri alınması.
2. Özellik: özellik bayrağı/kill-switch ile anında kapatma.
3. Yönlendirme - Ağırlığı kararlı sürüme (kanarya - kararlı) veya Mavi - Yeşil'e döndürür.
4. Veritabanı: mantıksal geri dönüş (tazminat), planın aşamalı geri dönüşü; PITR son çare.
5. Altyapı: geri alma manifestoları/Terraform planı; Geri dönen ağ/WAF yapılandırmaları.
6. Veri/önbellek/kuyruklar: reset/disability/replay mesajları; versiyon önbellekleri.

3) Güvenli geri dönüşün mimari ilkeleri

Şema uyumluluğu: genişlet> göç et> sözleşme stratejisi (genişleme ve sözleşme arasında geri alma mümkündür).
İzole bağımlılıklar: revizyonlar için ayrı sıralar/yapılandırmalar/önbellekler/kuyruklar.
Idempotent işlemleri: göçlerin tekrarlanan başlangıcı ve iş - güvenli.
Artifaktların değişmezliği: görüntüler, grafikler, SQL komut dosyaları - sürümlü ve imzalı.
GitOps true: Geçerli sürüm ve yönlendirme, manifesto deposuna adanmıştır.

4) Geri alma mekaniği (Kubernetes/GitOps)

Argo Rollouts (ağırlık dönüşü)

yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: api }
spec:
strategy:
canary:
steps:
- setWeight: 5
- pause: { duration: 10m }
in case of analysis failure → automatic rollback to stable

GitOps geri dönüşü (fikir)


git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision

NGINX: hızlı anahtar kararlı

nginx map $cookie_canary $to_canary { default 0; 1 1; }
upstream stable { server api-stable:80; }
upstream canary { server api-canary:80; }
server {
location / {
if ($to_canary) { proxy_pass http://canary; }
proxy_pass http ://stable; # removed canary cookie - instant rollback
}
}

5) Veritabanı Rolback ve Veri Koruma

Genişlet> Migrate> Contract:
  • Genişlet - Yeni alanlar/dizinler ekleyin, kod eski ve yeni şemayı destekler.
  • Migrate: kod yeni bir şemaya yazmaya başlar, eskisini kırmayız.
  • Sözleşme: sadece stabilizasyondan sonra eskisini silin.
  • PITR/anlık görüntüler: yalnızca mantıksal telafi mümkün değilse kullanın.
  • Tazminatlar: ekleri/bakiyeleri/ödemeleri sabitlemek için ayrı komut dosyaları/işler.
  • Salt okunur pencereler: eleştirildiğinde, durumu "dondurmak" için kaydı geçici olarak engelleriz.
Örnek (SQL fikri, aşırı güvenli):
sql
-- expand
ALTER TABLE wallet ADD COLUMN bonus_balance NUMERIC DEFAULT 0 NULL;
CREATE INDEX CONCURRENTLY idx_wallet_bonus ON wallet(bonus_balance);

-- migrate in code, two-sided write
-- contract (after stabilization)
ALTER TABLE wallet DROP COLUMN legacy_bonus_balance;

6) Geri dönüşte kuyruklar ve önbellekler

Sürüm önbelleği: önekli anahtarlar ('v2:') - güvenli bir arada bulunma.
Engellilik: geri alma sırasında - toplu temizleme 'v2:', 'v1:'ye geri dönün.
Kuyruklar: sürüme göre partiler/konular; "Kontrol noktasından" mesajları tekrar oynatmak.
De-duplication/idempotency: Yinelemesiz yeniden işleme için idempotence anahtarları.

7) SLO kapıları ve otomatik geri dönüşler

Metrikler: p95/99, hata oranı, doygunluklar (CPU/IO/GPU), kuyruk derinliği, belirteçler/sn, ödeme dönüşümü.

Politika (örnek):

if p95_latency_ms > 250 for 5m OR error_rate > 1. 5% for 3m OR payment_conv < baseline-0. 3%
then rollback release && open incident && freeze deploys

8) Runabooks (oyun kitapları)

A) P99 ve 5xx'in salım sonrası büyümesi

1. Promosyonu durdurun (kanarya/mavi-yeşil dondurun).
2. Trafiği kararlı revizyona geçirin.
3. Önbellek isabet/kuyruk/PSP gecikmesini kontrol edin.
4. Tanılamayı kaldırın: günlükler, profiller, istemci/şema sürümleri.
5. İletişim: ChatOps, durum kanalı, olay kartı.
6. Düzeltme işlemini başlatın: yama/sıcak düzeltme/özellik iptali.

B) Veritabanı geçiş hatası

1. Freeze writes (salt okunur, kısaca).
2. Uygulama geri dönüşü - kararlı sürüm (eski şema ile uyumlu).
3. Compensation/rollback betiğini çalıştırın.
4. Çözülme kaydı; sürüklenme/hataları gözlemleyin.

C) Ödeme Bozulması (PSP)

1. PSP yönlendirmesini önceki rotaya geçirin.
2. Geri alma işlemi serbest bırakıldı.
3. Bekleyen tüm ödemeleri uzlaştırın, idempotent anahtarlarla tekrarlayın.

D) LLM/öneriler bozulur

1. Yeni model/parametreleri devre dışı bırak (özellik bayrağı).
2. Önceki uç nokta/ağırlığı döndürme; Yeni revizyon KV önbelleğini temizleyin.
3. Belirteçleri/s, ilk gecikme belirteci, toksisiteyi kontrol edin.

9) İletişim ve donma bültenleri

Pencereyi dondur: geri aldıktan sonra - duraklat RCA/fix'e bırakır.
Tek kanal: durum güncellemeleri, eylemlerin kronolojisi, kimin ne yaptığı.
Paydaşlar: Ürün/CS/Ödemeler/Avukatlar (PII'de).

10) Olay sonrası: analiz ve önleme

RCA (ücret yok): kök neden, katkıda bulunan faktörler, neden kapılar işe yaramadı (eğer işe yaramadıysa).
Eylemler: geçiş testleri, sınırlar, özellik kapıları, gözlemlenebilirlik.
SLO eşiği: çok "yumuşak "/" sert'ise ayarlama.
Dokümantasyon: Çalışma kitaplarını güncelleyin, uyarılar ekleyin, eğitim (oyun günü).

11) Araçlar ve şablonlar

GitOps: Argo CD/Flux - 'revert'/' rollback' sürümü ile taahhüt.
Aşamalı teslimat: Argo Rollouts/Flagger - metrikleri durdurun/geri alın.
Kenar/Giriş: ağırlık yönlendirme, çerez yönlendirme, hızlı anahtar.
Özellik bayrakları: kesirli sunum, kill-switch.
Göç DB: yukarı/aşağı, kuru çalışma, kısma ile mig-çerçeveler.
Gözlemlenebilirlik: Hazır panolar "serbest bırakma karşılaştırması" (kanarya vs kararlı).

12) Geri dönüşler için hazır olma kontrol listesi

1. Sürümlenmiş ve imzalanmış eserler (görüntüler/grafikler/SQL).
2. İki raylı yapılandırmalar/sırlar/önbellekler/kuyruklar (sürüm önekleri).
3. Genişleterek DB diyagramı> migrate> contract.
4. Kanarya ve SLO kapıları ve otomatik geri tepme ile mavi-yeşil bültenleri.
5. Anahtar senaryolar için Runabooks (ödemeler/DB/önbellek/LLM).
6. ChatOps düğmeleri:'/rollback ','/freeze','/promote '.
7. Denetim ve kayıt: kim, ne zaman, ne geri alındı; Teşhis eserleri.
8. Oyun günü egzersizleri: dips ve geri kazanımları simüle etmek.
9. İş ve destek iletişim planı.
10. Tek ekranda kararlı vs yeni.

13) Anti-desenler

Kod kullanıma sunulmadan önce yıkıcı geçişler (geriye dönük uyumluluk yok).
Sürümleri olmayan paylaşılan önbellekler/kuyruklar - kirli geri alma.
GitOps/Değişim Geçmişi Yok - Prod için Manuel Düzenlemeler.
Kapılar/telemetri olmadan kanarya salınımı - geç algılama.
Dondurma ve RCA olmadan geri alma - olayı tekrarlayın.
İş metrikleri (ödemeler/oranlar) olmadan yalnızca teknik metrikleri izleme.
Tüm revizyonlara "ortak sırlar" - olayı izole etmek zordur.

Özet

Güvenilir geri alma, bir "durdurma vinci'değil, sürümlerde yerleşik bir süreçtir: sürüm ve uyumluluk, yalıtılmış bağımlılıklar, SLO kapıları, GitOps gerçekliği, otomatik geri dönüşler ve açık çalışma kitapları. Bu yaklaşım, iGaming platformlarının istikrarı hızla yeniden kazanmasına, veri ve gelir kayıplarını en aza indirmesine ve her olayı bir iyileştirme kaynağına dönüştürmesine olanak tanır.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.