Կարողությունների պլանավորում
1) Ի՞ նչ է հզորության պլանավորումը, և ինչո՞ ւ է այն անհրաժեշտ։
Կարողությունների պլանավորումը (capacity planning) համակարգված գործընթաց է գնահատելու և ապահովելու ռեսուրսները, որոնք անհրաժեշտ են SLO-ի գնման համար նվազագույն արժեքով։ Խոսքը ոչ միայն CPU/հիշողության մասին է, այլ նաև ցանցերի, պահպանման, BD/kesh-ի, իրադարձությունների հերթերի/անվադողերի մասին, արտաքին պրովայդերների (վճարումներ/KUS/հակաֆրոդ), ինչպես նաև ռուսական ռեսուրսների (on-call, աջակցություն)։
Նպատակները
Կատարել SLO/SLAS նույնիսկ պիկի և քայքայման մեջ։
Նվազագույնի հասցնել TCO և պարզ կապիտալը (overprovisioning)։
Նվազեցնել ռեսուրսների սպառման ռիսկը (saturation 4999/սխալ)։
Ապահովել էքսպորտների և քարոզարշավների կանխատեսելիությունը (մարքեթինգը, մրցույթները, լավագույն խաղերը)։
2) Մուտքային տվյալները և ճշմարտության աղբյուրները
Դիտարկումը ՝ RPS/concarrention, p50/p95/p99, error-rate, saturation (CPU, mem, prok IOPS, ցանցային ppps/mbps), հերթերի երկարություն, rate limits։
Բիզնես իրադարձություններ 'քարոզարշավների օրացույցներ, սեզոնային (երեկո/հանգստյան/մեգա-իվենտներ), տարածաշրջաններ/իրավասություններ։
Techdolg/fics: roadmap Roadmap, ճարտարապետական փոփոխություններ (օրինակ, կոդավորումը, նոր տրամաբանությունը)։
Պրովայդերներ 'քվոտաներ և throughput ստացիոնար/KUS/փոստի/հակաֆրոդների ծառայություններ։
Անցյալի միջադեպերը 'որտեղ նեղ տեղ (BD, kes, L7 հավասարակշռող, անվադողեր, CDN, սկավառակ)։
3) Հիմնական հասկացությունները և բանաձևերը
Headrome-ը տարաների պահուստն է '«headrome = (max _ կայուն _ RPS )/maks _ կայուն _ RPS»։
20-40 տոկոսը (կրիտիկական հոսքերի համար)։
Saturation-ը զբաղված ռեսուրսի հարաբերությունն է հասանելի (CPU%, հիշողությունը/GC, միացություններ, descriptors, IOPS, գծի խորությունը)։
Throughput-ը կայուն արագություն է, որի դեպքում p99 և error-rate-ը կատարում են SLO-ն երկար (ոչ միանգամյա բարձրացում)։
Capacity Unit (CU) - կոդավորման համար նորմալ հզորության միավորը (օրինակ, X RPS-ը մեկ pod vCPU = 1, RAM = 2 GiB)։
Համակարգային սահմանը max առանց քայքայման '«N _ pods no CU»։ Կարևոր է հաշվի առնել shared կախվածությունը (BD/kes/անվադողեր)։
4) Պահանջարկի մոդել 'կանխատեսում
Վիճակագրությունը 'շաբաթական/ամենօրյա սեզոն, արձակուրդներ, սպորտային ֆինանսներ, տարածաշրջանային պիկի։
Կոգորտները 'երկրներով, էքսպեդերներով, սարքերով, VIP հատվածներով։
Իրադարձական հանգստավայրերը 'արշավների/թնդանոթների/սուլֆերի/SEO-ի ազդեցությունը։
«Ինչ եթե» (scenario planning): + 50 տոկոսը հետաձգման 19: 00-22: 00; A- ի պրովայդերի նվազումը բացատրվում է B-ով (+ 30 տոկոսը լատենտ)։
Real-time 2019: nowcasting lid-metriks (նստարանների վերածնունդ, խաղի հերթը, զամբյուղները)։
5) Առաջարկի մոդելը 'որտեղ «կոտրվում է» շղթան
Հարցման փոխակրիչը 'Edge/CDN www.L7-հաշվապահը www.kesh wwww.BD wwww.արտաքին API-ն/անվադողերը/ETL-ն։
Յուրաքանչյուր օղակի համար մենք արձանագրում ենք
Հզորություն (CU/instans), մեծացում (հորիզոն/ուղղություն) , սահմաններ (կոննեկտներ, pps, IOPS), ազդանշաններ։
Մերժման քաղաքականությունը (rate limit, circuit breaker, դեգրադացիա)։
SLO տեղական և նրանց ներդրումը e2e-SLO-ում։
6) Պահուստն ու սխալների բյուջեն
Մենք կապում ենք headrope-ը error budget-ի հետ, ավելի քիչ բյուջեներ են ավելի շատ։
Կրիտիկական հոսքերի համար (վճարում/հավատարմագրում) - headrome ավելի բարձր, երկրորդական հոսքերի համար 'ցածր։
Սառը/տաք պահուստներ 'ակտիվացված պիկի/պատահարի ժամանակ։
7) Լայնացում 'մարտավարություն
HPA (բեռի մետրերով): RPS, latency, գծի երկարությունը, SLIs օգտագործողները (better than CPU%)։
MSA 'ռեսուրսների ավելացում ենթաբաժիններին (ավելի ուշադիր ստատեֆուլից և p99 GC)։
KEDA/ադապտերներ 'արտաքին աղբյուրների մասշտաբը (Kafka lag, Redis length, CloudQueue depth)։
Warm poo.ru/progue: նախապես բարձրացված instans, որպեսզի խուսափեն սառը մեկնարկից։
«Load-as-Code» -ի մոտեցումը 'ավտո սկեյլ/լիմիտներ/թայմաուտներ/ռեգացիաներ տարբերակվում և անցնում են ակնարկ։
8) Գծեր, backpressure և պոչի կառավարում
Նպատակը 'կանխել p99-ի լավատեսական աճը։
Մենք սահմանափակում ենք զուգահեռականությունը և գծի չափը, ներկայացնում ենք ժամանակավոր պատուհաններ և կուռքեր։
Hedging/Retry-budget: սահմանափակել օգտագործողի և համակարգի ժամանակի ընդհանուր բյուջեն։
Graceful degradation: անջատել երկրորդական ֆիգուրը բեռնման ժամանակ։
9) BD, keshi և պահեստ
ԲԴ ՝ Կոնեկտների սահմանափակում ,/FSync, ինդեքսներ, հարցումների պլան, replica lag, hot-keys/սեղաններ, max TPS գործարքների համար։
Քեշի 'hit-ratio հատվածներում, «պրոմախի փոթորիկը» արտանետման/հաշմանդամության ժամանակ, միգրանտների բաշխումը։
Սթորաջը ՝ IOPS/throughput, ուշացումներ, ագրեսիա, TTL, հին կուսակցություններ/սարքավորումներ մաքրելը։
Միգրացիայի սխեման 'expand www.migrate www.ract առանց կանգ առնող բլոկների։
10) Իրադարձությունների հոսքերը և ETL-ը
Kafka/shina 'կուսակցության, lag, ISR, compaction, արտադրողների/կոնսուումերների սահմանները։
ETL/batchi: գործարկման պատուհանները, ժամանակի բյուջեները, prottle I/O ազդեցությունը։
Idempotenty և exactly-once-like-ի համար կրիտիկական ֆլոուի համար (վճարումներ/հավասարակշռություններ)։
11) Ցանցը և պարիմետրը
L4/L7 հավասարակշռիչները ՝ connational limits, www.n backlog, TMS 24load, session reuse։
CDN/Edge: բաց, քաշ քաղաքականություն origin-բեռի նվազեցման համար։
Ներգանգային լիմիտներ ՝ pps/mbps CPC/ենթահամակարգում, egress-արժեքը (FinOps)։
12) Multiregion, DR և իրավասություն
Ռազմավարություններ ՝ actival (GSLB/Anycript), active-passive (տաք/տաք/սառը DR)։
N + 1 տարածաշրջաններում 'դիմակայել AZ/տարածաշրջանի կորստին, երբ պահպանվում է SLO-հոսքերը։
Իրավաբանական տեղայնացումը 'բաժանումը/տվյալները երկրներով, տարբեր լիմիտներ և SLO պրովայդերների վրա։
DR թեստերը ՝ www.game-days, իրական բեռի փոխանցումով։
13) Արտաքին պրովայդերներ 'քվոտաներ և երթուղիներ
Վճարումները/KYC/հակաֆրոդ/փոստ/SMS 'TPS, burst, ցերեկային լիմիտներ։
Multi-պրովայդեր 'լատենտ/հաջողություն, SLO per, Auto-feilover։
SLA պայմանագրերը 'e2e-SLO, էսկալացիայի ջրանցքները, վեբհուկի կարգավիճակը։
14) FinOps: արժեքը և արդյունավետությունը
TCO: comporation + storage + network egress + լիցենզիա/պրովայդերներ + հերթապահություն։
Unit Economics: 1,k հարցման/1 դեպոզիտային վիրահատության/1 KYC-ի արժեքը։
Օպտիմիզացիան 'right-sizing, spot/նախածանցային զեղչեր, kash-hitrait, dedop logs/հետքեր, սառը պահպանման մակարդակներ։
Բեռի տեղափոխումը ժամանակի մեջ 'ոչ կրիտիկական մարտեր «գիշերային» պատուհաններին և էժան տարածքներին։
15) Դաշբորդներն ու հաշվետվությունները (նվազագույն հավաքածու)
Capacity Overview:- Ներկայիս ww.vs կայուն throughput օղակների վրա։
- Headro.ru ծառայությունների և տարածքների մասին; կանխատեսումը 24/72 ժամ։
- KPI FinOps: դոլար/1k հարցումներ, դոլար/դեպոզիտ։
- Լավագույն նեղ տեղերը (p99, saturation, lag), DR։
- Հաջողության/լատենտ և պրովայդերների լիմիտներ; կատարվում է երթուղիների մասնաբաժինը։
- Դեղագործական/ինդեքսների/օպտիմիզացման պլանը, ակնկալվող խնայողությունները/տարաների աճը։
16) Գործընթացներ և դերեր
RACI: Պլատֆորմեննայան (infra/07/հավասարակշռիչներ), BD/Տվյալները (ինդեքսներ, վերարտադրողականություն), Ծառայողական թիմերը (ավելացում/քեշը), SNE (SLO, alerts), Sec/Compliance (ծպտյալ/ամսագրեր), Ֆինանսներ (բյուջե)։
Ռիթմ ՝ Շաբաթական capacity-review (ճանապարհային քարտեզը, կանխատեսումը, ռիսկերը), ամսական FinOps-ը, եռամսյակային DR թեստերը։
Change Express: մեծ արշավներ/ֆորումներ անցնում են capacity-gate (չեկ-թուղթ ներքևում)։
17) Չեկի և քարոզարշավների ցուցակը (capacity-gate)
- Պիկի բեռի կանխատեսումը և «+ x% արտակարգ պոչը»։
- Հասանելի headro.ru հոսքերի համար (վճարումներ/KUS/login)։
- Պրովայդերները ապացուցված են քվոտաներ; այլընտրանքային երթուղիները ակտիվ են։
- HPA/KEDA շեմերը և warm-pool-ը տրամադրված են։
- Գծերը/լիմիթները և դեգրադացիաները ստուգված են (պլեյբուսները պատրաստ են)։
- Կանարեկային բաժնետոմսերը և ավտոմեքենաները ներառված են։
- Dashbords/alerta (burn-rate, saturation, p99) ստուգված են։
- DR պլանը և էսկալացիայի կապը արդիական են։
18) Anti-patterna
«CPU <70 տոկոսը լավ է» ՝ անտեսելով կախվածության սահմանները (BD կոնեկտներ, IOPS, գծեր)։
Կենտրոնացված «սև արկղը» առանց per-օղակի, անհնար է հասկանալ, թե որտեղ է սահմանը։
Քեշի ռազմավարության բացակայությունը 'բացթողումները, երբ ֆորումը սպանում է origin-ը։
Hardcod limites retraev առանց պահանջների 'հարցումների փոթորիկ։
«Վճարումների մեկ պրովայդեր» -ը գագաթնակետին հրաժարվելու կետն է։
Տաք պաշարների անտեսումը սառը սկիզբն է ՝ որպես պատճառը։
Ոչ ռուսական DR թեստեր, պլանը չի աշխատում, երբ այն անհրաժեշտ է։
19) Մինի-Կալմաշ (օրինակ)
X 'կայուն 350 RPS pod (vCPU = 1, RAM = 2 GiB)։ Նպատակը 5000 RPS է, headrope 25 տոկոսը։
Անհրաժեշտ ուժը = "5000/0։ 75 = 6667 RPS`.
Պոդով = «ceil (6667/350) = 20»։ Գումարած warm-pool 15 տոկոսը ևս 3 pod է։
ԲԴ ՝ 12k TPS-ի սահմանը, ընթացիկ վարկը 9k TPS, պիկի կանխատեսումը 10։ 5k TPS-ը 1։ 5k (14%). Անհրաժեշտ է 'ինդեքսներ/շարդինգ/կրկնօրինակներ կամ կանխիկացում մինչև 8-ը նվազեցնելու համար։ 5k.
Պրովայդեր A (KYC) 'քվոտա 120 rps, Pik 95 rps, քարոզարշավը + 40 տոկոսը ՝ 133 rpps> քվոտաներ, ուղղորդում 70% A/30% B։
20) Capacity planning ներդրումը
1. Նկարագրել e2e ճանապարհը և նեղ վայրերը։
2. Ներդնել CU-ն և չափել յուրաքանչյուր շերտի կայուն throughput։
3. Միացրեք saturation և p99 մետրերը բոլոր օղակներում։
4. Ձևավորել իրադարձությունների/քարոզարշավների/ֆորումների օրացույցը։
5. Կառուցել կոգորտների և սցենարների կանխատեսում «ինչ եթե»։
6. Համախմբել headroper-հոսքը և per-տարածաշրջանը (կապված է error budget)։
7. Տեղադրել HPA/MSA/KEDA + warm-pooics, limits/retrai/հերթեր։
8. Ստուգել պրովայդերական քվոտաները, ներառել մուլտֆիլմ-երթուղիները։
9. Հավաքել dashbords և շաբաթական capacity-review ռիթմը։
10. Եժեքվարտալ 'DR ուսուցումները և ռուսական մոդելները։
21) Արդյունքը
Կարողությունների պլանավորումը կանխատեսումների, ճարտարապետական սահմանափակումների և արժեքի կառավարվող կապն է, և ոչ թե «ավելացնել CPU»։ Երբ e2e ուղու յուրաքանչյուր շերտ ունի չափված հզորություն, իսկ headrome-ը և քայքայման ռազմավարությունը կապված են SLO-ի և error budget-ի հետ, ապա գագաթնակետային բեռները, արշավները և վթարները դադարում են անակնկալ լինել։ Այս մոտեցումը նվազեցնում է միգրացիայի ռիսկը, կայունացնում է բիզնեսի մետրերը և օպտիմիզացնում ծախսերը։