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.
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.
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.