GH GambleHub

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 պլանը, և ձեր օրինագծերը կդառնան կանխատեսելի, իսկ միջադեպերը հազվադեպ և վերահսկելի են։

Contact

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

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

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

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

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

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