Жоспарлаушы және фондық тапсырмалар
(Бөлім: Операциялар және Басқару)
1) Мақсаты
Жоспарлаушы және фондық міндеттер платформаның пайдаланушыдан тыс жұмысын қамтамасыз етеді: кезеңдік есептеулер, артефактілерді жариялау, клиринг және кезектердің репликасы. Мақсаты - детерминділік, іркілістерге төзімділік және аудитке жарамдылық.
2) Міндеттердің таксономиясы
Time-based: кесте бойынша (cron/күнтізбе): клиринг, RTP терезелерін жабу, түсіру, мұрағаттау.
Event-driven: шинадан триггерлер (PaymentsSettled, PriceListUpdated).
One-off/Ad-hoc: TTL бар бір реттік джобтар.
Long-running: бэкоф/сагалар, стримингтік компакшендер.
Maintenance: кілттерді ротациялау, репэкидж, индекстер, кэшті жылыту.
3) Сәулет (референс)
Компоненттер:1. Scheduler (control-plane): кестелерді, CAL/cron, қызмет көрсету терезелерін, таймзондтарды, шектегіштерді сақтайды.
2. Dispatcher: жоспар → кезек (per-priority/tenant/region), мерзімдік, демпотенттік кілттерді қояды.
3. Workers: тапсырмалар пулына статикалық/автоскейл; heartbeats, leases.
4. Queue/Bus: FIFO/басымдық, DLQ, кейінге қалдырылған хабарлар.
5. Locker/Coordination: таратылған блоктау (leases), көшбасшы электр (Raft/ZK/Consul).
6. Vault/KMS: JIT құпиялары, қысқа TTL.
7. Observability: traces/metrics/logs, дашбордтар, алерталар.
8. Audit/WORM: өзгермейтін орындалу түбіртектері, Merkle-тіліктер.
Паттерндер: outbox/CDC, idempotency, өтемақылар (сағалар), backpressure, circuit-breakers.
4) Кестелер: cron және күнтізбелер
Cron v3: секунд/минут/сағат/күн/ай/күн-апта; «/5 », диапазондарды, тізімдерді қолдау.
Күнтізбелер/ерекшеліктер: бизнес-күнтізбесі, «тыныштық терезелері», мерекелер/DST.
Таймзондтар: 'tz' дегенді тапсырмада сақтаңыз; жергілікті уақыт бойынша тенантты іске қосу.
Мультирегион: дрейндік/қайта сайлаумен per-region немесе «жетекші өңір + фолловерлер» кестелерінің көшірмелері.
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-ресурс (мысалы, «прайс-парақ х тек бір воркер жазады»).
Шардарлау: бойынша 'tenant/region/hash (key)'; sticky-routing кэш және деректер локальдары үшін.
Электр көшбасшысы: бір көшбасшы «жүйелік» джобтарды жариялайды (мысалы, «барлық RTP терезелерін жабу»), фолловерлер - ыстық standby.
7) Сенімділік: ретра, теңсіздік, дедуп
Теңсіздік кілті: '(task_type, business_id, window)'; қайталаулар → сол түбіртек.
Ретраилер: экспоненциалдық бэк-офф + джиттер, әрекеттер лимиті, on-error (retry/cancel/compensate) стратегиясы.
Poison-pill: N іркілістерден кейін DLQ-ға жылдам аудару, иесіне алерт.
Dedup: seen-cache (in-memory + KV) TTL терезесінде.
Exactly-once әсерлері: транзакциялық журнал/түбіртектер арқылы жанама әсерлерді растау.
8) Ұзақ және ауыр міндеттерді басқару
Chunking: батчиге бөлу, чек пункттері/жалғасы.
Time-boxing: CPU/IO/желілік 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: «төлем жасау» ≠ «бекiту».
JIT-құпиялар: воркер тапсырманы сатып алу бойынша қысқа TTL токендерін сұратады.
Оқшаулау: воркер пулы per-tenant/region/тор; sandbox орындау.
PII-гигиена: бүркемелеу/токендеу, бастауышты логикалауға тыйым салу.
12) FinOps және құны
Бюджеттер/compute/storage/egress.
Кезек бойынша воркерлердің автоскейлі және 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) Плейбуктер (типтік сценарийлер)
Retry-storm: жаһандық бэк-оффты қосу, тәуелділік таймауттарын көтеру, circuit-breaker қосу, батчаларды ұсақтау.
DLQ-көшкін: қабылдауды тоқтату, DLQ талдауға басымдық беру, жаңа тапсырмаларды буферлеу.
Көшбасшы құлдырады: қайта сайлау, «қосарлы жарияланымдарды» демпотенттілік бойынша верификациялау, аудит.
Провайдер (PSP/KYC): резервке бағыт, polling/webhook жиілігін төмендету, транзакцияларды карантинге ауыстыру.
Воркер құпияларының жылыстауы: кілттерді кері қайтарып алу, ротация, 30 күн бұрын «аномальды» іске қосуларды іздеу, құқықтарды жылжу.
16) iGaming/финтех ерекшелігі
Төлемдер/төлемдер: түбіртектері бар асинхронды джобтар, «сұр» транзакциялар карантині, дедуппен кезек репликалары.
RTP терезелері/лимиттері: күнтізбе бойынша жабу, бақыланатын vs теориялық RTP, дрейф кезінде промо авто-пауза.
Прайс-парақтар/FX/Tax: кесте бойынша жарияланымдар, артефактілердің нұсқалары, кэштің форс-мүгедектігі.
Аффилиаттар: конверсияларды салыстыру, вебхуктардың дедупы, даулар бойынша актілер/қолтаңбалар, эскроу.
17) Сапа өлшемдері (теру үлгісі)
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 - бюджет шегінде.
Audit Completeness: түбіртектермен 100% сындарлы тапсырмалар.
18) RACI
19) Енгізу чек-парағы
- Тапсырмалар класын, басымдықтарды және SLA бөлектеу; күнтізбелер мен таймзондтарды анықтау.
- Scheduler/Dispatcher/Queue/Workers-ді жетекші электрмен және шардировкамен орналастыру.
- Теңсіздікті, ретрацияны, DLQ, өтемақыларды (сағаларды) енгізу.
- RBAC/ABAC/ReBAC, SoD және JIT құпияларын воркерлер үшін теңшеу.
- traces/metrics/logs, дашбордтар мен алерттерді қосу; SLO и error-budget.
- Сындарлы типтерге арналған қол қойылған түбіртектер (DSSE) және WORM журналдары.
- Құны бойынша автоскейл және кап-алерта (compute/storage/egress).
- Ойнатқыштар: retry-storm, DLQ-көшкін, көшбасшының бас тартуы, провайдердің тозуы.
- Тесттер: әрбір ойнатқыш бойынша GameDay, кідірістер/қателер инъекциялары.
- Кестелерді, кезектердің үйінділерін және ROI автоматтандыруды үнемі ревизиялау.
20) FAQ
Неге cron жеткіліксіз?
Кезексіз, теңсіздіксіз, блоктаусыз және аудитсіз cron іркілістерде және уақыт белдеулерінде бұзылады.
time-based және event-driven біріктіруге бола ма?
Иә: cron - catch-up үшін сақтандыру; оқиғалар - реактивтілік үшін.
«Бірте-бірте» қалай қол жеткізуге болады?
Кілт бойынша дедуп, әсерлердің транзакциялық журналы, түбіртектер және демпотенттік жанама әрекеттер.
«Ұзақ» джобтармен не істеу керек?
Чанк, чекпоинттер, time-boxing, үзу және жалғастыру мүмкіндігі.
Бюджетті қалай «жеуге» болмайды?
Кезек бойынша автоскейл және SLO, ауыр джобтарға арналған арзан сағаттар, egress/compute қатты қақпақтары.
Түйіндеме: Жоспарлаушы және фондық міндеттер - бұл платформаның өндірістік конвейері. Кестелер мен кезектерді, демпотенттілікті, бұғаттауды және бақылауды, түбіртектерді/аудитті, тенанттарды оқшаулауды және FinOps-бақылауды қоса отырып, сіз болжамды орындау мерзімдерін, жылдам recovery және кез келген өңірлер мен жүктемелерде заңды түрде сақталған операцияларды аласыз.