GH GambleHub

Staging-payplaynlar we goýberişler

1) Näme üçin staging-paypline gerek?

Staging-paypline - bu artefaktyň PR-den önümçilige çenli hil we howpsuzlyk barlaglary bilen standartlaşdyrylan ýoly. Maksatlar:
  • ýygnamagyň we goýbermegiň gaýtalanmagy;
  • çalt we öňünden aýdyp boljak fidbek;
  • töwekgelçiligi azaltmak (progressiw aýlawlar, fiçeflaglar, yza gaýdyp gelmek);
  • ylalaşyga laýyk gelmek we üýtgeşmelere gözegçilik etmek.

2) Eltip bermegiň salgylanma akymy (ýokary derejeli)

1. PR → awtomatiki barlaglar (lint, unit, SAST, ygtyýarnamalar).
2. Build → kesgitlenen şekil/paket, gol we SBOM.
3. Test on Ephemeral → per-PR gurşawy.

4. Merge → Staging:
  • şekiliň deplosy;
  • kontrakt-, integrasiýa, e2e-synaglar;
  • DAST/IAST, regressler, ýükleýji smoke;
  • zerur bolan halatynda UAT/QA gollary.
  • 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
  • 6. Post-deploy barlaglary we SLO/error budget boýunça awto jogap.
  • 7. Runbook/Changelog → goýberilişiň we retrospektiviň ýapylmagy.

3) Standartlaşdyrylan ÝAML şablony

yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]

verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog

4) Gates we taýýarlyk ölçegleri (Quality Gates)

Kod we howpsuzlyk: lintlar, örtük, SAST/SCA, garaşlylyk syýasaty, "critical/high" ýoklugy.
Şertnamalar: shemalaryň laýyklygy (API/wakalar), Pact/Buf barlagy.
Synaglar: unit/integration/e2e p-geçiş bosagasy, durnuklylyk (flake-rate).
Ýük smoke: p95/p99 býudjetiň çäginde, zaýalanma ýok.
DAST/IAST: Hiç bir möhüm kemçilik ýok, duýgur ýollar üçin synag ssenarileri.
Observability: dashboards/alerts "as code" täzelendi, runbooks ulanyldy.
CAB/UAT: goýberiş penjirelerinde tassyklama (eger kadalaşdyryjy/iş tarapyndan talap edilse).


5) Goýberiş strategiýalary

Feature Flags - redeploy bolmazdan fiçiň logiki goşulmasy; "dark launch" we A/B mümkinçiligi

Canary - traffigiň paýynyň kem-kemden ýokarlanmagy (5% → 25% → 50% → 100%), SLO we anomaliýalar boýunça awtomatiki roll-forward/rollback.
Blue-Green - paralel gurşaw; derrew geçiş, ýönekeý yza gaýdyp gelmek.
Shadow/Traffic Mirroring - ulanyjylara täsir etmezden traffigiň täze wersiýasyna passiw geçmegi.
Ring Deployments - sebitler/tenantlar boýunça tolkunlar.


6) Yza gaýdyp gelmek we relizleriň howpsuzlygy syýasaty

Triggerler boýunça awtookat: error-rate beýikligi, bosagadan ýokary p95/TTFB, 5xx/timeout beýikligi, DLQ köpelmegi.
El bilen yza gaýdyp gelmek: '/rollback <service> <sha> 'chatbotda, goýberiş konsolynda bir düwme.
Freeze windows: Möhüm wakalara (ýaryşlar/iň ýokary oýunlar) goýbermek gadagandyr.
Changelog & Release Notes: PR-den nesil, SemVer bellikleri, komponentler, göçmeler.


7) DB migrasiýasy we gabat gelmek

Expand → Migrate → Contract:

1. gabat gelýän meýdanlary/indeksleri goşmak;

2. programmany deploý (iki shemada okaýar/ýazýar);

3. fon joblary bilen maglumatlaryň göçmegi;

4. Köne aýyryň.

Shemalar wersiýa edilýär, göçmek idempotent, dry-run staging.

Protect destructive SQL: require flag/approval, awtomatiki ekaplar we plan-check.


8) Fiziki baýlyklar we progressiw işjeňleşdirmek

Ops-baýdaklary (howpsuz işlemek üçin) we product-baýdaklary bölüň.
Tomaşaçylar boýunça goşulma: göterim, geo, tenant, rol.
Baýdaklaryň metrikasy: öwrülişige täsiri, latency, ýalňyşlyklar.
Meselelerde - baýdagy yzyna gaýtarmakdan has çalt bukmak.


9) Observability

Söwda: gateway-den DB/nobatlara çenli 'trace _ id' geçişi; Köne/täze wersiýalary deňeşdirmek.
Metrikler: p50/p95/p99, error-rate, RPS, saturation, DLQ, retrai, Time-to-Wallet/Business KPI.
Loglar: gurluş, gizlemek PII, korrelasiýa 'request _ id'.
Alertler: SLO-býudjet, on-call-iň gyssagly sahypalary, reliziň awto-bukjasy.


10) Üpjünçilik zynjyrynyň howpsuzlygy (supply chain)

Her bir bild üçin SBOM, ammar we reliz belligine baglanyşyk.
Şekilleriň gollary (cosign), klaster barlagy (policy admission).
SLSA-attestasiýa: artefaktyň subut edilip bilinjek gelip çykyşy.
Policy-as-Code (OPA/Conftest): infrastruktura PR üçin deny-by-default.
Syrlar: diňe KMS-den, gysga ömürli tokenlerden, paýlaýnlarda aýlanmalardan.


11) Üýtgeşmelere gözegçilik we prosesler

RFC → CRQ → CAB: özüni alyp barşyň/şertnamalaryň dokumentleşdirilen üýtgemegi öňünden ylalaşylýar.
Release Calendar: önümler/sebitler/toparlar boýunça görünýän penjireler.
Runbooks: her bir komponent üçin - açmak/yzyna almak/anyklamak proseduralary.
Postmortem/Retro: möhüm neşirlerden soň - derňew we hereket.


12) Staging synag profilleri

Şertnama (API/Events): gabat gelmeýän üýtgeşmeleri bloklaýar.
Integrasiýa/e2e: "goýum", "KYC", "netije".
Ýükleýji smoke: wekilçilikli belentlikler; resurs çäklerine gözegçilik edýäris.
Bulam-bujar ssenariýalary: üpjün edijini öçürmek, gizlinligi ýokarlandyrmak, tor fappingleri.
Sintetiki gözegçilik: meýilnama boýunça "synag" amallary.


13) Goýberiş maksatlarynyň Makefile mysaly (bölek)

makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog

14) Rollar we jogapkärçilik

Dev/Team: kod hili, synaglar, göçmeler, runbooks.
QA: UAT/regression ssenarileri, gates-de hil gözegçiligi.
SRE/Platforma: paýlaýjylaryň ygtybarlylygy, gözegçilik, syýasat.
Release Manager: senenama, penjireler, CAB, gutarnykly çözgüt.
Howpsuzlyk: SAST/DAST/SCA, supply-chain, gizlin syýasaty.


15) Relizleriň kämillik modeli

1. Esasy - el bilen barlamak, seýrek goýbermek, yza gaýdyp gelmek kyn.
2. Ösen - standartlaşdyrylan CI/CD, staging-kontury, canary/blue-green, ýygy-ýygydan çykarylýar.
3. Bilermen - tenantlar/sebitler boýunça progressiw eltip bermek, feature flags-first, policy-as-code, SLO boýunça awtookat, doly yzarlamak we SLSA.


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

M0-M1 (MVP): paýlanyş şablony, build + sign + SBOM, staging-deploy, esasy synaglar we gates.
M2-M3: canary/blue-green, prevyu per-PR, şertnama-synaglar, DAST, synthetic checks.
M4-M6: feature flags platforma, shadow traffic, policy-as-code, awtootkat, release calendar + CAB-workflow.
M6 +: sebitler boýunça ring-deployments, SLSA-attestasiýa we berk admission, runbooks-yň doly awtomatlaşdyrylmagy.


17) Önüm çykarylmazdan öň çek-sanawy

  • Surat gol çekildi, SBOM ýüklendi we goýberildi.
  • Şertnamalar gabat gelýär, synaglar ýaşyl, e2e staging geçirildi.
  • Göçmek barlandy (dry-run), yzyna gaýtarmak meýilnamasy beýan edildi.
  • Daşbordlar/alertler täzelendi, SLO-geýtlar işjeň.
  • Runbook we Changelog neşir edildi, goýberiş penjireleri ylalaşyldy.
  • Feature flags progressiw işjeňleşdirildi.
  • Freeze-çäklendirmeler berjaý edildi, on-call taýýar.

Gysgaça netije

Başarnykly dizaýn edilen "staging-paypline" relizleri dolandyrylýan tertibe öwürýär: ýeke-täk şablonlar, aýdyň quality gates, ygtybarly üpjünçilik zynjyry, progressiw tekizlemeler we syn etmek töwekgelçiligi azaldýar we hil we iş ölçeglerine gözegçiligi saklap, önümçilige üýtgeşmeleri çykarmak wagtyny gysgaldýar.

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.