Пландоочу жана фон милдеттери
(Бөлүк: Операциялар жана башкаруу)
1) Максаты
Пландоочу жана фондук милдеттер платформанын колдонуучудан тышкаркы ишин камсыз кылат: мезгилдүү эсептөөлөр, артефакттарды жарыялоо, клиринг жана кезек репликалары. Максаттар - детерминация, үзгүлтүккө туруктуулук жана аудитке жарамдуулук.
2) Милдеттердин таксономиясы
Time-based: график боюнча (cron/календарь): клиринг, RTP терезелерин жабуу, жүктөө, архивдөө.
Event-driven: дөңгөлөк триггерлер (PaymentsSettled, PriceListUpdated).
One-off/Ad-hoc: TTL менен бир жолку джоб.
Long-running: backoff/сагалар, агымдык компакшен.
Maintenance: ачкычтарды айлантуу, repackage, индекстер, жылытуу кэш.
3) Архитектура (референс)
Компоненттери:1. Scheduler (control-plane): тартиби сактайт, CAL/cron, тейлөө терезелер, убакыт зоналары, чектөө.
2. Dispatcher: план → кезек (per-priority/tenant/region), мөөнөтүн коюп, демпотент ачкычтар.
3. Workers: статикалык/Autoscale үчүн Pool тапшырмалар; heartbeats, leases.
4. Queue/Bus: FIFO/артыкчылык, DLQ, кечигип билдирүүлөр.
5. Locker/Coordination: бөлүштүрүлгөн кулпу (leases), лидер электр (Raft/ZK/Consul).
6. Vault/KMS: JIT сырлары, кыска TTL.
7. Observability: traces/metrics/logs, dashboard, alerty.
8. Audit/WORM: өзгөрүлбөс аткаруу квитанциялары, Merkle-тилкелери.
Үлгүлөр: outbox/CDC, idempotency, компенсация (дастан), backpressure, circuit-breakers.
4) Расписание: cron жана календарлар
Cron v3: секунд/мүнөт/саат/күн/ай/күн-жума; колдоо "/5 ", диапазондору, тизмелери.
Календарлар/өзгөчөлүктөр: бизнес календары, "унчукпай терезелер", майрам/DST.
Таймзондор: 'tz' тапшырманы сактаңыз; Тенанттын жергиликтүү убактысы боюнча ишке киргизүү.
Мультирегион: per-аймак же "жетектөөчү аймак + жолдоочулары" дрейн/кайра шайлоо менен тартиби көчүрмөлөрү.
5) Кезектер, артыкчылыктар, SLA
Артыкчылыктуу класстар: P0 (критикалык), P1, P2, P3; воркерлердин өзүнчө пулдары.
SLA/мөөнөтү: 'must _ start _ by', 'must _ finish _ by'; пропуск - эскалация/ретрай.
Квоталар жана fairness: тапшырмалар боюнча caps/мин/тенант, "бурсттар" боюнча токендер, noisy-neighbors изоляциясы.
Кийинкиге калтырылган тапшырмалар: "мурда эмес" (delay/visibility timeout).
6) Атаандаштык жана бөгөт коюу
Leases: авто узартуу менен ижара (heartbeat); тайм-аут боюнча - кайра алуу.
Mutex/семафор: per-ресурс (мисалы, "X баа тизмеси бир гана воркер жазат").
Charding: 'tenant/region/hash (key)'; sticky-routing үчүн кэш жана маалымат жайгашкан.
Лидер-электр: бир лидер жарыялайт "системалык" jobs (мисалы, "жабуу бардык RTP терезелер"), жолдоочулары - ысык standby.
7) Ишенимдүүлүк: retrais, демпотенттик, дедуп
Idempotent ачкычы: '(task_type, business_id, window)'; кайталоо → ошол эле дүмүрчөк.
Retry: экспоненциалдык бэк-офф + життер, аракет чеги, on-error стратегиясы (retry/cancel/compensate).
Poison-pill: N ийгиликсиз кийин DLQ тез которуу, алерт ээси.
Dedup: seen-cache (in-memory + KV) боюнча TTL терезелер.
Exactly-once эффекттери: транзакциялык журнал/квитанциялар аркылуу терс таасирлерди ырастоо.
8) узак жана оор милдеттерди башкаруу
Chunking: батчиге бөлүү, текшерүү пункттары/уландысы.
Time-boxing: CPU/IO/Network egress чектөө; прогрессти сактоо менен үзгүлтүккө учуратуу.
Сагалар/компенсациялар: сервистер аралык кадамдар үчүн "undo" семантикасы.
Concurrency-caps: түрү/Тенант/аймак боюнча бир эле учурда милдеттерди чектөө.
9) Байкоо жана метрика
Traces: 'trace _ id', саганын кадамдары, тышкы чакырыктар.
Metrics (SLI):- баштоо үчүн Lag, кезек (узундугу, жашы p95).
- Success Rate, error-rate, retry-rate.
- Latency p50/p95, time-to-complete.
- Cost per 1k тапшырмалар, egress/ingress.
- DLQ rate, poison-pill rate.
- P0 баштоо ≤ 60 с, P1 ≤ 5 мин; Success ≥ 99. 5%; DLQ ≤ 0. 1%; Freshness (опершина) ≤ 30 менен p95.
10) Аудит жана далилдүүлүк
Дүмүрчөктөр: старт/ийгилик/ката үчүн "receipt _ hash", маанилүү түрлөрү үчүн DSSE кол тамгалар (төлөмдөр, баалар, RTP).
WORM: аткаруу логдору жана тапшырмалардын манифесттерин сактоо.
Chain-of-custody: ким койду/бекитилген/өзгөртүү тартиби; SoD текшерүү.
11) Коопсуздук жана жеткиликтүүлүк
RBAC/ABAC/ReBAC: ким жаратат/жактырат/ишке киргизет; SoD: "төлөм түзүү" ≠ "бекитүү".
JIT-Secrets: Воркер кыска TTL тапшырмасы менен токендерди сурайт.
Изоляция: Worker пулдар per-tenant/аймак/тор; sandbox аткаруу.
PII-гигиена: маскировка/tokenization, баштапкы логин тыюу салуу.
12) FinOps жана наркы
compute/storage/egress боюнча бюджеттер/cap-алерт.
Autoscale Worker кезек жана SLO.
Сактоо класстары: ысык (7-30 күн) → OLAP (6-24 ай) → архив.
Cost-aware пландаштыруу: "арзан саат" ишке терезе, egress боюнча чектөөлөрдү.
13) Маалыматтар модели (жөнөкөйлөштүрүлгөн)
14) API келишимдер (башкаруу/интеграция)
'POST/schedules' - график түзүү (cron/cal, tz, терезелер).
'POST/jobs' - ad-hoc менен камсыз кылуу; кайтаруу 'job _ id', 'receipt _ hash'.
'GET/jobs/{ id}' - статус/журнал/квитанциялар.
'POST/jobs/{ id }/cancel' - компенсация менен жокко чыгаруу.
'GET/queues/stats' - узундугу, лагдар, p95.
Вебхуки: `JobStarted`, `JobSucceeded`, `JobFailed`, `JobDroppedToDLQ`, `SLOViolated`.
15) Playbook (типтүү жагдайлар)
Retry-storm: глобалдык бэк-оффту күйгүзүү, көз карандылыктын таймаутун көтөрүү, circuit-breaker күйгүзүү, батчаларды майдалоо.
DLQ көчкү: кабыл алууну токтотуу, DLQ талдоо артыкчылык, жаңы милдеттерди буферизациялоо.
Лидер төмөндөдү: кайра шайлоо, "кош басылмаларды" демпотенттик боюнча текшерүү, аудит.
Провайдер (PSP/KYC): резервге каттам, polling/webhook жыштыгын азайтуу, транзакцияларды карантинге өткөрүү.
Уоркердин сырларын ачыкка чыгаруу: ачкычтарды чакыртып алуу, ротация, 30 күндүн ичинде "аномалдуу" учурууларды издөө, укуктарды кыйкыруу.
16) iGaming/Fintech өзгөчөлүктөрү
Төлөмдөр/төлөмдөр: дүмүрчөктөрү бар асинхрондук джобдор, "боз" транзакциялардын карантини, чоң атасы менен кезек күүлөрү.
RTP терезелер/лимиттер: календардык жабуу, байкалган vs теориялык RTP, авто-тыныгуу промо дрейф.
Прейскуранттар/FX/Tax: графиги боюнча жарыялоо, артефакттардын версиясы, форс-майыптык кэш.
Аффилиаттар: конверсияларды салыштыруу, вебхуктарды дедуп, актылар/кол тамгалар, талаш-тартыштар боюнча эскроу.
17) Сапат Metrics (мисал топтому)
Schedule Adherence: терезеде башталган милдеттердин үлүшү ≥ 99%.
Queue Lag p95: P0 ≤ 60 с, P1 ≤ 5 мин.
Success/Retry/DLQ Rate: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
Idempotency Errors: ≤ 0. 01%.
Cost/1k jobs жана Egress/job - бюджеттин ичинде.
Аудит Completeness: 100% дүмүрчөктөр менен маанилүү милдеттерди.
18) RACI
19) Киргизүү чек-тизмеси
- Милдеттердин класстарын, артыкчылыктарын жана SLA; календарларды жана таймзондорду аныктоо.
- Лидер-электр менен Scheduler/Dispatcher/Queue/Workers жайгаштыруу.
- Демпотенттик киргизүү, retry, DLQ, компенсация (дастан).
- Workers үчүн RBAC/ABAC/ReBAC, SoD жана JIT сырларды орнотуу.
- traces/metrics/logs, dashboard жана alerts кирет; SLO и error-budget.
- Кол коюлган дүмүрчөктөр (DSSE) жана оор түрлөрү үчүн WORM журналдар.
- Autoscale жана Cap-Алерт наркы (compute/storage/egress).
- Playbook: retry-storm, DLQ-кар көчкү, лидердин баш тартуусу, провайдердин деградациясы.
- Tests: ар бир playbook үчүн GameDay, Injection кечигүү/ката.
- Расписание үзгүлтүксүз ызы-чуу, кезек жана ROI автоматташтыруу.
20) FAQ
Эмне үчүн cron жетишсиз?
Кезек жок, демпотенттик, блоктор жана аудит cron үзгүлтүккө жана убакыт алкактарында бузулат.
time-based жана event-driven айкалыштырууга болобу?
Ооба: cron - catch-up үчүн камсыздандыруу; окуялар - реактивдүүлүк үчүн.
Кантип "так бир жолу" жетишүү керек?
Ачкыч боюнча дедуп, транзакциялык эффекттер журналы, квитанциялар жана демпотенттик терс таасирлер.
"Узун" Джоб менен эмне кылуу керек?
Чанк, чекпоинттер, time-boxing, үзгүлтүккө учуратуу жана улантуу мүмкүнчүлүгү.
Кантип бюджетти "жебеш" керек?
Autoscale кезек жана SLO, оор джоб үчүн арзан саат, катуу капка egress/compute.
Резюме: Пландоочу жана фон милдеттери - бул платформанын өндүрүштүк конвейери. Графиктерди жана кезектерди, демпотенттикти, бөгөттөөнү жана байкоону, квитанцияларды/аудитти, тенанттарды изоляциялоону жана FinOps-контролду кошуу менен, сиз каалаган аймактарда жана жүктөрдө болжолдуу аткаруу мөөнөттөрүн, тез калыбына келтирүүнү жана мыйзамдуу түрдө сакталган операцияларды аласыз.