GH GambleHub

High Availability и SLA

High Availability и SLA

1) Տերմինները և կապը բիզնեսի հետ

SLI (Systel Level Indication) - չափված ցուցիչ (օրինակ ՝ 2xx/3xx - T ms)։

SLO (Black Level Objective) - SLI (օրինակ ՝ 99։ Հարցումների 95 տոկոսը 300 մզ")։

SLA (Black Level Agream) - հաճախորդի պայմանագրային պարտավորություն (տուգանքներ/վարկեր խախտելիս)։

HA (High Availability) - ճարտարապետական և վիրահատական միջոցներ, որոնք թույլ են տալիս կատարել SLO/SLA։

Սկզբունքը 'SLA-ն հիմնված է SLO-ի վրա, իսկ SLO-ն' դիտարկված SLI-ի վրա։ Դուք չեք կարող խոստանալ SLA-ում այն, ինչ չեք չափում։

2) «Իններորդ» և հասանելիության մաթեմատիկան

Ժամանակահատվածի հասանելիությունը = «ժամանակ _ աշխատանք/ընդհանուր _ ժամանակ»։ Ուղեցույցներ (տարվա ընթացքում)

ՀասանելիությունՄաքս։ պարզ/տարի
99. 0%3 օր 15 ժամ
99. 5%1 օր 20 ժամ
99. 9%248 ժամ 45 մ
99. 95%244 ժամ 23 մետր
99. 99%2452 մ 34 C
99. 999%245 մ 15 C

Հասանելիության բարձրացում

Հաջորդական շղթան (կախված «կարմիր ուղուց») '«A _ total = Core A _ i» (յուրաքանչյուր բաղադրիչը նվազեցնում է արդյունքը)։

Զուգահեռ բանաձև ՝ «A _ total = 1 Trave (1 www.A _ i)» (պահուստը բարձրացնում է արդյունքը)։

3) Ի՞ նչ չափել (ճիշտ SLI)

Օգտագործողի տեսակետը 'հիմնական վիրահատությունների հաջողակ ավարտը (login, դեպոզիտ, չեկ-աութ) և նրանց լատենտ p99-ը։

Ժամացույցի միջանցքը 'համախմբեք սայթաքուն պատուհաններով (5/30/60 րոպե) և տարածաշրջաններով։

Բացառություններ. «Պլանավորված պատուհանները» դիտարկվում են SLO-ում, իսկ SLA-ում 'միայն եթե դա ասվում է պայմանագրում։

SLI տեսակները

Հասանելիություն 'հաջողակ պատասխանների մասնաբաժինը T.

Որակը 'p95/p99 latency։

Բաղադրիչները ՝ «հաջողակ ավանդների մասնաբաժինը 245 s»։

4) Error Budget-ը և այրման արագությունը

Error Budget = `1 − SLO`. 99-ի համար։ Ամսական պատուհանի 95% -ը տալիս է 0։ Սխալների 0,2 %/բաց։

Burn-rate: Բյուջեի սպառման արագությունը (օրինակ 4 հազար նշանակում է, որ 6 ժամվա ընթացքում դուք ուտում եք ցերեկային սահմանը)։

Քաղաքականությունը 'արագ այրման դեպքում, ածխաջրածինների հոսքը, ֆոկուսը, feature-freeze-ը։

5) HA ճարտարապետությունը 'հանգույցից մինչև տարածաշրջան

5. 1 Հանգույց/ծառայություն

N + 1: Առնվազն մեկ ավելցուկ կրկնօրինակը (Deployant 242, PDB, anti-affinity)։

Ռեսուրսների մեկուսացումը 'CPU/RAM/IO, գերակայություններ (Priorts Class)։

Graceful shutdown/intain 'ռեստարտի հարցումների կոտրման բացակայությունը։

5. 2 Գոտի/տարածք

Multi-AZ: Տարբեր գոտիներում կրկնօրինակներ, քրոս-հովանոց հավասարակշռություն, անկախ սնունդ/ցանց։

Multi-region: 108-108 (ավելի դժվար է ՝ տվյալները/կոնսիստենտիվությունը) կամ 71-լոկոմոտիվը (ավելի պարզ ՝ RPO-ից բարձր)։

Տվյալները ՝ CP փողի/պատվերի համար (kvorum/RAFT), EC/AP քեշի/վիտրինի համար։

5. 3 Ցանցային շերտ և պարիմետր

L7-LB с health-checks, retry/timeout/circuit-breaking.

GSLB/IV/Anycript գլոբալ մրցույթի համար, կարճ TTL։

Egress-վերահսկումը և հրաժարվող ալիքները մինչև արտաքին PFC/պրովայդեր։

6) Քայքայումը ընկնելու փոխարեն

Feature kill-switch (fich-դրոշներ) 'անջատել ոչ կրիտիկական, պահպանել «կարմիր ճանապարհը»։

Պարզեցված ճանապարհների անցումը 'սինխրոն asinhron/հերթը, «ընդունվում է վերամշակման մեջ»։

Rate-limit/քվոտաներ 'ավելի լավ սահմանափակել հաճախորդներին, քան բոլորին։

Stale-ռեժիմներ 'տալ cash/ստատիկ տվյալներ origin անհասանելիության դեպքում։

7) Կախվածության կառավարումը

Կախվածության քարտեզը (wwww.map) 'ուղիղ/տրանզիտիվ, քննադատություն, SLO բոլորի։

Խոցելի կապեր 'արտաքին պրովայդերը առանց SLA-ի, շրջվում է քեշի/մեկ/կրկնօրինակով։

Bulkhead-մեկուսացում 'տարբեր փամփուշտներ 2019/քվոտաներ դանդաղ երթուղիների համար։

Timeouts> Retries: Կարճ թայմաուտներ, առավելագույն 1 ռետրա idempotent վիրահատությունների համար։

8) Վիրահատություններ և փոփոխություններ

Change to: Roads/blue-green, SLO-gats, ավտոմատ արձագանք։

Պլանավորված պատուհաններ 'ստանդարտացնել' երկարություն, հաճախականություն, հաղորդակցություն։

Միջադեպերը 'դերեր (IC/Comics/Tech/DB), runbook "և, հետմորտներ ուղղիչ գործողություններով։

Securiti-ivents-ը 'փոխզիջման ժամանակ' «panika-ռեժիմ» (read-only/tocens/անջատումը/արգելափակումը)։

9) Դիտողությունն ու ալերտինգը

RED մոդելը (Rate, Errors, Duration) յուրաքանչյուր ուղղությամբ։

SLI-dashbords: Տարածաշրջանի հասանելիությունը/լատինականությունը և հաճախորդների հատվածում։

Burn-rate ալերտները 'արագ (1h, 14։ 4 նոյեմբերի), դանդաղ (6h, 2 հազար) - ազդանշան մինչև SLO-ի խափանումը։

Exemplars (Exemplars) 'մետրից անցում դեպի trace _ id։

Սինթետիկ 'արտաքին կետերից փորձարկումներ (պարիմետրեր, հիբրիդային ֆլոու)։

10) Համառության թեստեր

Game-days: սցենարները www.AZ/տարածաշրջաններ, BD/kash քայքայումը, արտաքին պրովայդերների հրաժարումը։

Chaos-գործիքներ 'ցանցի ֆոլտներ (latency/loss), kill-pods, CPU/IO։

DR-medills: RTO/RPO-ի մշակումը Tier-0 համակարգերի համար (տե՛ ս «Bakaps և DR»)։

11) SLA նախագծումը SLA նախագծումը

«Հասանելիության» սահմանումը, որը համարվում է պատահականություն (5xx, ժամանակ> T, տիրույթի սխալները)։

Հաշվարկման պատուհանը ՝ ամիս/քառորդ; 2019/պլանային աշխատանքի բացառումը։

Վարկեր/տուգանքներ 'սանդղակ (օրինակ ՝ 99։ 9–99. 99% - X%, ցածր 'Y%)։

Հաճախորդի պարտականությունները 'ինտեգրումը, ռեակտորները ողջամիտ սահմաններում, սահմանները։

Նոտիֆիկացիան և կլիմների ընթացակարգը 'ժամկետները, ձևաչափը, ապացույցային հիմքը (լոգներ/մետրիկներ)։

Ֆորս Մաջորը 'իրավաբանական ձևակերպում և սահմաններ։

Օրինակ (էսքիզներ)

"API-ի հասանելիությունը SLI-ի վրա "հաջողակ 500ms" ոչ պակաս, քան 99։ օրացուցային ամսվա 95 տոկոսը։ Պլանավորված պատուհանները (մինչև 60 րոպե/վրկ, հայտարարված 48 ժամվա ընթացքում) բացառված են։ 99-ին։ 90–99. 95 տոկոսը վարկեր 5%; 99. 80–99. 90% — 10%; <99. 80% — 25%.»

12) Աղջիկների տնտեսությունը

Յուրաքանչյուր ավելացված «իննը» մեծանում է ոչ գծային ծախսերը (կրկնակի տարածքներ, քվորումներ, պրովայդերների դուբլներ, 24 247)։ Օգտագործեք tiering SLO։

Tier-0 (գումար/պատվերներ): 99։ 95–99. 99%, մուլտֆիլմ-AZ, DR պատրաստ է։

Tier-1 (հիմնական ֆիչին): 99։ 9–99. 95%, մուլտֆիլմ-AZ։

Tier-2 (ոչ քննադատական): 99։ 5–99. 9 տոկոսը, որը բացատրում է դեգրադացիան/ստոպը պատահականության ժամանակ։

13) HA Patterns շերտերով

Պարիմետրը ՝ CDN/edge, multi-CDN կամ GSLB, WAF, rate-limit։

Հավասարակշռություն ՝ L7-ից wwww.ier-ej.ru, թայմաուտներ/retrai, sticky/consistent-hash։

Ծրագրերը 'հորիզոնական սկեյլ, readiness/liveness, PDB, topology spread։

Տվյալները ՝ leader + replicas, CP, cash L2, idempotency, PITR։

Գծեր ՝ հացահատիկ/մուլտիկլաստեր, DLQ։

Գաղտնիքները/ալգորիթմները ՝ GitOps, ատոմային դիպուկահարներ, rollback։

14) Anti-patterna

SLA-ն առանց չափման գործիքների և արտաքին սինթեզիկայի։

Միասնական գոտի/կլաստեր որպես SPOF։

Անվերահսկելի ռեակտորները նկարագրվում են «DDoS»։

Երկար գործարքներ/մուտեկտներ տաք ճանապարհին։

«Ծանր» 108/105 առանց կանանցների և վերադարձի պլանի։

Runbook-ի բացակայությունը և սթեյքհոլդերների հետ շփումը պատահականության ժամանակ։

15) Ներդրման թուղթ (0-60 օր)

0-15 օր

Որոշել քննադատական SLI օգտագործողները, SLO տալ Tier-0/1/2 մակարդակներում։

Միացրեք burn-rate ալերտները, SLO-dashbords, պարագծի սինթետիկ ստուգումներ։

Հեռացնել SPOF: 352 կրկնօրինակներ, PDB, mensi-AZ ճակատների և քննադատական BD-ի համար։

16-40 օր

Ներմուծել SLO-geiting-ի և Auto-ի հետ։

Կախվածության քարտեզը + քվոտա/պուլա/թայմաուտներ/RF յուրաքանչյուր «կարմիր ճանապարհի» վրա։

Պլանավորված պատուհանների և հաղորդակցությունների կարգավորումը, հաղորդագրությունների օրինակները։

41-60 օր

Game-day: AZ-ի անջատումը, արտաքին պրովայդերի ձախողումը, «բուրստը»։

SLA-ի և վարկերի վերահաշվարկումը, ռուսական հաճախորդների հրապարակումը։

Մոսկվան «իններորդ գինն է» և հոսանքի խաչմերուկը։

16) Հասունության մետրերը

Կրիտիկական երթուղիների 3695 տոկոսը ունեն SLI/SLO և burn-rate ալերտներ։

SLO սխալները ուղեկցվում են ածխաջրածինների սառեցմամբ (policy)։

Multi-AZ ծածկույթը Tier-0 = 100 տոկոսը, հաջողակ DR-medills 241/թաղամաս։

«Դիֆերենցիալ միտիգացիայի» ժամանակը p50 <5 րոպե, p95 <15 ռուբլիա

«Ռուսական միջադեպերի թողարկումը» հարաբերակցությունը կատարվում է և կրճատվում է (rollback rate)։

Դեպքերի/վարկերի մասին հանրային զեկույցը N աշխատանքային օրվա ընթացքում է։

17) Օրինակներ և թերություններ

Burn-rate alerta (կանոնների գաղափարը)

Արագ '"SLO 99։ 95 տոկոսը, պատուհանը 1 ժամ, burn 3614։ 4× → page on-call».

Դանդաղ '«պատուհան 6 ժամ, burn no 2 no ticket & 105»։

Envoy — circuit breaking/outlier:
yaml circuit_breakers:
thresholds:
- max_connections: 200 max_pending_requests: 100 max_requests: 1000 max_retries: 1 outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50

Կանարեյկան SLO-ի վերլուծությամբ (Argo Rollouts, գաղափարը)

yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus

SLI ձևակերպման օրինակ


SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region

18) Եզրակացություն

High Availability-ը ոչ միայն կլաստերներ և կրկնօրինակներ են, այլ ճարտարապետության, գործընթացների և մետրերի համակարգված հավաքածու 'պարզ SLI/SLO, իրատեսական SLA, «իններորդ» տնտեսագիտության հետ, ընկնելու փոխարեն քայքայումը, թայմաուտների/քվոտաների կարգապահությունը, կանարեկային օրինակները, ուսուցումները և թափանցիկ հաղորդակցությունը։ Դարձրեք չափվող և կառավարվող հասանելիությունը, և այն կդառնա մրցակցային առավելություն, ոչ թե վիճակախաղեր։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։