დაგეგმვა და ფონის დავალებები
(განყოფილება: ოპერაციები და კონტროლი)
1) დანიშვნა
დამგეგმავი და ფონის დავალებები უზრუნველყოფს პლატფორმის დაუგეგმავ მუშაობას: პერიოდული გამოთვლები, არტეფაქტების გამოქვეყნება, სამრეცხაო და რიგების მიმღები. მიზნები - დეტერმინაცია, გაუმართაობისადმი წინააღმდეგობა და აუდიტი.
2) დავალებების ტაქსონომია
Time-based: გრაფიკის მიხედვით (cron/კალენდარი): კლირინგი, RTP ფანჯრების დახურვა, გადმოტვირთვა, არქივირება.
Event-driven: ტრიგერები საბურავიდან (PaymensEttled, PriceList განახლებადი).
One-off/Ad-hoc: ერთჯერადი ჯობი TTL- ით.
Long-running: bacof/sagi, striming compaccens.
Maintenance: კლავიშების როტაცია, განმეორება, ინდექსები, ქეში დათბობა.
3) არქიტექტურა (რეფერენდუმი)
კომპონენტები:1. Scheduler: ინახავს გრაფიკებს, CAL/cron, მომსახურების ფანჯრებს, ტაიმსონებს, შეზღუდვებს.
2. Dispatcher: per-priority/tenant/region გეგმა, ადგენს ვადებს, იდემპოტენტურ გასაღებებს.
3. Workers: სტატიკური/ავტო სკეიტი დავალებების აუზებისთვის; heartbeats, leases.
4. Queue/Bus: FIFO/პრიორიტეტიზაცია, DLQ, გადავადებული შეტყობინებები.
5. Locker/Coordination: განაწილებული ბლოკირება, ლიდერის ელექცია (Raft/ZK/Consul).
6. Vault/KMS: JIT საიდუმლოებები, მოკლე TTL.
7. Observability: traces/metrics/logs, dashbords, alerty.
8. Audit/WORM: უცვლელი ქვითრები, მერკლის ნაჭრები.
ნიმუშები: outterbox/CDC, idempotence, კომპენსაცია (საგები), 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/semafors: per რესურსი (მაგალითად, „მხოლოდ ერთი შემსრულებელი წერს ფასების ჩამონათვალს x“).
შარდვა: 'tenant/region/hash (key)'; sticky-routing ქეში და მონაცემების ადგილსამყოფელი.
ლიდერი-ელექცია: ერთი ლიდერი აქვეყნებს „სისტემურ“ ჯობას (მაგალითად, „დახურეთ ყველა RTP ფანჯარა“), მიმდევრები - ცხელი სტანდარტი.
7) საიმედოობა: retrai, impotence, dedup
Idempotent გასაღები: '(task _ type, business _ id, window)'; გამეორება - იგივე ქვითარი.
Retrai: ექსპონენციალური სარეზერვო ოფი + ჯიტერი, მცდელობის ლიმიტი, სტრატეგია on-error (retry/cancel/compensate).
Poison-pill: სწრაფი გადასვლა DLQ- ში N გაუმართაობის შემდეგ, მფლობელისთვის ალერტი.
Dedup: seen-cache (in-memory + KV) TTL ფანჯარაში.
Exactly-once ეფექტები: გვერდითი მოვლენების დადასტურება გარიგების ჟურნალის/ქვითრების საშუალებით.
8) გრძელი და რთული ამოცანების მართვა
Chunking: დაყოფა batchs, checkpoints/გაგრძელება.
Time-boxing: CPU/IO/ქსელის შეზღუდვა; შეფერხება პროგრესის შენარჩუნებით.
საგები/ანაზღაურება: სემანტიკა „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 (opershine) - 30 გვ 95.
10) აუდიტი და დადასტურება
ქვითრები: 'receipt _ hash' დაწყების/წარმატების/შეცდომისთვის, DSSE ხელმოწერები კრიტიკული ტიპებისთვის (გადახდები, ფასების სიები, RTP).
WORM: დავალებების შესრულებისა და მანიფესტების შენახვა.
შანსი: ვინ დააყენა/დაამტკიცა/შეცვალა გრაფიკი; SoD შემოწმებები.
11) უსაფრთხოება და წვდომა
RBAC/ABAC/ReBAC: ვინ ქმნის/ამტკიცებს/იწყებს; SoD: "შექმნას გადახდა" დამტკიცება ".
JIT საიდუმლოებები: ვორკერი ითხოვს ნიშანს მოკლე TTL დავალებით.
იზოლაცია: ვორკერების აუზები per-tenant/region/best; sandbox შესრულება.
PII ჰიგიენა: შენიღბვა/ტოქსიკაცია, პირველადი ლოზუნგების აკრძალვა.
12) FinOps და ღირებულება
ბიუჯეტები/კაპი ალერტები კომპლექტზე/სცენაზე/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) Playbooks (ტიპიური სცენარები)
Retry-storm: ჩართეთ გლობალური სარეზერვო ოფი, გაზარდეთ დამოკიდებულების დრო, ჩართეთ circuit-breaker, ბრძოლების გამანადგურებელი.
DLQ ზვავი: შეაჩერეთ მიღება, პრიორიტეტული DLQ ანალიზის ჩატარება, ახალი ამოცანების ბუფერიზაცია.
ლიდერი დაეცა: ხელახალი არჩევნები, „ორმაგი პუბლიკაციების“ გადამოწმება იდემპოტენტურობაზე, აუდიტზე.
პროვაიდერის შეჩერება (PSP/KYC): სარეზერვო მარშრუტი, შეამციროს polling/webhuks- ის სიხშირე, გადაიტანოს გარიგებები საკარანტინო.
ვორკერის საიდუმლოებების გაჟონვა: გასაღებების მიმოხილვა, როტაცია, 30 დღის განმავლობაში „არანორმალური“ გაშვების ძებნა, უფლებების ჭრა.
16) iGaming/fintech სპეციფიკა
გადახდა/გადახდა: ასინქრონული ჯობი ქვითრებით, „ნაცრისფერი“ გარიგების საკარანტინო, ზედამხედველობის რიგები.
RTP ფანჯრები/ლიმიტები: კალენდრის დახურვა, დაკვირვებული vs თეორიული RTP, პრომო მანქანების პაუზა დრიფტის დროს.
ფასების სიები/FX/Tax: პუბლიკაციები გრაფიკის მიხედვით, არტეფაქტების ვერსიები, ქეში ინვალიდობა.
Affiliates: კონვერტაციის შერწყმა, ვებჰუკების დედაპლატი, აქტები/ხელმოწერები, დავების ესკიზი.
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 წამყვანი ელექციით და შარდით.
- შემოიღეთ idempotence, retrai, DLQ, კომპენსაცია (საგები).
- კონფიგურაცია RBAC/ABAC/ReBAC, SoD და JIT საიდუმლოებები ვარჯიშებისთვის.
- ჩართეთ traces/metrics/logs, dashbords და alerty; SLO и error-budget.
- ხელმოწერილი ქვითრები (DSSE) და WORM ჟურნალები კრიტიკული ტიპებისთვის.
- autoskale და cap alerts ღირებულებით (compute/storage/egress).
- ფლეიბუკი: retry-storm, DLQ ზვავი, ლიდერის უარი, პროვაიდერის დეგრადაცია.
- ტესტები: GameDay თითოეული ფლეიბუკისთვის, შეფერხებების/შეცდომების ინექცია.
- გრაფიკების რეგულარული ხვრელები, რიგების ნანგრევები და ავტომატიზაციის ROI.
20) FAQ
რატომ არ არის საკმარისი cron?
რიგების, იდემპოტენტურობის, საკეტებისა და აუდიტის გარეშე, cron იშლება წარუმატებლობებზე და დროის ზონებში.
შესაძლებელია თუ არა time-based და event-driven გაერთიანება?
დიახ: cron - დაზღვევა catch-up; მოვლენები - რეაქტიულობისთვის.
როგორ მივაღწიოთ ზუსტად ერთხელ?
Dedup გასაღები, ეფექტების გარიგების ჟურნალი, ქვითრები და იდემპოტენტური გვერდითი მოქმედებები.
რა უნდა გავაკეთოთ „გრძელი“ ჯობებთან?
Chank, chekpoints, time-boxing, შეწყვეტის და გაგრძელების შესაძლებლობა.
როგორ არ „ჭამა“ ბიუჯეტი?
რიგები და SLO, იაფი საათი მძიმე ჯობისთვის, მკაცრი ქუდები egress/compute.
რეზიუმე: დაგეგმვა და ფონის დავალებები არის პლატფორმის წარმოების კონვეიერი. გრაფიკებისა და რიგების, idempotence, დაბლოკვა და დაკვირვება, დამატებით ქვითრები/აუდიტი, ჩრდილების იზოლაცია და FinOps კონტროლი, თქვენ მიიღებთ პროგნოზირებულ ვადებს, სწრაფ ჩანაწერებს და იურიდიულად შენარჩუნებულ ოპერაციებს ნებისმიერ რეგიონში და დატვირთვაში.