Operasyonlar ve Yönetim Otomatik iş akışları
Otomatik iş akışları
1) Neden ihtiyacınız var
Otomatik iş akışları manuel işlemleri azaltır, "fikirden paraya zamanı" hızlandırır ve hata riskini azaltır. IGaming/fintech'te para yatırma/çekme, KYC/AML, bonus/jackpot yönetimi, içerik güncellemeleri, olay reaksiyonları ve arka ofis görevleri için kritik öneme sahiptir.
Hedefler:- Tetikleyiciden sonuca kadar sağlam, şeffaf bir şekilde gözlemlenen süreçler.
- Süreç SLO'ları tarafından tahmin edilebilen minimum manuel adımlar.
- Hata kontrolü: geri alma, telafi edici eylemler, net yükselmeler.
- Olaylara göre ölçeklendirme ve fırtınalar ve kopyalar olmadan yükleme.
2) Temel terminoloji
İş akışı (WF): Bir iş sonucunu elde etmek için bir adımlar zinciri (görevler).
Orkestrasyon: Merkezi koordinatör adımları ve sıralarını yönetir.
Koreografi: adımlar olaylara tepki verir, "merkezi beyin" yoktur.
Tazminat: Kısmi başarısızlıkta ters eylemler (sagalar).
HITL (Human-in-the-loop): WF içinde kontrollü "manuel" çözümler.
Sürecin SLO'su: belirli bir WF'nin tamamlanma/başarı süresini hedefleyin (örneğin, "mevduatın %95'i 3 saniye ≤").
3) Nereye başvurulur (örnekler)
Ödeme akışı: para yatırma, dolandırıcılık önleme, muhasebeye gönderme, bildirimler.
KYC/AML: Belgelerin toplanması, sağlayıcılar tarafından kontrol edilmesi, uygunluğun arttırılması.
İçerik/limit yönetimi: oyunları, kotaları, coğrafi kuralları yayınlamak.
Bonuslar/ikramiyeler: tahakkuklar, kesintiler, koşulların hesaplanması, ödemeler.
Olaylar: otomatik tanılama, kısaltılmış kontrol listeleri, iletişim.
Veri/ETL: rapor yüklemeleri, mutabakat, arşivleme.
4) Orkestrasyon vs Koreografi
Orkestrasyon, karmaşık şube mantığı, katı SLO'lar, açık son tarihler/zaman aşımları, görsel bir "süreç haritası" gerektiğinde uygundur.
Koreografi - ne zaman: yüksek olay, zayıf bağlantı, bir olayın birçok bağımsız tüketicisi.
Melez: Uzun ömürlü destanlar bir orkestratör tarafından kontrol edilir ve yerel reaksiyonlar olaylarla gerçekleştirilir.
5) Mimari ilkeler
Idempotency: Her adım güvenli bir şekilde tekrarlanmalıdır (idempotency-key, dedup by message-ID).
Açık zaman aşımları ve geri çekilmeler: backoff + jitter, sınırları deneyin, yalnızca güvenli hatalar için geri çekilir.
Telafiler (sagalar): Kısmi başarısızlıkta zincir geri dönüşleri.
Adımların izolasyonu: bölme (bireysel havuzlar/dış downstreams sınırları).
Sözleşmeler: Tüm harici aramalar için OpenAPI/AsyncAPI, CDC testleri.
WF sürüm oluşturma: eski örneklerin "kütle" damlaları olmadan girdi/çıktı verilerinin şemasını değiştirme.
6) Olay ve tetikleme modeli
Tetikleme türleri:- Domain olayı ('depozito. Talep edildi '),
- program (cron),
- Manuel başlatma (operatör/destek),
- uyarıdan sinyal (olay-otomatik-iş akışı).
- Bağlam: korelasyon 'trace _ id', 'workflow _ instance _ id', kullanıcı/bölge, phicheflag sürümü.
- Ucuz giriş filtreleri: erken doğrulama ve take'lerin kesilmesi.
7) Adım tasarımı (görevler)
Her adım açıklanmıştır: giriş, çıkış, SLO, zaman aşımı, girişimler, geri ödeme koşulları, tazminat, haklar/sırlar.
Sözde adım açıklaması:
task: call_psp input: { user_id, amount, currency, idempotency_key }
timeout: 200ms retries:
max: 2 on: [5xx, connect_error]
backoff: exponential jitter: true compensation: reverse_authorization secrets: [PSP_TOKEN]
sla: p99 <= 300ms
8) Tazminat ve destanlar
Yerel işlem + olay "niyeti kaydet - yayınla olayı".
Tazminat: yetkilendirmenin iptali, bonusun iadesi, bakiyenin yeniden hesaplanması, biletin kapatılması.
Tazminat idempotans: tekrarlanan iptal değişmezleri kırmamalıdır.
9) Güvenlik ve sırlar
KMS/Secrets Manager: belirteç depolama, rotasyon, rol erişimi.
En az ayrıcalık: WF motoruna tam olarak doğru kapsamlar verilir.
Webhook/Kolbek imzası: HMAC/JWS, zaman damgası kontrolü.
Veri politikaları: Günlüklerde/izlerde PII maskeleme, şifreleme.
10) Gözlemlenebilirlik ve SLO
Süreç metrikleri: 'workflow _ started/completed', 'succcess _ rate', 'aborted', 'mean/p95/p99 duration', hanging instances, 'dead letter'.
Adım metrikleri: 'Task _ latency', 'error _ rate', 'retry _ count', 'open _ circuit', 'cost _ per _ 1k _ calls'.
İzler: her adım için yayılma alanı, etiketlerin iş akışı. İsim ',' adım ',' girişim '.
SLO: örneğin, "Mevduatların %95'i 3 saniye ≤, %99'u 5 saniye ≤; İptal ≤ 0. %3/gün"
Panolar: termal adım haritası, darboğazlar, bağımlılık haritaları.
11) Devre İçinde İnsan (HITL)
Kriterler: tartışmalı durumlar (risk/AML), büyük ödemelerin manuel olarak onaylanması.
Son tarihler: Bir karar için bekleyen zaman aşımı, hatırlatıcılar/eskalasyon.
Denetim: kim/ne zaman/ne karar verdi, gerekçe, biletli paket.
12) Değişim Yönetimi ve Bültenleri
İş akışı sürümleri: Paralel olarak 'v1've' v2 '; Örnek geçişi mümkün değildir - eski örnekleri doğal olarak, yeni trafiği 'v2'ye sonlandırın.
Kanarya trafiği: %1 - %10 - %100, metriklerin karşılaştırılması 'başarı/p95/iptal'.
Ficheflags: Bir önceki adım/şube uygulamasına hızlı bir geri dönüş.
CDC/sözleşmeler: Adım değişikliklerinin tüketicileri/sağlayıcıları kırmasını önlemek için CI'daki kapı.
13) Test etme
Birim adımları: pozitif/negatif + idempotency.
Sözleşme testleri: moka/sahne sağlayıcıya karşı.
WF simülasyonları: mutlu yol + zaman aşımları, 4xx/5xx, "yavaş sağlayıcı", olayların kaybı, kısmi hatalar.
Oyun günleri: Aksaklıkların enjeksiyonu (PSP/KYC düşüşü, kuyruk gecikmesi, kapalı kırıcı).
Replay: Göçleri doğrulamak için tarihsel olayları tekrar oynatın.
14) Olaylar ve otomatik reaksiyonlar
Olay otomatik iş akışı: metrikleri toplama, aşağı akışları kontrol etme, bildirimler, geçici çözüm hazırlama (sağlayıcı değiştirme, bozulma).
Çalışma kitabı adımları: Manuel iptal/zorlama-tamamlamaya izin verildiğinde asılı örnekleri nasıl "çözülür".
15) Maliyet yönetimi
Kotalar ve "yumuşak sınır": pahalı adımlar/sağlayıcılar üzerindeki sınırlar.
Önbellek/dedup: Gereksiz yere tekrarlanan harici aramalar yapmayın.
Raporlar: 'Cost _ per _ 1k _ workflows', WF türüne göre "cost of success".
16) Mini şablon iş akışı (sözde YAML)
workflow: deposit_v1 trigger:
event: deposit.requested filters: [amount > 0, currency in [USD,EUR,TRY]]
sla:
p95_ms: 3000 abort_rate_daily: 0.3%
steps:
- name: reserve_funds timeout_ms: 150 retries: {max: 2, on: [5xx, connect_error], backoff: exponential, jitter: true}
compensation: release_reserve
- name: call_psp timeout_ms: 200 retries: {max: 2, on: [5xx, connect_error]}
circuit_breaker: {error_rate: 0.05, window_s: 10, open_s: 30}
- name: post_ledger type: async topic: ledger.post
- name: notify_user channel: push hitl:
when: amount > 10000 or risk_score > 0.8 timeout_m: 30 escalate_to: "compliance@oncall"
observability:
emit_metrics: true trace: true security:
secrets: [PSP_TOKEN, PUSH_API_KEY]
17) Retray ve zaman aşımı politikaları (öneriler)
Adım zaman aşımı = gecikme bütçesinin %70-80'i.
Retrai ≤ 2-3, sadece idempotent işlemler ve ağ arızaları için.
Jitter zorunludur; Bir follbeck olmadan darboğaz zamanaşımlarından çekilme yasağı.
Tazminat - ayrı adımlar olarak, aynı zamanda idempotent.
18) Gösterge panoları (minimum)
WF Genel Bakış: başlatır/başarı/iptal, p95/p99 süresi, askılar/dedeler.
Adım Drilldown: Üst yavaş/hata adımları, geri çekilmeler, açık kırıcılar.
Sağlayıcı Paneli: giden p95/hata oranı/kotalar/maliyet.
HITL Kurulu: "bekleyen karar", zaman çizelgesi, uyumluluk SLA'ları.
19) Uygulama kontrol listesi
- Anahtar WF haritası ve sahipleri (on-call, sohbet, repo).
- Adımların açıklaması: giriş/çıkış, SLO, zaman aşımları, geri çekilmeler, tazminatlar, sırlar.
- OpenAPI/AsyncAPI + CDC sözleşmeleri.
- Idempotence/girişte ve merdivenlerde deadup.
- Gösterge panoları, izler, uyarılar (SLO işlemi ve adımlar).
- WF sürümleri için Canary + phicheflags.
- Runbook: Nasıl "tedavi" asılı/kısmen yürütülen WFs.
- Bozunma planı: alternatif sağlayıcılar,'ağır "dalları kapatmak.
- Gizli/erişim/denetim politikaları.
- Oyun günleri/xaoc-senaryoları bir kez sprint.
20) Uyarı örnekleri (fikirler)
ALERT WorkflowSLOBreached
IF workflow_p95_duration_ms{name="deposit_v1"} > 3000 FOR 15m
LABELS {severity="critical", team="payments"}
ALERT WorkflowAbortRateHigh
IF rate(workflow_aborted_total{name="deposit_v1"}[30m]) > 0.005
LABELS {severity="warning", team="payments"}
ALERT StepRetryStorm
IF step_retry_count{name="call_psp"} > 2 baseline_1w FOR 10m
LABELS {severity="warning", team="integrations"}
ALERT StuckInstances
IF workflow_in_progress_age_p95_m{name="kyc_v2"} > 60
LABELS {severity="warning", team="risk"}
21) Anti-desenler
100'den fazla adım ve sert bağlantı ile "büyük monolitik WF" - zor ve gürültülü kırar.
İdempotent olmayan işlemler için retrays (çift ücret/ücretler).
Kullanıcının isteğinin "yaşamdan daha uzun" zaman aşımları - cellat ve "zombiler".
Tazminat eksikliği - manuel düzeltmeler ve uzun post-mortemler.
Hiçbir WF sürümü yok - sürümler eski örnekleri kırar.
Döndürme ve denetim olmadan yapılandırmalar/değişkenler içindeki sırlar.
22) İş Akışı Kalitesi KPI
WF türüne göre başarı oranı ve İptal oranı.
P95/p99 adımların ve sürecin süresi.
Süreç olaylarında MTTD/MTTR.
Fırtına sayısını/ayını yeniden deneyin (hedef 0).
1k WF başına maliyet ve "başarı maliyeti".
Otomasyonun payı: HITL olmayan vakaların %'si.
23) Hızlı başlangıç (varsayılanlar)
3-5 kritik WF ile başlayın (para yatırma, çekme, KYC).
Orkestrasyon uzun ömürlü destanlar; yerel tepkiler - olaylar.
Adım zaman aşımı ≤ Bütçenin %80'i; Retrai ≤ 2 ile backoff + jitter.
Tazminatlar yazılı olarak belirlenir ve test edilir.
Karşılaştırma panosu ile trafiğin %5-10'u için kanaryayı açın.
Her WF'nin bir sahibi, bir runbook'u ve SLO uyarıları vardır.
24) SSS
S: Ne seçmeli: orkestratör veya etkinlikler?
C: Görsel bir haritaya ihtiyacınız varsa, son tarihler ve uzun sagalar bir orkestratördür. Olaylara ve birçok tüketiciye basit tepkiler verilirse, koreografi. Genellikle en iyi seçenek bir hibrittir.
S: Kopyalardan nasıl kaçınırsınız?
C: WF girişinde idempotency-key, 'message _ id'ile dedup ve "seen-events'in depolanması. "Adımlar idempotenttir.
S: Devrede bir adama ihtiyacı var mı?
C: Evet, tartışmalı/pahalı durumlar için. Ancak, daha iyi otomasyon ve kurallar yoluyla HITL payını ölçün ve azaltın.