Staging-бөлүштүрүү жана релиздер
1) Эмне үчүн staging-paypline керек
Staging-Paypline - бул сапат жана коопсуздук текшерүүлөрү менен PRден өндүрүүгө чейинки стандартташтырылган артефакт жолу. Максаттары:- чогултуу жана чыгаруу кайталоо;
- тез жана алдын ала fidbek;
- тобокелдикти минималдаштыруу (прогрессивдүү жылыштар, фичефлагдар, кайтарымдар);
- комплаенс шайкештиги жана өзгөрүүлөрдү көзөмөлдөө.
2) Шилтеме жеткирүү агымы (жогорку деңгээл)
1. PR → автоматтык текшерүү (lint, unit, SAST, лицензия).
2. Build → аныкталган сүрөт/пакети, кол коюу жана SBOM.
3. Test on Ephemeral → алдын ала чөйрө per-PR.
- образ деплой;
- контракт-, интеграциялык, e2e тесттер;
- DAST/IAST, регрессия, жүктөө smoke;
- керек болсо кол UAT/QA.
- 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
- 6. Post-deploy текшерүү жана SLO/error budget боюнча автооткат.
- 7. Runbook/Changelog → релиздин жабылышы жана ретроспективасы.
3) Стандартташтырылган YAML-пайплайн шаблон (үзүндү)
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 жана даярдык критерийлери (Сапаттуу Gates)
Код жана коопсуздук: линттер, каптоо, SAST/SCA, көз карандылык саясаты, "critical/high" жок.
Келишимдер: шайкештиги схемалар (API/окуялар), Pact/Buf текшерүү.
Тесттер: unit/integration/e2e p-босого өтүү, туруктуулук (flake-rate).
Жүктөө smoke: p95/p99 бюджеттин ичинде, эч кандай деградация.
DAST/IAST: эч кандай критикалык findings, сезгич жолдор үчүн пен-тест жагдайлар.
Observability: дашборддор/алерталар "as code" жаңыланган, runbooks тиркелген.
CAB/UAT: релиз терезелеринде тастыктоо (эгерде жөнгө салуучу/бизнес талап кылса).
5) Релиздик стратегиялар
Feature Flags - логикалык киргизүү сызык жок redeploy; мүмкүнчүлүгү "dark баштоо" жана A/B
Canary - трафиктин үлүшүн акырындык менен көбөйтүү (5% → 25% → 50% → 100%), SLO жана аномалиялар боюнча автоматтык roll-forward/rollback.
Blue-Green - параллелдүү чөйрөлөр; заматта которуу, жөнөкөй артка.
Shadow/Traffic Mirroring - колдонуучуларга таасир этпестен, жаңы версияга пассивдүү жол кыймылы.
Ring Deployments - региондор/тенанттар боюнча толкун.
6) Rolls жана бошотуу коопсуздук саясаты
Автооткат триггерлер боюнча: өсүү error-rate, босогодон жогору p95/TTFB, өсүү 5xx/timeout, DLQ секирик.
Кол менен артка кайтаруу: команда '/rollback <service> <sha> 'чат-ботто, релиз-консолдогу бир баскычы.
Freeze Windows: критикалык окуялар (турнирлер/чоку дан) бошотууга тыюу салынат.
Changelog & Release Notes: PR муун, SemVer теги, компоненттери, көчүрүү.
7) DD көчүрүү жана шайкештиги
Expand → Migrate → Contract:1. шайкеш талааларды/индекстерди кошуу;
2. Деплой тиркемелер (окуп/эки схемада жазган);
3. фондук джобдор менен маалыматтарды көчүрүү;
4. эски алып салуу.
Схемалар которулган, көчүрүү idempotent, staging боюнча dry-run.
Protect destructive SQL: require flag/approval, автоматтык backaps жана план-текшерүү.
8) Физикалык жана прогрессивдүү активдештирүү
OPS желектерин (коопсуз иштөө үчүн) жана product желектерин бөлүңүз.
Аудитория боюнча киргизүү: пайыз, гео, тенант, ролу.
желектердин Metrics: конверсия таасири, latency, каталар.
Көйгөйлөрдө - желекти артка кайтарууга тезирээк ороп коюу.
9) Observability бошотуу бөлүгү катары
Traces: аркылуу 'trace _ id' DB/кезек gateway чейин; Эски/жаңы версияларды салыштыруу.
Метриктер: p50/p95/p99, error-rate, RPS, saturation, DLQ, retray, Убакыт-to-Wallet/Бизнес KPI.
Логи: структураланган, PII, корреляция 'request _ id'.
Alerty: SLO-бюджет, on-call шашылыш барактар, auto-түрмөк релизи.
10) Коопсуздук жеткирүү чынжыр (supply chain)
SBOM ар бир курулуш, сактоо жана релиз тегине байланыштуу.
Сүрөт кол тамгалары (cosign), кластерде текшерүү (policy admission).
SLSA-күбөлүк: далилденген артефакт келип чыгышы.
Policy-as-Code (OPA/Conftest): инфраструктуралык PR үчүн deny-by-default.
Secrets: KMS, кыска мөөнөттүү токендер, payplayns айлануу гана.
11) Өзгөрүүлөрдү контролдоо жана процесстер
RFC → CRQ → CAB: документтештирилген жүрүм-турумун өзгөртүү/келишимдер алдын ала макулдашылган.
Release Calendar: продукттар/региондор/командалар боюнча көрүнгөн терезелер.
Runbooks: ар бир компоненти үчүн - иштетүү/кайра/диагностика.
Postmortem/Retro: маанилүү релиздер кийин - талдоо жана иш-аракет.
12) Staging сыноо Profiles
Келишимдик (API/Events): шайкеш келбеген өзгөрүүлөргө бөгөт коюу.
Интеграциялык/e2e: "депозит", "KYC", "чыгаруу" сценарийлери аркылуу.
Жүктөө smoke: өкүлчүлүк чокулары; ресурстук лимиттерди көзөмөлдөйбүз.
Башаламандык сценарийлер: провайдерди өчүрүү, жашыруундуктун өсүшү, тармактык флаппингдер.
Синтетикалык мониторинг: "сыноо" тартиби боюнча бүтүмдөр.
13) чыгаруу максаттары Makefile мисал (үзүндү)
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) Ролдору жана жоопкерчиликтери
Dev/Team: код сапаты, тесттер, көчүрүү, runbooks.
QA: UAT/regression сценарийлери, gates боюнча сапатты көзөмөлдөө.
SRE/Платформа: пайплайндардын ишенимдүүлүгү, байкоо, саясат.
Release Manager: календары, терезелер, CAB, акыркы чечим.
Security: SAST/DAST/SCA, supply-chain, сыр саясаты.
15) чыгаруу жетилген модели
1. Базалык - кол менен текшерүү, сейрек чыгарылыштар, артка кайтаруу кыйын.
2. Advanced - стандартташтырылган CI/CD, staging контур, canary/көк-жашыл, тез-тез релиздер.
3. Эксперттик - Тенанттар/региондор боюнча прогрессивдүү жеткирүү, flags-first, policy-as-code, SLO боюнча автооткат, толук байкоо жана SLSA.
16) Ишке ашыруунун жол картасы
M0-M1 (MVP): пайплайн шаблон, build + sign + SBOM, staging-deploy, негизги тесттер жана gates.
M2-M3: canary/көк-жашыл, алдын ала per-PR, келишим-тесттер, DAST, synthetic текшерүүлөр.
M4-M6: feature flags платформа, shadow traffic, policy-as-code, автооткат, release calendar + CAB workflow.
M6 +: региондор боюнча ring-deployments, SLSA-күбөлүк жана катуу admission, толук автоматташтыруу runbooks.
17) Прод-релиз алдында чек-тизмеси
- Image кол коюлган, SBOM жүктөлгөн жана бошотуу байланыштуу.
- Келишимдер шайкеш келет, тесттер жашыл, e2e staging өттү.
- Migration текшерилген (dry-run), backup даяр, кайтаруу планы сүрөттөлгөн.
- Dashboard/Alert такташты, SLO-гейтс активдүү.
- Runbook жана Changelog жарыяланган, чыгаруу терезелер макулдашылган.
- Feature flags прогрессивдүү жандандыруу үчүн орнотулган.
- Freeze-чектөөлөр сакталган, on-call даяр.
Кыскача корутунду
Туура иштелип staging-paypline башкарылуучу тартипке релиздерди айландырат: бирдиктүү шаблондор, так сапаттуу дарбазалар, корголгон жеткирүү чынжырчасы, прогрессивдүү жылыштар жана байкоо тобокелдикти азайтат жана сапатты жана бизнес-метриктерди көзөмөлдөөнү сактоо менен өндүрүштөгү өзгөрүүлөрдү чыгаруу убактысын кыскартат.