PSP-X latency & loss
(Բաժին ՝ Տեխնոլոգիաներ և ենթակառուցվածքներ)
Live ռեզյումե
Chaos Contineering-ը մի գիտական մեթոդ է, որը վաճառում է, դուք ձևակերպում եք կայունության վարկած, խախտում եք շրջակա միջավայրը վերահսկվող ձևով և ապացուցում, որ օգտագործողի արժեքը (SLO/բիզնես) պահպանվում է։ IGaming-ի համար սրանք վճարումների ստուգումներ են (PSA), խաղերի նախաձեռնումը, եզրակացությունների հերթերը, multregion-ը և PR-ը 'ուշացման, մերժման և «փոթորկի» պայմաններում, մինչև դա տեղի ունենա կենդանի օգտագործողների հետ։
1) Քաոս ինժեներինգի սկզբունքները
1. Steady-state-ից հիպոթեզի։ Ռուսական նորմ 'Availability, p95/p99, TTW, վճարման ծրար։
2. Փոքր blast radius. Փորձարկումը նախ staging/kanara, 1-5 տոկոսը 2019/1-2 օդ/մեկ տարածք։
3. Առաջին հերթին դիտարկումը։ Metriks/logs/treiss + փորձի անվանումները։
4. Guardrails и abort. SLO/բիզնես KPI-ի կոշտ շեմերը ավտոմատ կանգնելու համար։
5. Կրկնություն և ավտոմատիզացիա։ Փորձարկումները որպես կոդ (IaC/GitOps), game-day պլանը։
6. Blameless մշակույթը։ Փորձը ոչ թե մեղավոր գտնելն է, այլ թույլ տեղերի որոնումը։
2) Steady-state-ը և հաջողության մետրերը
TexSLI: p95/p99 API, error-rate, saturation (CPU/IO), queue lag (withdrawals/deposits), latency պրովայդերներ։
Բիզնես-SLI-ը '«attempt success», TTW p95, «game init» հաջողությունը, PBS-ի կոդի ձախողումների մասը։
Հիպոթեզը (օրինակ)
3) Փորձարկումների դասարաններ («կոտրում»)
Ցանցը ՝ latency/jiter/packet loss/blackhole, RF-ձախողումներ, MTU-անոմալիաներ։
Ресурсы: CPU throttle, memory pressure/OOM, disk IOPS/space, file-descriptor exhaustion.
Գործընթացները և կայքերը ՝ kill/evict, node failure, zone/region failover։
Կախվածությունը 'PMS-timauts/սխալներ, խաղերի պրովայդերի անհասանելիությունը, CDN/քեշի քայքայումը։
Հերթերը/սթրիմինգը 'Kafka lag-ի աճը, կոնսուումերների դադարը, կուսակցության/առաջնորդի կոտրումը։
Տվյալները/BD 'վերարտադրության ուշացում, ինդեքսների քայքայումը, read-only ռեժիմը։
Ալգորիթմներ/ֆիչեֆլագներ 'ներարկումներ, սխալ եզրեր, kill-switch։
Ճակատ/RUM 'LCP/INP անկում, հաճախորդի ներկեր պիկի մեջ։
System/ML 'ավարտի ծերացումը, մոդելի latency բարձրացումը, tokens/s անկումը, որակի դեգրադացիան։
4) Գործընթացը 'հիպոթեզից մինչև բարելավում
1. Ձևակերպել հիպոթեզը (կոնկրետ SLO/բիզնես KPI + պահպանողական վարքագիծը)։
2. Նախագծել փորձը 'ձախողման տեսակը, տևողությունը, blast radius, guardrails/abert։
3. Պատրաստել դիտարկումը 'dashbords «releae/experiment compare»,։
4. Սկսել IM/TL վերահսկողության տակ, տեղեկացնել on-call/բիզնեսը (եթե ազդում է)։
5. Չափել արդյունքը 'SLO, p95/p99, TTW, ծրար, լագեր, retrai։
6. Ձևավորել action items: limits, timauts, retray ջիթերի, www.ier-eject, PDB/HPA/KEDA, Flow-ի արձագանք։
7. Ավտոմատիզացնել (ներառել game-day/CI ենթակառուցվածքի ստուգման մեջ)։
5) Guardrails-ը և կանգառի չափանիշները
Աբիբը անմիջապես, եթե
SLO fox-burn ակտիվացված է (օրինակ, 14 ռուսական բյուջեն 1 ժամ),
Վճարման հակադարձումը ավելի քան 0 է։ 3 p.p.,
TTW p95> 3 րոպե անընդմեջ 10-15 րոպե,
error-rate > 1. Հինգ տոկոսը աճում է երկու պատուհաններում։
Հաղորդակցություն 'նախապես հաստատված ջրանցք/կարգավիճակը, «կարմիր կոճակը» ChatOps-ում («/experiment abere »)։
6) Փորձերի օրինակներ (Kubernetes/ամպեր)
6. 1 Ցանցային ուշացումները PFC-ի (Կանարյան դոպլան)
Նպատակը 'ստուգել հետքերը/թայմաուտները/միկրոակտիվացումը։
Միգրացիա ՝ + 200 ms RTT և 3 տոկոսը packet loss-ի համար միայն «payments-api» -ի համար։
Կեղծ մանիֆեստ (գաղափարը ցանցային քաոսի համար)
yaml apiVersion: chaos/v1 kind: NetworkChaos metadata: { name: psp-latency-canary }
spec:
selector: { labelSelectors: { app: payments-api, track: canary } }
direction: to target:
selector: { namespace: prod, ipBlocks: ["10. 23. 0. 0/16"]} # addresses pspX egress action: delay delay:
latency: "200ms"
jitter: "50ms"
correlation: "0. 5"
loss:
loss: "3"
correlation: "0. 3"
duration: "10m"
mode: one # minimum blast radius
Ակնկալվող ՝ p95 '/deposit '<250 ms, error-rate <1%, փոխադարձություն www.baseline 240։ 3 p.p.; վատթարանում է PSA-ի շարժիչը։
6. 2 Հանգույցի մերժումը և PDB
Նպատակը 'ստուգել PDB/anti-affinity/HPA-ն։
Միգրացիա: intain/terminate մեկ նոդա '«games-api» ենթատեսակներով։
Սպասումը 'հասանելիության կորուստ չկա, պինդ p99-ը չի դուրս գալիս SLO-ից, autoscaler-ը կրկնօրինակում է, PDB-ն կանխում է «կրկնակի հարվածը»։
6. 3 Kafka lag и KEDA
Նպատակը 'միջոցների դուրսբերման կայունությունը հաղորդագրությունների կուտակման ժամանակ։
Միգրացիա 'սառեցնել վահանակները 5-10 րոպե, ապա միացնել։
Սպասումը 'KEDA-ն ավելացնում է վորկերները, TTW p95-ը մնում է 353 րոպե հետո, չկա կրկնօրինակներ (idempotenty, բանալիներ)։
6. 4 RF-ձախողումը խաղերի պրովայդերի ձախողումը
Նպատակը 'fallback/cashing/retrai։
Միգրացիա: NXDOMAIN/timeout տիրույթի համար 'providera A։ example`.
Սպասումը 'արագ ֆոլբեքը' «providerB», UI-ում 'դեգրադացիոն ռեժիմը և կարգավիճակի դրոշը, «game init success» -99։ 5%.
6. 5 Read-only BD
Նպատակը 'վարքագիծը ձայնագրման կորստի ժամանակ։
Միգրացիա 'կրկնօրինակի փոխակերպումը read-only-ում 10-15 ռուբլիով
Սպասումը 'կոդը ճիշտ կերպով վերամշակում է սխալները, քննադատական երթուղիները սահմանափակ են, հերթերը պահում են գրանցումը, չկա ոչ պաշտոնական/կրկնակի ապամոնտաժում։
7) Ավտոմատիզացիա և GitOps
Փորձարկումները որպես կոդ 'պահպանեք սցենարները/պարամետրերը/guardrails Git-ում, PR-ի միջոցով։
Game-day-ի պլանը '108, սեփականատերերը, մետրերը, abox-պայմանները, հաղորդակցության չեկը։
Grafana-ում ծանոթությունները 'փորձի սկիզբը/ավարտը, դելգը, SLO-ը։
8) Քաոսի ժամանակ դիտելը
Exemplars: p95/p99-ից հատուկ «trace _ id» -ում։
Логи: поля `experiment_id`, `fault_type`, `retry_attempt`, `degrade_mode=true`.
Թրեյսներ ՝ արտաքին մարտահրավերները նշված են «fox»։ injected = dive ', կարելի է տեսնել retrai/timautes։
Dashbords: «SLO քարտեզը», rele.ru/experiment compare, Payments/Game init/Queues։
9) iGaming-ի առանձնահատկությունները
1. Վճարումները և TTW 'PMS թայմաուտները, ֆոլբեքը, կուռքերը։
2. Խաղերի նախաձեռնումը 'ստուդիաների անհասանելիությունը/դանդաղությունը, CDN-ձախողումները։
3. Եզրակացությունների/բոնուսների հերթերը 'lag աճը, վերարտադրումը։
4. Մուլտրեգիոն 'գոտու/ROR, առաջնորդի փոփոխություն, BD կրկնօրինակումը։
5. Պիկի 'ավտո-սկեյլ, rate-limit, circuit-breaker, տաքացնելով։
6. RG/Compli.ru: լոգիստիկայի ճկունությունը ձախողումների ժամանակ, PII-ի բացակայությունը հեռուստատեսությունում։
10) Ձեռնարկության կառավարումը (governae)
Օրացույցը և պատուհանները 'փորձարկումներ պիկային մրցույթներից դուրս, որոնք համագործակցում են բիզնեսի հետ։
Роли: Experiment Lead, Observer (SRE), Business Rep; IM տաք գծի վրա։
Տվյալների քաղաքական գործիչները 'ոչ PII արտեֆակտներում։ WORM-2019 մրցույթի համար։
Իրավաբանական սահմանները 'բացառել SLA-ի խախտող սցենարները առանց համաձայնության։
11) Game-day: սցենարի ձևանմուշ
12) Տիպիկ գտածոներ և գործողություններ
Չափազանց ագրեսիվ retrays տրամադրվում է հարցումների փոթորկի միջոցով, որպեսզի ավելացնենք թայմաուտներ/ջիտթեր/լիմիտներ։
Ոչ www.ier ej.ru-ը «թունավոր» instans-ը փչացնում է p99-ը։
Pread-only-ը կոտրում է www.expand www.migrate www.ract + ficheflay հոսքը։
Սխալ HPA ազդանշանը ավելի ուշ պատրաստվում է անցնել RPS/lag մետրերին։
Kash-ը ընդհանուր տարբերակների համար ռուսական արձագանքները փչացնում են տվյալները ռուսական տարբերակիչ բանալիներ։
13) Քաոս պրակտիկայի հասունության չեկի ցուցակ
1. Steady-state-state-ը և SLO-ը նկարագրված են, dashbords պատրաստ են։
2. Փորձարկումները որպես կոդ, հեղափոխություն/աուդիտ Git-ում։
3. Guardrails/abox ավտոմատացված (Alertmanager/ChatOps)։
4. Դիտարկումը 'exemplars, trace/log prollation, ծանոթություններ։
5. Game-day-ը եռամսյակային է, սցենարները ծածկում են վճարումներ/խաղեր/հերթեր/multregion։
6. Հետպատերազմյան action items-ը սպրինտի պլանում է։ վերահսկողությունը։
7. Ռետրերի/թայմաուտների/circuit-breaker-ի շեմի քաղաքականությունները 2019 թվականին ռեպոյի մեջ։
8. Սեկուրիտին/PII քաղաքականությունը հետևում են, արտեֆակտները առանց զգայուն տվյալների։
9. SLO-ի (rollback/scale/rero.ru) ռեմիդացիաները փորձարկվել են քաոսի միջոցով։
10. Գործընթացի չափումները 'առանց ab.ru, MTTR վարժությունների վրա, դասարանի նվազումը։
14) Anti-patterna
«Կոտրում ենք ամեն ինչ վաճառքում» առանց SLO/guardrails/դիտարկման։
Փորձարկումներ առանց հիպոթեզի և չափելի նպատակների։
Մեծ blast radius-ը առաջին գործարկման մեջ։
Ռետրան առանց թայմաուտների/ջիտերի, կասկադային անկայունություն է։
Քաոսը կանխարգելման փոխարեն 'մենք բուժում ենք ախտանիշները, անտեսում ենք արմատական պատճառները։
RCA/action items բացակայությունը վարժություններից հետո։
Խնջույքների փորձարկումները առանց բիզնեսի։
Արդյունքները
Haos-ingininining-ը կայունության մեթոդական ապացույց է, դուք նախապես վերարտադրում եք իրական ձախողումներ, չափում եք ազդեցությունը SLO-ի և բիզնեսի մետրերի վրա և ամրացնում եք ճարտարապետությունը 'գետերից և circuit-breaker-ից մինչև մուլտիպլիկացիոն նվագախմբեր և դաշտային ռեմիա։ Game-day-ի և guardrails-ի կարգապահության ժամանակ iGaming պլատֆորմը պահպանում է p95/p99, ծրարը և TTW-ը նույնիսկ ամենաթեժ ժամանակահատվածում։