GH GambleHub

Ավազաքարեր և թեստային միջավայրեր

1) Ինչո՞ ւ է անհրաժեշտ ընտրված ուրվագծերը

Ավազաքարերը և թեստային միջավայրերը թույլ են տալիս

արագ ստուգել հիպոթեզներն ու դեղամիջոցները առանց ռիսկի վաճառելու։

արագացնել ֆիդբեկ ցիկլը (PR-ն րոպեում ավելի բարձր հղում է);

վերարտադրել սխալներն ու միջադեպերը անվտանգ օրինակների վրա։

կատարել պայմանագրային, ինտեգրալ, բեռային և քաոս թեստեր։

սովորեցնել թիմերը և ակտիվացնել գործընկերներին «խաղահրապարակում»։

Հիմնական սկզբունքները 'մեկուսացումը, մուտացիաները, թեստերի դետերմինիզմը, տվյալների անվտանգությունը, լռելյայն դիտարկումը։

2) Միջավայրի հիերարխիան և նրանց նշանակումը

Dev (Dev) տեղական զարգացում է 'Docker Compose/Testcontainers, պրովայդերների թեթև սիմուլյատորներ։

Sandbox-ը արտաքին ինտեգրման համար (PFC, KYC, խաղերի ագրեգատորներ) ֆեյկովի տվյալներով և իրական արձանագրություններով։

QA/Test - ինտեգրացիոն և e2e թեստեր, կայուն տվյալների ֆիքսումներ, ռեգրեսիաներ։

Stage/Pre-Express-ը հնարավորինս մոտ է կոդավորման երկարացմանը (կազմաձևեր/limits/ligologia)։

Ephemeral Diview-ը «PR» շրջապատումն է (ապրում է ժամերով/օրերով), ինքնավար ռեսուրսները և URL-ը, մեքենայական քանդումը merge/close-ից հետո։

Parity: «ռուսական, քաղաքական և ենթակառուցվածքային կախվածությունները Test/Stage International», տարբերությունները միայն գաղտնիքներում և սահմաններում։

3) Ավազի տեսակները

1. Պրովայդերների ավազները ՝ արտաքին PFC/KYC/խաղերը տալիս են test endpoin.ru; մենք ավելացնում ենք սիմուլյատորների շերտը, որպեսզի մոդելավորենք հազվագյուտ և սխալ դեպքեր (timeouts, 5xx, անկայուն ստորագրություններ)։

2. Ֆունկցիոնալ ավազները 'մետրոպոլիտենի ծառայությունների ինքնաբերական ինստանսներ (վճարումներ, բոնուսներ, գործիքներ) + ֆիքսատորներ։

3. Ուսումնական/դեմո-ավազակները 'API-ի «վիտրինը» DevPortal-ի գործընկերների, բեկորների, քվոտաների և rate limit-ի համար։

4) Պայմանագրեր, սիմուլյատորներ և կամուրջներ

Euract-testing (Pact/Buf): սպառողը/պրովայդերը համապատասխանում են սխեմաներին։ անհամատեղելի փոփոխությունները արգելափակված են CI-ում։

Պրովայդերների սիմուլյատորները 'վերարտադրում են edge-Cass (կրկնակի կոլեկցիոներներ, ժամացույցներ, HMAC ստորագրություն ժամկետանց Timestamp)։

Իրադարձությունների ֆիքսուրները (Kafka/NATS) 'Cass' payline գրադարանը։ authorized`, `kyc. verified`, `game. round. settled`.

Fultinj.ru 'կառավարվող ուշացումները, drop-rate, out-of-order հաղորդագրությունները։

HMAC ստորագրության օրինակ webhooks-ում


X-Timestamp: 1730812800
X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))

5) Թեստային տվյալները, GDPR/PCI և անանունացում

Երբեք չենք օգտագործում իրական PII/PAN-ը վաճառքից դուրս։

Անանունացում 'սինթետիկ գեներացիա + զգայուն դաշտերի խառնուրդ; սպիտակ ցուցակները միայն ցուցադրական հաշիվների համար։

Ռուսական factories 'օգտագործողների/գործարքների/նստաշրջանների գործարաններ կանխատեսելի ID և ստատուսների հետ։

Deterministic seeds 'նույն ֆիքսումները թեստերի և միջատների միջև։

Ռեթենշնի քաղաքականությունը 'մեքենա-մաքրումը վերափոխելով շրջակա միջավայրի և թեստային BD-ները։

6) Գաղտնիքները և հասանելիությունը

Առանձին գաղտնիքները չորեքշաբթի ընթացքում։ ժամանակավոր քրեդներ և սահմանափակ դերեր։

KFC/HSM և ռոտացիաներ; բացառված են Git-ի գաղտնիքները։

RBAC/ABAC QA/Stage-ի համար; հասանելիության աուդիտը, break-glass-ը միայն շարժիչների միջոցով։

7) Observability

Լոգները կառուցվածքային են, առանց PII-ի, դիմակավորված։

Latency p50/p95/p99, error-rate, throughput, DLQ, retrai;

Treising (OTel) '«trace _ id» -ի միջոցով, որն ուղղված է սիմուլյատորին։

Dashboards as Code-ը dashbords-ն և alerts տարբերակվում են ծառայության կողքին։

8) Efemer-PR (per-PR)

Լռելյայն վարքագիծը

PR 24CI-ն հավաքում է պատկերը, ստեղծում է արտադրանք, բարձրացնում է namespace 'pr- "Kubernetes-ում։

արտադրվում է URL-ի և թեստային օգտագործողների հոսանքները։

ներառում է tresing/metriks; PR-ի փակման ժամանակ շրջապատը հեռացվում է։

Namespace-ի օրինակ PR-ում

yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9) Տեղական զարգացումը 'Compose/Testcontainers

Նվազագույն 'docker-compose։ yml 'գործարկման համար

yaml version: "3. 9"
services:
api:
build:.
environment:
- DB_URL=postgres://postgres:postgres@db:5432/app? sslmode=disable
- KAFKA_BROKER=kafka:9092 ports: ["8080:8080"]
depends_on: [db, kafka]
db:
image: postgres:16 environment: [POSTGRES_PASSWORD=postgres]
ports: ["5432:5432"]
kafka:
image: bitnami/kafka:latest environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 ports: ["9092:9092"]

Թեստերում կախվածությունը ինքնաբերելու համար Testcontainers-ը ֆիքսված է։

10) Բեռի և կայուն փորձարկումներ

Բեռի ավելցուկ '«կիսագնդեր», «վճարման ալիքներ», «զանգվածային թնդանոթներ»։

KPI: RPS, p95/p99, ռեսուրսային լիմիտներ (CPU/memory), TTFB, Time-to-Wallet։

Chaos-միգրացիաներ ՝ ռուսական պրովայդերներ, լատենտության աճը, ցանցի «flaky»։

Circuit breaker/backoff քաղաքականությունը ստուգվում է Stage-ում։ ձախողումները գնում են DLQ-ում և կրկնվում։

11) Արձագանքման և վերամշակման քաղաքականություն

Replay-դարպասը DLQ-ից իրադարձությունների համար (ձեռքով/մեքենա ռեժիմներ, բեկորների ֆիլտրեր)։

Միգրացիայի հիմքերը ՝ պարզ up/down և www.y-run ավելի բարձր/Stage; պաշտպանություն կործանարար փոփոխություններից։

12) DevPortal-ի ինտեգրումը DevPortal-ի հետ

Ավազների և պրովայդերների կատալոգը, դիմումների պահանջները, հարցումների օրինակները։

«Open Disview» կոճակը յուրաքանչյուր PR/ճյուղի մոտ։ տեսնում է SLO/SLA մետրը։

MSK-ի և Postman/Insomnia-ի գեներացիան։

13) Ավազի պարագծի անվտանգությունը

WAF + IP-allowlist արտաքին ավազների համար;

քվոտաներ և rate limits բանալին;

առանձին ենթախմբեր/ենթաբաժիններ; ավտոմատ հեռացում ոչ ակտիվ շարժիչների;

յուրաքանչյուր տոմսի վրա պատկերների և կախվածության խոցելիությունը։

14) Գործընթացներ ՝ ով և ինչպես է օգտագործում

Զարգացողները տեղական և ավելի բարձր են, արագ ֆիբեկ։

QA-ն կայուն Test/Stage-ն է կառավարվող տվյալների և սիմուլյատորների հետ։

Գործընկերները արտաքին Sandbox-ն են DevPortal-ի, քվոտաների և մոնիտորինգի հետ։

MSE/Պլատֆորմը բեռի, քաոսի, SLO ստուգման ավելցուկներն են։

15) Ավազի գործարկման թուղթ

  • Registry-ում պայմանագրերը, սիմուլյատորները ծածկում են հաջողությունները/սխալները/թայմաուտները/կրկնությունները։
  • Թեստային տվյալները սինթետիկ են, դետերմինացված, առանց PII/PAN։
  • KHL գաղտնիքները, դերերը սահմանափակ են, աուդիտը ներառված է։
  • Metriki/treiss/logs հասանելի են. ալտերտերը error-budget և DLQ-ի վրա։
  • Ephemeral-ը բարձրանում է PR-ով և քանդվում։
  • Բեռի պրոֆիլները և քաոս սցենարները նկարագրված են կոդով։
  • Միգրացիայի և իրադարձությունների վերամշակման քաղաքականությունը ստուգված է Stage-ում։
  • DevPortal-ը հրապարակում է սկավառակներ և հարցումների հավաքածուներ։

16) Իրականացման ճանապարհային քարտեզը

M0-M1 (MVP) 'տեղական միջավայրերը (Compose), PMS/KYC հիմնական սիմուլյատորը, CI-ի պայմանագրային թեստերը, K8s-ի նեյրոսեքսները։

M2-M3: 108 և ֆիքսված, Dashboards as Code, DLQ + ձեռքով գետեր, բեռների ավելցուկ։

M4-M6: լիարժեք արտաքին Sandbox-ը 'բեկորների/քվոտաների, քաոս ենթակառուցվածքի, MSK-ի ավտոգենի, «երկու տարբերակների զուգահեռ»։

M6 +: Geo-բաշխված Stage-ը failover-ից, SLA-ի SLA-ի փորձարկումների խելացի-միկրոակտիվացումը, DevPortal-ի ավտոմատացված ուսուցման սցենարները։

17) Միջավայրի հասունության մոդելը (հակիրճ)

1. Մոսկվան 'կա Test/Stage, ձեռքով տվյալներ, թույլ մեկուսացում։

2. Առաջընթացը սիմուլյատորներն են, պայմանագրային թեստերը, դիտարկումը, մասնակի գերազանցությունը։

3. Փորձագիտական 'per-PR միջավայրը, քաոսը/108 որպես կոդ, DevPortal, խիստ անվտանգություն և ամբողջական ավտոմատիզացիա։

Հակիրճ եզրակացություն

Ճիշտ նախագծված ավազաքարերը և թեստային միջավայրերը «անվտանգության բարձն» են և «արագացուցիչը» մատակարարումը։ Մեկուսացումը, կրկնօրինակումը, պրովայդերների սիմուլյատորները, դետերմինացված թեստային տվյալները, ուժեղ դիտարկումը և վերափոխման ավտոմատացումը տալիս են արագ և հուսալի ցիկլ «կոորդինատային ռելիզի ստուգում», նվազեցնելով ռեգրեսիայի ռիսկը և պարզեցնելով պլատֆորմի մեծացումը։

Contact

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

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

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

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

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

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