Ավազաքարեր և թեստային միջավայրեր
TL; DR
Հուսալի ավազը = ամբողջական մեկուսացում, սինթետիկ/չեզոք տվյալներ, արտաքին համակարգերի իրատեսական սիմուլյատորներ, կանխատեսելի նստատեղեր և time-travel, ներկառուցված կուռք և webhuks, թափանցիկ լիմիտներ և չափումներ։ Պրոդը, մենք չենք անհանգստացնում, բանալիները պտտվում են, promotion-ը 'միայն չեկի տերևներով։
1) Շրջակա միջավայրի քարտեզը և նրանց դերերը
Կանոն ՝ sandbox no։ Ցանկացած կապ միակողմանի սիմուլյատորների միջոցով առանց իրական միջոցների/խաղերի/անձնական տվյալների հասանելիության։
2) Տվյալները ՝ սինթետիկ, անանուն, նստեցում
Սինթեզիկան լռելյայն է։ Անձնագրային/քարտային տվյալների գեներատորները, վալիդային, բայց նեֆինանսական PAN (թեստային BIN), «կենդանի» փամփուշտները և հավասարակշռությունները։
Անանունացումը stage-ի համար 'ինդեքսատորների խառնուրդը, ագրեգատների տարբերակիչ գաղտնիությունը, հազվագյուտ համադրությունների հեռացումը։
Նստատեղերը և դետերմինիզմը 'մեկ թիմը մեկ վիճակ է։
bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03
Time-travel: Գլոբալ «ժամ» շրջակա միջավայրի թեստերի/էքսպիրացիայի համար։
3) Սիմուլյատորներ և կոճակներ (stubs)
Վճարումներ/բանկեր/PSA
Auth/Capture/Refund/Payout со сценариями: `approved`, `declined_insufficient`, `3ds_required`, `timeout`, `duplicate`.
Webhuki PSA-ն 'HMAC-ի ստորագրած, retrays, ուշացումներ և «կեղտոտ ինտերնետ»։
KYC/AML/Sanctions
Ответы: `clear`, `pep_match`, `sanction_hit`, `doc_mismatch`, `manual_review`.
Idempotenty-ի և rate limits-ի աջակցությունը որպես ռուսական։
Խաղային պրովայդերներ/կատալոգ
Լոբբին, ֆիչին, RTP/rounds - կեղծ պատահական արտադրություն, որը ղեկավարվում է UX-Cass-ի համար «վճարումներ/ձախողումներ»։
Մոսկվա 'սիմուլյատորի «խստության» անջատիչ (happy-path vs chaos)։
4) Վեբհուկի ավազի մեջ
HMAC (v1) ստորագրությունները, «X-Event-Id», «X-Timestamp», պատուհանը 5 րոպե։
Retrai էքսպոնենցիալ backoff, DLQ և replay։
Կոնսոլը «հատել» և փորձերի լույսերը։
Կեղծ
pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }
5) Գաղափարախոսություն և դետերմինիզմ
Բոլոր մուտացիաները ընդունում են «Idempotency-Key»։
Սիմուլյատորները պահպանում են արդյունքը բանալին (TTL 24-72 ժամ)։
«Seed-դետերմինիզմ»: նույն մուտքի դեպքում նույն արդյունքը (կրկնվող թեստերի համար)։
6) Անվտանգություն և հասանելիություն
RBAC/ABAC '«partner», «qa», «dev» դերերը, հոսքերի ոսկորները նվազագույն են։
Ցանցերի մեկուսացումը/MSC, առանձին գաղտնիքները և թողարկումները («sandbox»)։ example. com`).
Rate-limits և քվոտաներ 'per-tenae/բանալին, որը հասկանալի է «429 »/« Retry-After»։
Գաղտնիքները միայն KFC/Vox-ում; հիբրիդային նավարկություն։
Իրական վճարումների արգելքը կոդի/դելգի մակարդակում (feature-flag hard block)։
7) API Gateway-ը և դիտողականությունը sandbox-ում
Նույն քաղաքական գործիչները ՝ OAuth2/OIDC/JWT, SDS, WAF, DDoS պրոֆիլը։
Մետրիկները ՝ p50/p95/p99, 4xx/5xx, hit-rate limits, latency webhooks, idempotent հիթեր։
Լոգա/թրեյսներ ՝ առանց PII; կորոլացիա 'trace _ id "։
Դաշբորդ «Ավազի առողջությունը» 'aptaim, webhuks հերթերը, սիմուլյատորների սխալները։
8) Ֆիչա դրոշները, տարբերակները և համատեղելիությունը
Դելֆիչը sandbox www.stage-ում։
SemVer-ը API-ի համար; Deprecation/Sunset-ը Swagger/Redoc ավազի մեջ։
Persisted queries-ի համար GraphQL-վիտրինի համար (եթե կա)։
9) CI/CD и promotion
1. Build/Unit →
2. Contract/Mock tests (OpenAPI/Protobuf/GraphQL SDL) →
3. Ինտեգրացիոն սիմուլյատորների դեմ
4. Stage report (անոն. դիպուկահարներ)
5. Canary в prod.
Gate-chek-թերթ promotion: Ցածր 3612-ում։
10) UAT սցենարները գործընկերների համար (ավազի մեջ)
Վճարումները ՝ auth/capture/refund/payout webhuks և PBS սխալներ։
KYC/AML: Բոլոր արձանները + ձեռքով էսկալացիա են։
Idempotenty: Կրկնվող «Idempotency-Key» -ը նույն արդյունքն է։
Rate-limit: ճիշտ մշակումը '429 "։
Ժամանակավոր պատուհանները 'հոսանքների էքսպորտը, «Retry-After», Time-travel-ը։
Webhooks: ստորագրություններ/retrai/DLQ, ձեռքով replay և dedup։
11) Տվյալների քաղաքականությունը և գաղտնիությունը
Երբեք չպահել իրական PAN/KYC դոզաները sandbox/stage-ում։
Անանունացում 'դիմակավորում, ուղղակի ֆոսֆատորների հեռացում, սինթետիկ հարաբերակցություն։
TTL-ը պահպանում է լոգարանները և Webhuks-ի մարմինները։
12) Չեկ թերթերը
12. 1 Նոր ավազի գործարկումը
- Մեկուսացված ցանց/բազա/կեշ/օբյեկտի պահեստ
- Գաղտնիքները ստեղծվել են KFC/Vox-ում, դերերի հասանելիությունը։
- PFC/KYC/խաղերի սիմուլյատորները հետևի են և տարբերակված։
- Swagger/Redoc + Postman հավաքածու (sandbox endpoinae)
- Webhuki: HMAC, retry, DLQ, վահանակ replay
- Rate/Delta պրոֆիլներ, Deprecation/Sunset (եթե կա)
- Dashbords և alerts (latency, 5xx, 429, DLQ)
12. 2 Promotion release (stage→prod)
- Պայմանագրային diff-ստուգումներ (առանց breaking)
- Բեռների p95/p99 նորմալ stage
- Webhuki-ը անցավ UAT-ը, գաղափարախոսությունը
- Fich-Fich-France
- Changelog, միգրացիոն ուղեցույց և ուղարկում
13) Անտիպատերնի
Ավազը, «գաղտնի» հուզիչ տեղեկատվական ծառայություններ/հիմքեր։
Իրական քարտային/անձնագրային տվյալները stage/sandbox-ում։
Սիմուլյատորները առանց vebhuks/retrav - «երջանիկ արջ» միայն։
Idempotenty-ի բացակայությունը կատարվում է կրկնօրինակման միջոցով։
Մեկ ընդհանուր HMAC գաղտնիքը բոլոր գործընկերների համար։
Չկա սահմաններ և թափանցիկ 429/Retry-After։
14) Մինի-նիպետներ
.env. sandbox (օրինակ)
dotenv
API_BASE=https://sandbox.api.example.com
OAUTH_ISS=https://sandbox.idp.example.com
PSP_SIM_URL=https://sandbox.psp-sim.example.com
KYC_SIM_URL=https://sandbox.kyc-sim.example.com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1
OpenAPI հատվածը (sandbox սերվերը)
yaml servers:
- url: https://sandbox.api.example.com/v1 description: Public Sandbox
Idempocode
pseudo if store.exists(idem_key): return store.get(idem_key)
res = do_business()
store.set(idem_key, res, ttl=72h)
return res
PSA սիմուլյատորի թրիգերներ
json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }
15) Դիտողությունն ու SLO ավազաքարերը
Uptime sandbox API ≥ 99. 5% (ինտեգրման վիտրինը չպետք է ընկնի)։
Webhooks p95-3-ից մինչև 2xx-ը նորմալ ծանրության դեպքում։
Error budget 5xx դարպասը 240։ 1%.
Դոկ պորտալը հասանելի և համաժամեցված է պայմանագրի հետ։
16) Governance
Շրջակա սեփականատերը (MSE/Platform) և steward API (պայմանագրեր)։
RSA գործընթացը breaking-փոփոխության համար, Deprecation/Sunset օրացույցը։
Առանձին լիմիտներ/քվոտաներ և «fox-use» -ը հանրային ավազի համար։
Ռեզյումե
Ավազը մշակողների համար ապրանք է, ոչ թե «բազայի պատճենը»։ Թույլ տվեք 'խիստ մեկուսացում, սինթետիկ տվյալներ, ամբողջական սիմուլյատորներ webhuks և գետեր, դետերմինիզմ նստատեղերի և time-travel, fich դրոշներ և թափանցիկ սահմաններ։ Պարտադրեք բոլոր պայմանագրերը, դիտարկումը և governations-ը, և ձեր ձեռնարկությունները կդառնան արագ, ապահով և կանխատեսելի։