რესურსების განაწილება
1) ამოცანა და პრინციპები
რესურსების განაწილება არის სისტემური გზა, რომ შევადაროთ მოთხოვნა (დატვირთვა, პროექტები, ინციდენტები) წინადადებას (CPU/RAM/IO/ქსელი, ლიცენზიები, ხალხი, ბიუჯეტები) მიზნობრივი SLO და FinOps შეზღუდვები.
ძირითადი პრინციპები:- SLO-first: რესურსს აქვს ხარისხის მიზანი; მონიშნვა არის მისი გამძლეობის ინსტრუმენტი.
- Fairness + Priority: სამართლიანი წილი ყველასთვის, მაგრამ პრიორიტეტი - გარანტიები.
- Isolation: ჩვენ ზღუდავს blast-radius „შემწვარი“ დატვირთვებს.
- Elasticity: ავტომატური გაფართოება/შეკუმშვა ფაქტობრივი მოთხოვნისთვის.
- Cost-aware: თითოეულ დამატებით რესურსს უნდა ჰქონდეს გასაგები გავლენა SLO/შემოსავალზე.
- Evidence-based: გადაწყვეტილებები დასტურდება ტელემეტრიითა და ექსპერიმენტებით.
2) რესურსების ტაქსონომია
გამოთვლები: CPU/Memory/GPU, კონტეინერის აუზები, უწყვეტი კვოტები.
საცავი: IOPS/გამშვები, ცხელი/თბილი/ცივი ფენები, ქეში.
ქსელი: egress/ingress, CDN, პირადი არხები, IP აუზები.
მონაცემები: slots/ფანჯრის რესურსები DWH/striming- ში, ზურგჩანთების ფანჯრები.
ხალხი: on-call slots, IC/Release, დრო SRE/Dev (საათი/სპრინტი).
გამყიდველები: პროვაიდერების ლიმიტები (PSP/KYC/CDN), საბინაო-ლიმიტები და კონექტორები.
3) პრიორიტეტიზაციის მოდელი (პორტფელი)
Tier-0: სასიცოცხლო flow (ლოგინი, გადახდა). გარანტირებული რესურსები, ინდივიდუალური აუზები.
Tier-1: ბიზნეს კრიტიკულად (კორპორატიული პროდუქტი, D-1 ანგარიშები). სასურველი კვოტები.
Tier-2/3: დამხმარე/კვლევა. Burstable, ბიუჯეტის ლიმიტები.
პროექტები: Impact × Urgency × Confidence × Cost რანგის შეფასება; კოორდინაცია SAV/პორტფელში.
4) განაწილების პოლიტიკა (გარანტიები, კვოტები, ლიმიტები)
Guaranteed (dedicated): fix წილი/რეზერვი; Tier-0/1.
Burstable: ძირითადი კვოტა + თავისუფალი ლიმიტის დაკავების უფლება.
Best-effort: გარანტიების გარეშე, მისი განდევნა შესაძლებელია.
É ta/Limit-as-Code: ყველა კვოტა და საზღვარი აღწერილია დეკლარაციულად (პოლიტიკოსის საცავი).
Preemption/Pod Disruption Budget: ვინ შეიძლება შეიცვალოს და რა სიჩქარით.
ქსელის კვოტები: egress/tenant, პროვაიდერების კავშირების ლიმიტები.
5) მრავალმხრივი და იზოლაცია
Namespace/Account per tenant: ინდივიდუალური ლიმიტები, ბიუჯეტი, აუდიტი.
ხმაურიანი მეზობლები: cgroups/requests/limits/IO-throttling; ცალკეული მოდელები „მძიმე“ დავალებებისთვის.
P95 იზოლაცია: SLO გამოითვლება percentils, არა საშუალო; ბურსტმა არ უნდა დაარღვიოს p95 მეზობელი.
Data tenancy: ცალკეული შენახვის ფენები და ქეში VIP/რეგიონებისთვის.
6) მანქანის სკალირება და ელასტიურობა
HPA/VPA/Cluster-autoscaler: მასშტაბები SLI/SLI მარიონეტული (latency p95, queue depth) და არა მხოლოდ CPU.
scheduled scaling: წინასწარ პიკის ფანჯრები/მოვლენები.
Warm pools: გაცხელებული კვანძები/კავშირები სწრაფი სკეილაპებისთვის.
ქსელი/CDN: ავტომატური RUM/Anycast/POP დატვირთვა.
7) რიგები, მომსახურების კლასები და SLA
კლასები: 'gold/silver/bronze' მიზნობრივი ლოდინის დროით და შეცდომების ბიუჯეტით.
რიგები/საბურავები: პრიორიტეტიზაცია, ინდივიდუალური ნაწილები Tier-0, DLQ.
Backpressure: drop/shape/slow დისციპლინები ბირთვის დასაცავად.
ადაპტირებული ტაიმაუტები/რელეები: მომსახურების კლასისა და ამჟამინდელი მდგომარეობის ქვეშ.
8) ადამიანის რესურსები
ცვლა და დაფარვა: ტრაფიკის შესაბამისობა (follow-the-sun), დუბლები P1 + P2 მწვერვალზე.
ფოკუსი SRE/Dev: KPI- ით რეაქტიული/პროაქტიული დროის პროცენტი (მაგალითად, 50/50).
რესურსების მოთხოვნა: RFC შაბლონები საათების/სპრინტისთვის, გამჭვირვალე პრიორიტეტული ხაზი.
9) ფინანსური მოდელი (FinOps)
Unit ეკონომიკა: $/1k მოთხოვნა ,/$ წარმატებული გადახდა ,/GiB Logs.
ბიუჯეტები და ალერტები: კვოტები ანგარიშებზე/ტენანტებზე, გაფრთხილებები გადაადგილების შესახებ.
ოპტიმიზაცია: ცხელი/თბილი/ცივი შენახვა, ლოგინის ციმციმი, სპოტა აუზები არა-კრიტიკულისთვის.
Showback/Chargeback: გუნდების/ტენანტების ხარჯების ანგარიშები იწვევს ეფექტურობას.
10) პროვაიდერების მენეჯმენტი
ლიმიტები და ფანჯრები: TPS კონტრაქტი და ხაზები PSP/KYC/CDN; დაგეგმილი ფანჯრები კალენდარში.
Failover პროფილები: წონა და მარშრუტი რამდენიმე პროვაიდერს შორის.
პულსის მეტრიკა: რეაგირების დრო, უკმარისობა, ღირებულება/წარმატებული ოპერაცია.
11) სიმწიფის განაწილების მეტრიკა
SLO Adherence კლასებში:% შესაბამისობა ოქროს/ვერცხლის/ბრონზში.
Resource Efficience: განკარგვა CPU/RAM/IO (mediana/p95), idle- ის წილი.
Cost per SLO წერტილი: SLO მიზნის შენარჩუნების ხარჯების შეცვლა.
Throttling/Preemption: რამდენად ხშირად და ვინ გამოვიყენებთ.
Hotspot MTTA: ტყვია/ტენანტებზე რეაგირების დრო.
Fairness Index: შეფერხებების/კვოტების გავრცელება ტენანტებს შორის (ჯინი/ვარიაცია).
12) ჩეკის ფურცლები
განაწილების შეცვლამდე
- განისაზღვრება SLO და მომსახურების კლასი.
- აქ არის ტელემეტრია დატვირთვისთვის (p95/p99, ზრდა, სეზონური).
- კვოტები/ლიმიტები აღწერილია Git- ში და გაიარა შურისძიება.
- მეზობლების ეფექტები (საიზოლაციო ტესტები) შემოწმებულია.
- დაბრუნების გეგმა და guardrails მზად არის.
ყოველკვირეული ოპერაციული
- Heatmap ტყვია და hotspot ანგარიში.
- FinOps ანგარიში: $/ერთეული, ზედმეტი ხარჯები, ანომალიები.
- პროვაიდერის ლიმიტები და SLA დასრულებულია.
- რიგები: შეფერხება კლასებში, არ არის შიმშილი.
- CAPA სამსახურში გამოვლენილი ვიწრო ადგილების შესახებ.
13) შაბლონები (იდეები)
13. 1 კვოტების პოლიტიკა (YAML)
yaml tenant: vip-eu class: gold compute:
cpu:
request: "8000m"
limit: "12000m"
memory:
request: "16Gi"
limit: "24Gi"
storage:
tier: hot iops_min: 8000 network:
egress_mbps_cap: 500 slo:
latency_p95_ms: 250 preemption:
protected: true burst:
allowed: true max_factor: 1.5
13. 2 მანქანის მასშტაბის პროფილი (ფრაგმენტი)
yaml autoscaling:
metric: "queue_depth" # или biz_sli.payment_latency_p95 target: 200 min_replicas: 6 max_replicas: 60 warm_pool: 4 cooldown_sec: 120
13. 3 მომსახურების კლასი და რიგები
yaml class: gold sla:
wait_p95_ms: 150 queue:
partition: "gold-eu"
retry_policy:
attempts: 2 backoff_ms: 200 backpressure: "shape" # иначе drop/slow
13. 4 განაცხადი რესურსისთვის (ხალხი)
RFC: RES-OPS-2025-11
Цель: усилить on-call P2 на пике ноябрьских промо (EU)
Период: 2025-11-25..2025-12-05
Обоснование: прогноз трафика +30%, прошлогодний p95 MTTA ↑
Запрос: +1 P2 слот/сутки, +IC в prime-time
14) პროცედურები და ავტომატიზაცია
Planner bot: კვოტების გაანგარიშება ტრეფიკის ისტორიიდან და SLO მიზნებიდან, PR პოლიტიკოსის საცავებში.
Guardrails-bot: გაჩერებული სიგნალი deploys კვოტის არარსებობის/oversubscription.
Comms bot: ბრძანებების შეტყობინებები კლასის გადაადგილების/გადაადგილების/შეცვლის შესახებ.
განცხადებები: გამოშვებები/მომსახურების ფანჯრები ცვლის წონას/კვოტებს მუშაობის ხანგრძლივობისთვის (suppression- ის ამოღება შემდეგ).
15) ანტი შაბლონები
განასხვავეთ „შეგრძნებების მიხედვით“, SLO და ტელემეტრიის გარეშე.
ერთი დიდი აუზი ყველასთვის, „ხმაურიანი მეზობლების“ იზოლაციის გარეშე.
უკონტროლო burst ზედა ზღვრის გარეშე მეზობლების „სუნთქვა“.
backpressure/რიგების არარსებობა არის Timauts- ის თოვლის კატა.
ლოგოების/egress- ის ღირებულების უგულებელყოფა ბიუჯეტის „მშვიდი“ გაჟონვაა.
ფიქსირებული კვოტები სეზონური/მწვერვალების გარეშე არის მიუწვდომლობა ან გადაჭარბება.
16) განხორციელების გზის რუკა (4-8 კვირა)
1. ნვე. 1-2: რესურსებისა და მომსახურების ინვენტარიზაცია; კლასების დანიშნულება (gold/silver/bronze); პირველადი კვოტები; ძირითადი SLO.
2. ნვე. 3-4: ჩართეთ მანქანა-სკალირება SLI მარიონეტული; რიგების კონფიგურაცია და დაბალანსება; იზოლირება Tier-0 puls.
3. ნვე. 5-6: FinOps ანგარიშები ($/ერთეული, კვოტები, ბიუჯეტის ალერტები); warm-pools და მოხატული skals მწვერვალი.
4. ნვე. 7-8: ავტომატიზაცია Planner/Guardrails, ტენანტის ოფისი (კვოტების/ღირებულების ხილვადობა), კვარტალური მიმოხილვა fairness & hotspots.
17) შედეგი
რესურსების განაწილება არ არის ერთჯერადი კონფიგურაცია, არამედ ცოცხალი პროცესი, რომელიც ინტეგრირებულია SLO- ში, ტელემეტრიასა და FinOps- ში. როდესაც პრიორიტეტები ფორმალიზებულია, კვოტები და ლიმიტები - როგორც კოდი, იზოლაცია და ელასტიურობა - ნაგულისხმევი, და გადაწყვეტილებები დადასტურებულია მეტრიკებით და ღირებულებით, სისტემა სტაბილურად განიცდის მწვერვალებს, იცავს კრიტიკულ ფლოუებს და არ „იწვის“ ბიუჯეტს.