Гузаронидани қубурҳо ва релизҳо
1) Чаро ба шумо лӯлаи қубур лозим аст
Лӯлаи намоишӣ роҳи стандартии артефакт аз PR то истеҳсолот бо санҷиши сифат ва бехатарӣ "бо нобаёнӣ. "Ҳадафҳо:- ҷамъоварӣ ва озод кардани репродуктивӣ;
- фикру мулоҳизаҳои зуд ва пешгӯишаванда;
- кам кардани хатар (ғелондани прогрессивӣ, phicheflags, rollbacks);
- назорати мувофиқат ва тағирот.
2) Ҷараёни таъминоти истинод (сатҳи баланд)
1. PR → чекҳои автоматӣ (линт, воҳид, SAST, литсензияҳо).
2. Сохтани → тасвири/бастаи детерминистӣ, имзо ва SBOM.
3. Санҷиш дар Эфемерал → пешнамоиш-муҳити як PR.
- ҷойгиркунии тасвир;
- шартнома-, интегратсия, санҷишҳои e2e;
- DAST/IAST, регрессия, боркунии дуд;
- дастури UAT/QA агар лозим бошад.
- 5. Озод кардани номзад (RC) → равзанаи яхкунӣ → Prod (канарӣ/кабуд-сабз).
- 6. Санҷишҳои пас аз ҷойгиркунӣ ва худкор ба буҷаи SLO/хато.
- 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) Меъёрҳои дарвоза ва омодагӣ (Дарвозаҳои сифат)
Кодекс ва амният: линтҳо, фарогирӣ, SAST/SCA, сиёсати вобастагӣ, ҳеҷ гуна интиқодӣ/баланд нест.
Шартномаҳо: мутобиқати схемаҳо (API/рӯйдодҳо), чекҳои Pact/Buf.
Санҷишҳо: воҳиди/ҳамгироӣ/ҳадди p-e2e, устуворӣ (суръати баланд).
Дуди бор: p95/p99 дар доираи буҷа, деградатсия нест.
DAST/IAST: бозёфтҳои муҳим, сенарияи санҷиши қалам барои роҳҳои ҳассос нестанд.
Мушоҳида: панели панелҳо/огоҳиҳо "ҳамчун рамз" навсозӣ, дафтарҳои замимашуда.
CAB/UAT: тасдиқ дар тирезаҳои озод (агар талаб карда шавад танзим/тиҷорат).
5) Стратегияҳои озодкунӣ
Канария - тадриҷан зиёд шудани ҳиссаи трафик (5% → 25% → 50% → 100%), гардиши автоматӣ/бозгашт барои SLO ва аномалияҳо.
Кабуд-Сабз - васоити параллелӣ; калиди фаврӣ, гардиши оддӣ.
Парчамҳои хусусият - дохил кардани мантиқии хусусиятҳо бе redeploy; "оғози торик" ва қобилияти A/B.
Shadow/Mirroring Traffic - трафики ғайрифаъол ба версияи нав бидуни таъсир ба корбарон мегузарад.
Ҷойгиркунии ҳалқаҳо - мавҷҳо аз рӯи минтақа/иҷорагир.
6) Сиёсати амният ва озодкунӣ
Бозгашти худкор аз ҷониби триггерҳо: афзоиши суръати хатогӣ, p95/TTFB аз ҳадди ниҳоӣ, афзоиши 5xx/вақт, хӯшае DLQ.
Бозгашти дастӣ: фармон '/бозгашт <service> <sha> 'дар чатбот, як тугма дар консол.
Тирезаҳоро ях кунед: озод кардан ба рӯйдодҳои муҳим (мусобиқаҳо/бозиҳои қуллаҳо) манъ аст.
Қайдҳои Changelog & Release: насл аз PR, барчаспҳои Semver, ҷузъҳо, муҳоҷират.
7) Муҳоҷирати пойгоҳи додаҳо ва мутобиқат
Тавсеаи → Муҳоҷират → Шартнома:1. Илова кардани майдонҳо/индексҳои мувофиқ
2. Ҷойгиркунии барнома (ба ҳарду схема мехонад/менависад);
3. муҳоҷирати маълумот бо корҳои пасзамина;
4. кӯҳна нест кунед.
Схемаҳо кӯчонида шудаанд, муҳоҷирати ғайримуқаррарӣ, хушккунӣ дар саҳна.
SQL-и харобшударо ҳифз кунед: парчам/тасдиқ, нусхаҳои эҳтиётии автоматӣ ва нақшаи санҷишро талаб кунед.
8) Ficheflags ва фаъолсозии прогрессивӣ
Парчамҳои ҷудогона (барои кори бехатар) ва парчамҳои маҳсулот.
Дохилшавӣ аз ҷониби шунавандагон: фоиз, гео, иҷорагир, нақш.
Нишондиҳандаҳои парчам: таъсири табдилдиҳӣ, ниҳонӣ, хатогиҳо.
Дар ҳолати мушкилот - ҷамъ кардани парчам тезтар аз гардиш аст.
9) Мушоҳида ҳамчун як қисми озодкунӣ
Нишонаҳо: 'пайгирӣ _ id' аз дарвоза то DB/навбатҳо; муқоисаи версияҳои кӯҳна/нав.
Нишондиҳандаҳо: p50/p95/p99, хатогӣ, RPS, пуррагӣ, DLQ, retray, Time-to-Wallet/Business KPI.
Гузоришҳо: сохташуда, ниқоби PII, таносуби 'дархост _ ид'.
Огоҳиҳо: Буҷаи SLO, саҳифаҳои таъҷилии занг, худкор-конволютсияро озод кунед.
10) Амнияти занҷираи таъминот
SBOM барои ҳар як сохтмон, нигоҳдорӣ ва ҳатмӣ ба барчасп.
Имзоҳои тасвир (cosign), санҷиш дар кластер (қабули сиёсат).
Аттестатсияи SLSA: пайдоиши исботшудаи артефакт.
Policy-as-Code (OPA/Conftest): рад кардани пешфарз барои PR-ҳои инфрасохторӣ.
Асрҳо: танҳо KMS, нишонаҳои кӯтоҳмуддат, гардиши қубур.
11) Тағйир додани назорат ва равандҳо
RFC → CRQ → CAB: мо дар бораи тағир додани ҳуҷҷатгузории рафтор/шартномаҳо пешакӣ розӣ ҳастем.
Тақвими нашр: Тирезаҳои намоён аз рӯи маҳсулот/минтақа/даста.
Китобҳои корӣ: барои ҳар як ҷузъ - тартибот барои фаъол/бозгардонидан/ташхис.
Postmortem/Retro: пас аз нашри назаррас - таҳлил ва амал.
12) Марҳилаи профилҳои санҷишӣ
API/Чорабиниҳо-Блоки тағиротҳои номувофиқ.
Integration/e2e: сенарияҳои ниҳоӣ "амонат", "KYC", "хуруҷ".
Дуди бор: қуллаҳои намояндагӣ; мо маҳдудиятҳои захираҳоро назорат мекунем.
Сенарияҳои бесарусомонӣ: қатъ шудани провайдер, афзоиши таъхир, флаппингҳои шабака.
Мониторинги синтетикӣ: амалиётҳои "озмоишӣ" аз рӯи ҷадвал.
13) Намунаи макефили ҳадафҳои раҳоӣ (порча)
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: сифати рамз, санҷишҳо, муҳоҷират, дафтарчаҳо.
QA: сенарияҳои UAT/регрессия, назорати сифат дар дарвозаҳо.
SRE/Платформа: эътимоднокии қубур, мушоҳида, сиёсат.
Мудири барориш: тақвим, тирезаҳо, CAB, ҳалли ниҳоӣ.
Амният: SAST/DAST/SCA, занҷираи таъминот, сиёсати махфӣ.
15) Модели камолот
1. Асосӣ - чекҳои дастӣ, релизҳои нодир, роликҳо мушкиланд.
2. Пешрафта - стандартҳои CI/CD, намоиши контурӣ, канарӣ/кабуд-сабз, релизҳои зуд-зуд.
3. Эксперт - таҳвили прогрессивӣ аз ҷониби иҷорагирон/минтақаҳо, парчамҳои аввал, сиёсат-ас-код, боркунии худкори SLO, пайгирии пурра ва SLSA.
16) Харитаи роҳсозӣ
M0-M1 (MVP): қолаби қубур, сохтани + аломати + SBOM, ҷойгиркунӣ, санҷишҳои асосӣ ва дарвозаҳо.
M2-M3: канарӣ/кабуд-сабз, пешнамоиш барои PR, санҷишҳои шартнома, DAST, санҷишҳои синтетикӣ.
M4-M6: платформаи парчамҳои хусусӣ, трафики сояафкан, сиёсат-ас-код, худкори бозгашт, тақвими озод + ҷараёни кории CAB.
M6 +: ҷойгиркунии ҳалқаҳо аз рӯи минтақа, сертификатсияи SLSA ва қабули қатъӣ, автоматизатсияи пурраи дафтарҳо.
17) Рӯйхати санҷиши пеш аз нашр
- Тасвири имзошуда, SBOM бор карда ва озод карда шудааст.
- Шартномаҳо мувофиқанд, санҷишҳо сабз мебошанд, e2e ба саҳна гузошта мешаванд.
- Муҳоҷират тафтиш карда шуд (хушк), нусхаи эҳтиётӣ, нақшаи бозгашт тавсиф карда шудааст.
- Панели панелҳо/огоҳиҳо нав карда шуданд, дарвозаҳои SLO фаъоланд.
- Runbook ва Changelog нашр карданд, тирезаҳои озод розӣ шуданд.
- Парчамҳои хусусият барои фаъолсозии прогрессивӣ танзим карда шудаанд.
- Маҳдудиятҳои яхкунӣ риоя карда мешаванд, занг омода аст.
Хулосаи мухтасар
Лӯлаи хуб тарҳрезишуда релизҳоро ба реҷаи идорашаванда табдил медиҳад: қолабҳои ягона, дарвозаҳои тозаи сифат, занҷири таъминоти бехатар, ғалтаки прогрессивӣ ва мушоҳидаҳо хавфро коҳиш медиҳанд ва вақти тағиротро дар истеҳсолот коҳиш медиҳанд ва ҳангоми назорат аз болои сифат ва ченакҳои тиҷорат.