GH GambleHub

Gum gutulary we synag gurşawy

1) Näme üçin aýratyn konturlar gerek?

Gum gutulary we synag gurşawy:
  • öndürijilik üçin töwekgelçiliksiz gipotezalary we integrasiýalary çalt barlamak;
  • fidbek siklini çaltlaşdyrmak (PR → prevyu-baglanyşyk minutlarda);
  • ýalňyşlyklary we hadysalary ygtybarly nusgada köpeltmek;
  • şertnama, integrasiýa, ýük we bulam-bujarlyk synaglaryny ýerine ýetirmek;
  • "oýun" meýdançasynda toparlary öwretmek we hyzmatdaşlary ýerleşdirmek.

Esasy ýörelgeler: izolýasiýa, konfigurasiýa deňligi, synaglaryň determinizmi, maglumatlaryň howpsuzlygy, kadaly gözegçilik.

2) Gurşaw iýerarhiýasy we olaryň bellenilmegi

Local (Dev) - ýerli ösüş: Docker Compose/Testcontainers, üpjün edijileriň ýeňil simulýatorlary.
Sandbox - galp maglumatlar we hakyky teswirnamalar bilen daşarky integrasiýa üçin stend (PSP, KYC, oýun agregatorlary).
QA/Test - integrasiýa we e2e-synaglar, durnukly maglumat fiksturalary, regresler.
Stage/Pre-Prod - önümçilige iň ýakyn kontur (konfigurasiýa/çäk/topologiýa).
Ephemeral Preview - "PR" gurşawy (birnäçe sagatlap ýaşaýar), özbaşdak çeşmeler we URL-ler, merge/close-den soň awto-ýykmak.

Parity düzgüni: "Test/Stage ≈ Proddaky sazlamalar, syýasatlar we infrastruktura garaşlylygy", tapawutlar diňe syrlarda we çäklerde.

3) Gum gutularynyň görnüşleri

1. Üpjün edijileriň sandyk gutulary: daşarky PSP/KYC/oýunlar test endpoints; seýrek we ýalňyş ýagdaýlary modellemek üçin simulýatorlaryň gatlagyny goşýarys (timeouts, 5xx, durnuksyz gollar).
2. Funksional gum gutulary: domen hyzmatlarynyň awtonom edaralary (tölegler, bonuslar, açýuwlar) + fiksturlar.
3. Okuw/demo gutulary: DevPortal, açarlar, kwotalar we rate limit bilen hyzmatdaşlar üçin API "vitrin".

4) Şertnamalar, simulýatorlar we moki

Contract-testing (Pact/Buf): sarp ediji/üpjün ediji shemalary utgaşdyrar; gabat gelmeýän üýtgeşmeler CI-de petiklenýär.
Üpjün edijileriň simulýatorlary: edge-keysleri (goşa kolbekler, sagat süýşmesi, möhleti geçen timestamp bilen HMAC goly) gaýtalaýarlar.
Wakalaryň fantastikasy (Kafka/NATS): 'payment. authorized`, `kyc. verified`, `game. round. settled`.
Fault injection: dolandyrylýan gijikdirmeler, drop-rate, out-of-order habarlary.

Webhooks gutusyndaky HMAC gollarynyň mysaly:

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

5) Synag maglumatlary, GDPR/PCI we anonimleşdirmek

Hiç haçan hakyky PII/PAN-lary önümçiligiň daşynda ulanmaýarys.
Anonymizasiýa: sintetikanyň öndürilmegi + duýgur meýdanlaryň tokenizasiýasy; Diňe görkeziş hasaplary üçin ak sanawlar.
Data factories: ulanyjylaryň/geleşikleriň/sessiýalaryň öňünden aýdyp boljak şahsyýeti we ýagdaýy bolan zawodlary.
Deterministic seeds: synaglaryň geçişi bilen gurşawyň arasynda birmeňzeş fiksturlar.
Retenşn syýasaty: töwerekleri we synag DB-lerini awto-arassalamak.

6) Syrlar we elýeterlilik

Çarşenbe güni aýratyn syrlar; wagtlaýyn bellikler we çäkli rollar.
KMS/HSM we rotasiýa; Git-daky syrlar aýryldy.
QA/Stage üçin RBAC/ABAC; giriş barlagy, break-glass diňe ylalaşyk arkaly.

7) Nädogry gurşawlarda observability

Loglar - gurluşly, PII-siz, gizlenen;

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

Traýsing (OTel): giriş soragyndan simulýatora çenli 'trace _ id' arkaly;

Dashboards as Code - dashbordlar we alertler hyzmatyň gapdalynda wersiýa edilýär.

8) Efemer deslapky gurşaw (per-PR)

Adaty hereket:
  • PR → CI suraty ýygnaýar, göçýär, namespace 'pr- ' -i Kubernetesde galdyrýar;
  • test ulanyjylarynyň prevyu-URL we bellikleri berilýär;
  • söwda/metrika goşulýar; PR ýapylanda gurşaw aýrylýar.
PR namespace üçin manifestiň mysaly:
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9) Lokal ösüş: Compose/Testcontainers

Iň az 'docker-compose. yml 'lokal başlamak üçin:
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"]

Synaglarda garaşlylygy awtomatiki ýokarlandyrmak üçin - fiksturalar bilen Testcontainers.

10) Ýüklemek we durnuklylyk synaglary

Ýüküň profilleri: "ýaryşlar", "tölegleriň tolkunlary", "köpçülikleýin toplar".
KPI: RPS, p95/p99, resurs çäkleri (CPU/memory), TTFB, Time-to-Wallet.
Chaos-sanjymlar: üpjün edijileri öçürmek, gizlinligi ýokarlandyrmak, "flaky" torlary.
Circuit breaker/backoff syýasaty Stage-de barlanýar; şowsuzlyklar DLQ-e gidýär we gaýtalanýar.

11) Yzyna gaýtarmak we repleýa syýasaty

DLQ wakalary üçin replay-şlýuzy (el bilen/awto usullar, açar süzgüçleri).
Migrasiýa bazalary: aç-açan up/down we dry-run/Stage; weýran ediji üýtgeşmelerden goramak.

12) DevPortal bilen integrasiýa

Gum gutularynyň we üpjün edijileriň katalogy, meýdanlara bildirilýän talaplar, haýyşlaryň mysallary.
Her PR/şahanyň "Açyk Preview" düwmesi; SLO/SLA metrik widget.
Şertnamalardan SDK we Postman/Insomnia kolleksiýalaryny döretmek.

13) Gum gutularynyň perimetriniň howpsuzlygy

daşarky gum gutulary üçin WAF + IP-allowlist;

kwotalar we açar üçin rate limits;

aýry-aýry domenler/alt domenler; hereketsiz açarlary awtomatiki aýyrmak;

her bildde şekilleriň we endikleriň gowşaklygyny barlamak.

14) Prosesler: kim we nädip peýdalanýar

Döredijiler - ýerli we deslapky, çalt fidbek.
QA - dolandyrylýan maglumatlar we simulýatorlar bilen durnukly Test/Stage.
Hyzmatdaşlar - DevPortal, kwotalar we gözegçilik bilen daşarky Sandbox.
SRE/Platforma - ýüküň profilleri, bulam-bujarlyk, SLO barlagy.

15) Gum gutusyny işe girizmegiň çek-sanawy

  • Registriýadaky şertnamalar, simulýatorlar üstünligi/ýalňyşlyklary/wagtlary/gaýtalamalary ýapýar.
  • Synag maglumatlary sintetiki, kesgitlenen, PII/PAN ýok.
  • KMS-den syrlar, rollar çäklidir, audit girýär.
  • Metrikler/söwdalar/loglar elýeterlidir; error-budget we DLQ alertleri.
  • Ephemeral prevyu PR-e çykýar we awto-ýykylýar.
  • Ýük profilleri we bulam-bujarlyk ssenarileri kod bilen beýan edilýär.
  • Migrasiýa syýasaty we wakalaryň gaýtalanmagy Stage sahypasynda barlandy.
  • DevPortal gollanmalary we soraglar ýygyndysyny çap edýär.

16) Durmuşa geçirmegiň ýol kartasy

M0-M1 (MVP): ýerli gurşaw (Compose), PSP/KYC esasy simulýator, CI-de şertnama-synaglar, K8s-de preview-neýspaces.
M2-M3: fikstura kataloglary, Dashboards as Code, DLQ + el bellikleri, ýük profilleri.
M4-M6: açarlary/kwotalary bolan doly hukukly daşarky Sandbox, bulam-bujarlyk infrastrukturasy, SDK awtogen, migrasiýa syýasaty "paralel iki wersiýa".
M6 +: failover bilen geo-paýlanan stage, synaglarda SLA boýunça üpjün edijileriň akylly marşrutlaşdyrylmagy, DevPortal-da awtomatlaşdyrylan okuw ssenarileri.

17) Daşky gurşawyň kämillik modeli (gysgaça)

1. Esasy - bar Test/Stage, el maglumatlary, gowşak izolýasiýa.
2. Ösen - simulýatorlar, şertnama-synaglar, syn ediliş, bölekleýin deslapky.
3. Hünärmen - daşky gurşawyň per-PR, kod, DevPortal, berk howpsuzlyk we doly awtomatlaşdyryş ýaly bulam-bujarlyk/ýük.

Gysgaça netije

Dogry dizaýn edilen sandyk gutulary we synag gurşawy "howa ýassygy" we "tizlendiriji" üpjünçilikdir. Izolýasiýa, prodakşen bilen deňlik, üpjün edijileriň simulýatorlary, kesgitlenen synag maglumatlary, güýçli gözegçilik we deslapky gurşawyň awtomatlaşdyrylmagy regres töwekgelçiligini azaldyp we platformanyň masştabyny ýönekeýleşdirip, çalt we ygtybarly "kod → barlamak → goýbermek" siklini berýär.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.