Planlayıcı və fon tapşırıqları
(Bölmə: Əməliyyatlar və İdarəetmə)
1) Təyinat
Planlayıcı və fon tapşırıqları platformanın istifadədən kənar işini təmin edir: dövri hesablamalar, artefaktların nəşrləri, klirinq və növbələrin repleyləri. Məqsədlər - determinantlıq, uğursuzluğa davamlılıq və auditə yararlılıq.
2) Məsələlərin taksonomiyası
Time-based: cədvələ görə (cron/təqvim): klirinq, RTP pəncərələrinin bağlanması, boşaltma, arxivləşdirmə.
Event-driven: şin triggerləri (PaymentsSettled, PriceListUpdated).
One-off/Ad-hoc: TTL ilə birdəfəlik joblar.
Long-running: backhof/dastanlar, axın kompakşenləri.
Maintenance: açar rotasiyaları, repackage, indekslər, cache qızdırılması.
3) Memarlıq (istinad)
Komponentlər:1. Scheduler (control-plane): cədvəllər, CAL/cron, xidmət pəncərələri, vaxt zonaları, məhdudiyyətlər saxlayır.
2. Dispatcher: plan → növbə (per-priority/tenant/region), son tarixlər, idempotent açarları qoyur.
3. Workers: problemlərin hovuzları altında statik/avtoskeyl; heartbeats, leases.
4. Queue/Bus: FIFO/prioritetləşdirmə, DLQ, gecikmiş mesajlar.
5. Locker/Coordination: paylanmış kilidləmə (leases), lider elektrik (Raft/ZK/Consul).
6. Vault/KMS: JIT sirləri, qısa TTL.
7. Observability: traces/metrics/logs, daşbordlar, alertlər.
8. Audit/WORM: dəyişməz icra qəbzləri, Merkle dilimləri.
Nümunələr: outbox/CDC, idempotency, kompensasiyalar (dastanlar), backpressure, circuit-breakers.
4) cədvəllər: cron və təqvimlər
Cron v3: saniyə/dəqiqə/saat/gün/ay/gün-həftə; dəstək «/5 », diapazonlar, siyahılar.
Təqvimlər/istisnalar: biznes təqvimi, «sükut pəncərələri», bayramlar/DST.
Taymzonlar: Tapşırıqda 'tz' saxlayın; tenantın yerli vaxtında başlaması.
Multiregion: per-region cədvəllərinin surətləri və ya drain/təkrar seçki ilə «aparıcı region + izləyicilər».
5) Növbələr, prioritetlər, SLA
Prioritet siniflər: P0 (kritik), P1, P2, P3; fərdi məşq hovuzları.
SLA/müddətləri: 'must _ start _ by', 'must _ finish _ by'; keçid - eskalasiya/retraj.
Kvotalar və fairness: tapşırıqlar/min/tenant caps, «burst» tokenləri, noisy-neighbors izolyasiyası.
Gecikmiş tapşırıqlar: «əvvəl deyil» (delay/visibility timeout).
6) Rəqabət və kilid
Leases: avtomatik yeniləmə ilə işin icarəsi (heartbeat); taym-out - yenidən ələ.
Mutex/semaforlar: per-resurs (məsələn, «qiymət siyahısı x yalnız bir worker yazır»).
Şardlaşdırma: 'tenant/region/hash (key)'; sticky-routing üçün cache və data locality.
Eleksiya lideri: bir lider «sistem» jobları (məsələn, «bütün RTP pəncərələrini bağlayın») dərc edir, izləyicilər isti standby.
7) Etibarlılıq: retraj, idempotentlik, dedup
İdempotent açarı: '(task_type, business_id, window)'; təkrar → eyni qəbz.
Retrailer: eksponensial back off + jitter, cəhd limiti, on-error (retry/cancel/compensate) strategiyası.
Poison-pill: N uğursuzluqlar sonra DLQ sürətli tərcümə, sahibinə alert.
Dedup: TTL pəncərələrində seen-cache (in-memory + KV).
Exactly-once effektləri: əməliyyat jurnalı/qəbzlər vasitəsilə yan təsirlərin təsdiqi.
8) Uzun və ağır tapşırıqların idarə edilməsi
Chunking: batches, checkpoint bölmək/davam.
Time-boxing: CPU/IO/şəbəkə egress məhdudlaşdırılması; tərəqqinin qorunması ilə fasilə.
Saga/kompensasiya: servislərarası addımlar üçün «undo» semantikası.
Concurrency-caps: tip/tenant/region üçün eyni vaxtda tapşırıqların limitləri.
9) Müşahidə və metrika
Traces: 'trace _ id', dastan addımları, xarici çağırışlar.
Metrics (SLI):- Başlamazdan əvvəl lag, növbə (uzunluq, yaş p95).
- Success Rate, error-rate, retry-rate.
- Latency p50/p95, time-to-complete.
- Cost per 1k tapşırıqları, egress/ingress.
- DLQ rate, poison-pill rate.
- P0 start ≤ 60 s, P1 ≤ 5 dəq; Success ≥ 99. 5%; DLQ ≤ 0. 1%; Freshness (opershine) ≤ 30 p95 ilə.
10) Audit və sübut oluna bilər
Qəbzlər: start/uğur/səhv üçün 'receipt _ hash', kritik növlər üçün DSSE imzaları (ödənişlər, qiymət vərəqləri, RTP).
WORM: Yerinə yetirmə log və tapşırıq manifestlərini saxlamaq.
Chain-of-custody: kim təyin/təsdiq/cədvəl dəyişdi; SoD yoxlama.
11) Təhlükəsizlik və Access
RBAC/ABAC/ReBAC: kim yaradır/təsdiq/start; SoD: «ödəniş yaratmaq» ≠ «təsdiq etmək».
JIT-secrets: worker qısa TTL ilə jeton tələb edir.
İzolyasiya: per-tenant/region/mesh iş hovuzları; sandbox ifası.
PII-gigiyena: maskalanma/tokenizasiya, ilkin log qadağan.
12) FinOps və dəyəri
compute/storage/egress.
Avtoskeyl workers növbələr və SLO.
Saxlama sinifləri: isti (7-30 gün) → OLAP (6-24 ay) → arxiv.
Cost-aware planlaşdırma: «ucuz saatlarda» başlanğıc pəncərəsi, egress limitləri.
13) Data modeli (sadələşdirilmiş)
14) API müqavilələri (idarəetmə/inteqrasiya)
'POST/schedules' - cədvəl (cron/cal, tz, pəncərə) yaratmaq.
'POST/jobs' - ad-hoc qoymaq; geri 'job _ id', 'receipt _ hash'.
'GET/jobs/{ id}' - status/log/qəbz.
'POST/jobs/{ id }/cancel' - kompensasiya ilə ləğv.
'GET/queues/stats' - uzunluqlar, lağlar, p95.
Вебхуки: `JobStarted`, `JobSucceeded`, `JobFailed`, `JobDroppedToDLQ`, `SLOViolated`.
15) Playbook (tipik ssenarilər)
Retry-storm: Qlobal geri çevrilmə aktivləşdirin, asılılıq vaxtını artırın, circuit-breaker aktivləşdirin, batches parçalayın.
DLQ-uçqun: qəbulu dayandırmaq, DLQ təhlili prioritet, yeni vəzifələr bufer.
Lider düşdü: təkrar seçki, idempotentlik baxımından «ikili nəşrlərin» yoxlanılması, audit.
Provayder (PSP/KYC): rezerv marşrutu, polling/vebhuk tezliyini azaltmaq, əməliyyatları karantinə keçirmək.
İş sirlərinin sızması: açarların geri çağırılması, rotasiya, 30 gün ərzində «anormal» buraxılışların axtarışı, hüquqların sızması.
16) iGaming/Fintech xüsusiyyətləri
Ödənişlər/ödənişlər: qəbzləri olan asinxron joblar, «boz» əməliyyatların karantini, deduplu növbələrin replikaları.
RTP pəncərələri/limitləri: təqvim bağlanması, müşahidə olunan vs nəzəri RTP, sürüklənərkən promo avtomatik fasilə.
Qiymət siyahıları/FX/Tax: cədvəl, artefaktların versiyası, fors-əlil cache nəşrləri.
Affiliates: konvertasiyaların müqayisəsi, veb-hook dedupu, aktlar/imzalar, mübahisələr üzrə eskrou.
17) Keyfiyyət metrikası (nümunə dəsti)
Schedule Adherence: pəncərədə başlayan tapşırıqların payı 99% ≥.
Queue Lag p95: P0 ≤ 60 c, P1 ≤ 5 dəq.
Success/Retry/DLQ Rate: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
Idempotency Errors: ≤ 0. 01%.
Cost/1k jobs və Egress/job - büdcə daxilində.
Audit Completeness: 100% qəbz ilə kritik vəzifələr.
18) RACI
19) Giriş çek siyahısı
- Tapşırıq siniflərini, prioritetləri və SLA-ları seçin; təqvimləri və taymzonları təyin edin.
- Scheduler/Dispatcher/Queue/Workers lider-elektrikləşdirmə və charding ilə yerləşdirin.
- İdempotentlik, retraj, DLQ, kompensasiya (dastan) daxil edin.
- RBAC/ABAC/ReBAC, SoD və JIT sirləri üçün çevirin.
- traces/metrics/logs, dashboard və alert daxil edin; SLO и error-budget.
- Kritik növləri üçün imzalanmış qəbzlər (DSSE) və WORM jurnalları.
- Avtoskeyl və kap-alertlər (compute/storage/egress).
- Playbook: retry-storm, DLQ-uçqun, liderin uğursuzluğu, provayder deqradasiya.
- Testlər: hər playbook üçün GameDay, enjeksiyon gecikmələr/səhvlər.
- Müntəzəm cədvəllər, növbələr və ROI avtomatlaşdırma.
20) FAQ
Niyə cron kifayət deyil?
Növbələr, idempotentlik, kilidləmə və audit olmadan cron pozğunluqlar və vaxt zonalarında pozulur.
time-based və event-driven birləşdirmək mümkündürmü?
Bəli: cron - catch-up üçün sığorta; hadisələr - reaktivlik üçün.
«Tam bir dəfə» necə nail olmaq olar?
Açar dedup, əməliyyat effekt jurnalı, qəbzlər və idempotent yan təsirlər.
«Uzun» joblarla nə etmək lazımdır?
Chank, check-point, time-boxing, kəsmək və davam etmək imkanı.
Büdcəni necə yemək olmaz?
Sıra və SLO avtoskeyl, ağır job üçün ucuz saat, sərt qapaq egress/compute.
Xülasə: Planlayıcı və fon vəzifələri platformanın istehsal konveyeridir. Cədvəllər və növbələr, idempotentlik, bloklama və müşahidə, qəbzlər/audit, tenant izolyasiyası və FinOps-nəzarət əlavə edərək, hər hansı bir bölgədə və yüklərdə proqnozlaşdırıla bilən vaxt, sürətli bərpa və qanuni əməliyyat alacaqsınız.