Staging: Deple և համաժամեցում
TL; DR
Staging-ը միջավայր է, որն ունի առավելագույն հավասարություն, որտեղ ստուգվում են պայմանագրերը, կոդերը, խողովակները, վեբհուկները և շղթաները անանուն տվյալների և սիմուլյատորների վրա։ Հաջողությունը տալիս են immutable-depla (blue/green), parity առանց PII, shema-registry, shadow-2019, canary-պլան, fich-դրոշներ, պարզ gates և auto-rollback։
1) Սթագինգի դերը և կրկնօրինակը վաճառքով
Նպատակը 'ապացուցել, որ թողարկումը անվտանգ է փողի և խաղացողների համար' BD սխեմաներ, migi, guy, limits, webhuks, միկրոավտիզացիա, observability։
Պարիտետ 'նույն պատկերները, նույն տեղաբանությունը (ingress/gateway, mesh, հերթեր, kashi, BD շարժիչներ, միջուկի/վարորդների տարբերակները), նույն policy (auth/rate/circuit)։
Տարբերությունները ՝ տվյալները չեզոք են, արտաքին պարամետրերի հետ ինտրացիաները 'sandbox/սիմուլյատորների, CSA/Express և գաղտնիքները' առանձին։
2) Տեղաբանություն և հասանելիություն
Ալգորիթմներ ՝ "staging. api. example. com`, `staging. ws. example. com`.
Մեկուսացում ՝ առանձին SDC/կլաստեր, անկախ գաղտնիքներ (KFC/Vance), mTSA ներսում։
Հասանելիություն ՝ SSO + RBAC (roles: «releant-info», «qa», «dev», «partner-2019»), ժամանակավոր հոսանքներ, մուտքերի աուդիտ։
3) Դապլոյի փոխակրիչ (releportrain)
1. Build (Build, SBSA, արտեֆակտների ազդանշաններ)։
2. Tests (unit/integration/contract, security linters).
3. Pack/Scan (SAST/DAST, vuln-gates).
4. Deploy to Staging (imutable, blue/green կամ rolling, p95/p99)։
5. Staging Gates (см. §10).
6. Canary Prod (1→5→25→50→100%).
7. Auto-rollback-ը SLO/սխալների խախտման ժամանակ։
4) Միգրացիայի համաժամացումը
GitOps-ը 'Git-ի բոլոր եզրերն ու քաղաքականությունները։ մեկ գծապատկերներ/մանիֆեստներ 2019/staging-ի համար 'values։ staging. yaml`.
Parity-վերահսկումը 'արգելված են «ձեռքով» staging-ում։ Drift-ը հայտնաբերվում է ավտոմատ (policy-diff, kube-diff)։
Secrets 'առանձին բանալիներ և հոսանքներ; տարհանումը անկախ անցյալից։
5) սխեմԱներ: API/BD/ivents/
Միասնական registry: OpenAPI, Delobuf descriptors, GraphQL SYL, իրադարձություն։ բառարան։
Breaking-winks CI-ում 'ոչնչացնող փոփոխությունների արգելք։
No BD: 'up' staging-ի վրա պրոմոուշենի առջև; հնարավորություն 'down '/reversible; www.y-run 'ժամանակի apshot գնահատմամբ։
Event-համատեղելիությունը '«կրկնակի ձայնագրություն» (հին + նոր ձևաչափ) անցումների ժամանակ։
6) Տվյալները և համաժամացումը
Աղբյուրը 'էքսպոզիցիոն dump production/tokenization/masking staging-ում։
PII/PAN/KYC փաստաթղթերը ՝ հեռացվել/փոխարինվել սինթետիկ; գումարները և հաճախությունները աղավաղված են (dise) գաղտնիության համար։
Սինխրո պատուհանները 'պլանը/կրոնը (օրինակ, ամեն գիշեր), տևողությունն ու սխալները։
Բաղադրիչները 'պահպանեք խտությունը և կարդինալությունը (բեռի թեստերի իրատեսության համար)։
7) Արտաքին բջիջները (PFC/KYC/պրովայդերներ)
Sandbox-links կամ սիմուլյատորներ HMAC-webhuks, գետեր, idempotenty։
Դրոշի բաժանումը իրական sandbox է կամ մեր սիմուլյատորը (անջատիչը եզրին)։
Webhooks: staging-ում ներառված են ստորագրություններ, ժամանակի պատուհան, DLQ/replay վահանակ։
Հիբրիդային ռելսերը 'իրական payout/auth staging-ում արգելված են կոդի մակարդակում (hard block)։
8) Shadow-2019 և repley
Shadowing: Մենք պատճենում ենք staging (առանց կողմնակի էֆեկտների), համեմատում ենք պատասխանները/լատենտությունը։
Traffic mirroring: 351-5 տոկոսը GET/stus։ Shadow-ի մուտացիաները չեն թույլատրվում։
Delnthetic replay: Պատմական հետքեր (www.ked) ռեգրեսիայի համար։
9) Ֆիչա դրոշը, freeze և համատեղելիությունը
Դրոշները կառավարում են վարքագիծը առանց redeploy; Դրոշների եզրերը տարբերակված են։
Releant freeze-ը մեծ իրադարձության/բեռի ժամանակահատվածի համար։ staging-ը գրված է «հայելու» մեջ։
Back/forward համատեղելիությունը 'առաջին անգամ նոր ձևաչափ կարդալը, ապա ձայնագրությունը։
10) Gates 'Ի՞ նչ ենք ստուգում առաջխաղացման առաջ
SLO: p95/p99 latency, error-rate, saturae միջանցքում։
Contract: API diff — без breaking; Webhuks-ը ստորագրվել է, idempotenty ok.
DB-ն նշում է, որ հանդիպման ժամանակ չկա «երկար խաղացող» սեղաններ, plan-վերլուծություն։
Payments/KYC 'պոզիտիվ/բացասականությունը, Webhuks retray 42xx <3 c p95։
Rate/www.tas: ճիշտ 429/Retry-After։
Մոսկվա: Խոցելիությունը շեմից ցածր; գաղտնիքները/permissions walids։
Docs/MSK: OpenAPI/MSL/Delo հրատարակվում են registry; Postman/MSK-ը նորարարված է։
Runbooks: Պլեյբուսները և rollback պլանը ստուգված են։
11) Դիտողությունն ու ալերտները
Метрики: RPS, p50/p95/p99, 4xx/5xx, open circuits, queue len, cache hit, webhook delivery.
Թրեյսներ ՝ «trace _ id» -ի միջոցով; համեմատություն պրոդի հետ (լատինականության տարբերությունը)։
Լոգները 'դիմակավորում, էմպիլացիա, «հանգիստ» սխալներ (WARN spikes)։
Dashbords staging: Առանձին, բայց նույնական են prod կառուցվածքով։ կանաչ/կարմիր SLO շերտեր։
12) Ռազմավարության Deplay
Blue/Green staging-ում (105) 'արագ սվիտչ, թեթև rollback։
Rolling-ը փոքրիկ մարտերով և health-ստուգումներով։
Canary staging-ի ներսում 'տոկոսը «staging-a» և «staging-b» -ի միջև A/B ավելացման համար։
DB 07: zero-downtime patterns (expand www.migrate .ract), «կրկնակի ձայնագրություն», բլոկային որոնում։
13) Անվտանգությունն ու կոմպլենսը
MTSA, WAF, DDoS պրոֆիլը ակտիվ են։
RBAC/ABAC էնդպոինտների վրա։ ինտեգրատորների արգելքը ներքին պանելներին։
Լոգարանների ժամկետները ավելի կարճ են, քան անցյալը։ Ռուսաստանի օրինագծերի հաշվետվությունները։
Ֆիլտրերի/սերտերի ստուգումը 'առանձին JWKS/serts, ռոտացիաները փորձարկվում են staging-ում։
14) Պլեյբուկի 2019 (staging)
SLO-ի ձախողումը դեպքից հետո 'արձագանքել «green» -ի վրա, արձագանքել սխեմաները (եթե հնարավոր է), դեգրադացիան (ձեռք բերել «թանկ» միավորներ)։
5xx-ի աճը 'բացել circuit-breaker փխրուն ապստրիմա, բարձրացնել backoff BFF-ում, ներառել քեշը։
PII-ի արտահոսքը staging-ում է.
Ուեբհուկի արգելքը 'ժամանակավորապես թարգմանություն dead-letter, ձեռքով replay ֆիքսից հետո։
15) Չեկ թերթերը
15. 1 Promotion promotion
- Բոլոր gates (թիվ 10) անցան. զեկույցը կցված է։
- Canary պլանը և ոտքի չափանիշները որոշվում են։
- Ֆիչի դրոշները (համեղ/արտանետումներ/աստիճաններ)։
- System/MSK/պորտալը նորարարված է։
- Սթեյքհոլդերները տեղեկացված են, աջակցության պատուհանները համաձայնեցված են։
15. 2 Rollback
- Blue/Green: Անցյալում նախորդ ծառայի վրա, դելեգները արձագանքեցին։
- Սխեմաներ ՝ շրջադարձային կամ «դրոշը-դեգրադացիա» մինչև անվտանգ վիճակը։
- Փոստի մորտը և արտեֆակտների հավաքումը։
16) Մինի-նիպետներ
GitOps promotion (կեղծ)
yaml stages:
- deploy-staging
- verify-gates
- promote-prod deploy-staging:
script: kubectl apply -f k8s/overlays/staging verify-gates:
script:./scripts/check_slo. sh &&./scripts/check_contracts. sh promote-prod:
when: on_success script: kubectl apply -f k8s/overlays/prod
Expand→Migrate→Contract (DDL)
sql
-- expand
ALTER TABLE payouts ADD COLUMN note TEXT NULL;
-- migrate (background job copies data)
-- contract
ALTER TABLE payouts DROP COLUMN comment;
Shadow header (հարցումների մակնշում)
X-Shadow-Trace: 1
pseudo if store. has(idempotency_key) return store. get(idempotency_key)
res = do()
store. set(idempotency_key,res,ttl=72h)
return res
17) Անտիպատերնի
Staging «գրեթե որպես prod», բայց այլ limits/ֆիլտրերով բացատրվում են կեղծ դրական արդյունքները։
Իրական PAN/դոզաները staging-ում։
Ձեռքերի «տաք» եզրերը։
Առանց ժամանակի գնահատման և արգելափակման։
Ոչ մի shadow-2019/repleeys - ուղիները հայտնվում են միայն վաճառքում։
Promotion առանց rollback պլանի։
18) SLO staging (ուղեցույցներ)
Uptime: ≥ 99. 5% (ինտեգրման վիտրինը չպետք է ընկնի)։
Latency-ը ավելացնում է prom: 108 + 10-20 տոկոսը։
Webhooks p95: 243 c-ից մինչև 2xx-ը գետերի հետ։
Error budget: 5xx դարպասը 240։ 1 տոկոսը թողարկման պատուհանի վրա։
Shadow Express-ի մասնաբաժինը ՝ ընթերցանության 241 տոկոսը։
Ռեզյումե
Staging-ը ոչ թե «ավազն» է, այլ իրական փորձառությունը ՝ նույն աթոռը և քաղաքականությունը, անանուն տվյալները, ռելսերի սիմուլյատորները, prod-2019 ստվերը, խիստ gates և ակնթարթային rollback։ Ամեն ինչ պտտեք GitOps + registry սխեմաների + imutable deple, պահեք դրոշները և canary պլանը, և ձեր օրինագծերը կդառնան կանխատեսելի, իսկ միջադեպերը հազվադեպ և վերահսկելի են։