Staging-interplines և alements
1) Ինչու՞ պետք է staging-www.pline
Staging-www.pline-ը PR-ից արտեֆակտի ստանդարտ ճանապարհն է, որը երկարացվել է որակի և անվտանգության ստուգումներով «լռելյայն»։ Նպատակները
հավաքման և հավաքման վերարտադրողականությունը;
արագ և կանխատեսելի ֆիբեկ;
ռիսկի նվազեցում (առաջադեմ ծալքեր, ֆիչեֆլագներ, արձագանքներ);
համապատասխանությունը և փոփոխությունների վերահսկումը։
2) Մատակարարման ստանդարտ հոսքը (high-level)
1. PR-ն պարունակում է ավտոմատ ստուգումներ (lint, unit, SFC, լիցենզիա)։
2. Build-ը դետերմինացված պատկեր/փաթեթ, ստորագրություն և SBSA-ն է։
3. Test on Ephemeral-ը բացատրում է per-PR շրջապատը։
4. Merge → Staging:- պատկերի մի կտոր;
- պայմանագրային, ինտեգրալ, e2e թեստեր;
- DFC/IFC, ռեգրեսիաներ, բեռի smoke;
- ձեռքի UAT/QA անհրաժեշտության դեպքում։
- 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
- 6. POST-deploy ստուգումը և SLO/error budget-ը։
- 7. Runbook/Changelog 2019-ը և հետադարձ հայացքը։
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-ը և պատրաստության չափանիշները (Quality Gates)
Կոդը և անվտանգությունը 'ոսպնյակներ, ծածկույթ, SFC/SCA, կախվածության քաղաքականություն, «critical/high» բացակայություն։
Պայմանագրեր 'սխեմաների համատեղելիություն (API/իրադարձություններ), Pact/Buf ստուգումներ։
Թեստեր ՝ unit/integration/e2e p-շեմն, 108 (flake-rate)։
Ծանրաբեռնված smoke: p95/p99 բյուջեի շրջանակներում, չկա դեգրադացիա։
DFC/IFC: Չկան քննադատական findings, պեն-թեստեր զգայուն ճանապարհների համար։
Observability: dashbords/alerts «as code» -ը նորարարված է, runbooks կցված են։
CAB/UAT: Հաստատումը կիսագնդի պատուհաններում (եթե անհրաժեշտ է կարգավորող/բիզնես)։
5) Հիբրիդային ռազմավարությունները
Canary-ը միգրանտների մասնաբաժնի աստիճանական բարձրացումն է (5% 2425% 2450% 24100%), ավտոմատ roll-forward/rollback SLO-ով և անոմալիաներով։
Blue-Green-զուգահեռ միջավայրեր; ակնթարթային անջատիչ, պարզ արձագանք։
Feature Flags-ը տրամաբանական դելֆիչ է առանց redeploy; հնարավորություն «dark launch» և A/B։
Shadow/Traffic Mirroring-ը պասիվ պրոգրոն է նոր տարբերակի վրա առանց օգտագործողների վրա ազդեցության։
Ring Deployments-ը ալիքներ է տարածաշրջանների/տենանտների վրա։
6) Օրինագծերի անվտանգության և ազատության քաղաքականությունը
Ավտոտկատը ձգողներով 'error-rate, p95/TTFB ավելի բարձր շեմն է, 5xx/timeout աճը, DLQ-ի աճը։
Ձեռքի արձագանքը '«/rollback
Freeze windows: արգելված է ռելիզը կրիտիկական իրադարձությունների մեջ (մրցույթներ/պիկ խաղեր)։
Changelog & Releant Notes: PR-ից, SemVer-ի թեգերը, բաղադրիչները, արտադրողները։
7) Intel BD և համատեղելիությունը
Expand → Migrate → Contract:1. ավելացնել համատեղելի դաշտեր/ինդեքսներ;
2. հավելված (կարդում/գրում է երկու սխեմաներում);
3. տվյալների միգրացիան ֆոնային ջոբներով;
4. հեռացնել հինը։
Սխեմաները տարբերակվում են, www.idempotent, www.y-run staging-ում։
Ռուսական destructive SQL: require flag/approval, ավտոմատ bekaps և plan-krok։
8) Ֆիչեֆլագին և առաջադիմական ակտիվացումը
Բաժանեք ops դրոշները (անվտանգ օգտագործման համար) և wwww.t դրոշները։
Հանդիսատեսի գրանցումը 'տոկոսը, գեոն, տենանտը, դերը։
Դրոշների չափումները 'ազդեցությունը ծրարի վրա, latency, սխալներ։
Խնդիրների դեպքում դրոշի փաթեթը ավելի արագ է, քան արձագանքը։
9) Observability-ը որպես ֆորումի մի մասը։
Թրեյզներ ՝ «trace _ id» -ի միջոցով gateway-ից մինչև BD/հերթով; համեմատություն հին/նոր տարբերակների հետ։
Մետրիկները ՝ p50/p95/p99, error-rate, RPS, saturation, DLQ, retray, Time-to-Wallet/Business KPI։
Լոգները 'կառուցվածքային, դիմակավորում PII, հարաբերակցություն «request _ id»։
Ալբերտներ ՝ SLO բյուջե, հրատապ էջեր on-call, Auto-Scarts։
10) Մատակարարման շղթայի անվտանգությունը (supply chain)
SBTS-ը յուրաքանչյուր տոմսի, պահեստավորման և կցման վրա։
Պատկերների ստորագրությունները (cosport), կլաստերի ստուգումը (policy admission)։
SLIM հավաստագրություն 'արտեֆակտայի ապացուցված ծագումը։
Policy-as-Code (OPA/Wintest): deny-by-international PR-ի համար։
Գաղտնիքները ՝ միայն KFC-ից, կարճ հոսանքներով, պարտատոմսերով։
11) Փոփոխությունների և գործընթացների վերահսկումը
RMS www.CRQ www.CAB-ը 'վարքագծերի փաստաթղթավորված փոփոխությունը/ստուգում ենք նախապես։
Releant Calendar: տեսանելի պատուհաններ ապրանքների/տարածաշրջանների/թիմերի վրա։
Runbooks: Յուրաքանչյուր բաղադրիչի համար 'ներառման/նվազեցման/ախտորոշման ընթացակարգեր։
Postmortem/Retro 'նշանակալի օրինագծերից հետո' վերլուծություն և գործողություններ։
12) Թեստերի պրոֆիլները staging-ում
Պայմանագրային (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-ի վրա։
MSE/Պլատֆորմ: 108 plins, դիտարկելիություն, քաղաքականություն։
Releant Tramp: օրացույց, պատուհաններ, CAB, վերջնական լուծում։
Մոսկվա: SFC/DJ/SCA, supply-chain, գաղտնիքների քաղաքականություն։
15) Օրինագծերի հասունության մոդել
1. Ստուգումները, հազվագյուտ օրինագծերը, արձագանքները դժվար են։
2. Առաջընթաց - ստանդարտ CI/CD, staging-103, canary/blue-green, հաճախակի թողարկումներ։
3. Փորձարկիչը տենանտների/տարածաշրջանների առաջադիմական առաքումն է, feature flags-first, policy-as-code, SLO-ի ավտոտնակը, ամբողջական հետադարձելիությունը և SLSA-ը։
16) Իրականացման ճանապարհային քարտեզը
M0-M1 (MVP) 'pline, build + sport + SBSA, staging-depla, հիմնական թեստեր և gates։
M2-M3: canary/blue-green, ավելի բարձր per-PR, պայմանագիր-թեստեր, DMS, winthetic disks։
M4-M6: feature flags պլատֆորմը, shadow traffic, policy-as-code, ավտոտկատ, releportcalendar + CAB-vorkflow։
M6 +: ring-deployments տարածաշրջաններում, SLIM հավաստագրում և խիստ admission, runbooks ամբողջական ավտոմատիզացիա։
17) Chek-Show-Like-ից առաջ
- Ստորագրվել է, SBSA-ն բեռնված է և կապված է վերանորոգման հետ։
- Պայմանագրերը համատեղելի են, փորձարկումները կանաչ են, e2e անցան staging։
- Մոսկվան ստուգված է (wwww.y-run), բեքապը պատրաստ է, արձագանքման պլանը։
- Dashbords/alerts նորարարվում են, SLO-gats ակտիվ են։
- Runbook և Changelog-ը հրապարակվում են, պատուհանները համաձայնեցված են։
- Feature flags-ը վճռական է առաջադիմական ակտիվացման համար։
- Freeze սահմանափակումները պահպանվում են, on-call պատրաստ է։
Հակիրճ եզրակացություն
Գրագետ նախագծված staging-interpline-ը վերափոխում է օրինագծերը կառավարվող ռուտինի ՝ մեկ ձևանմուշներ, հստակ quality gates, պաշտպանված մատակարարման շղթա, առաջադեմ դասավորություններ և դիտողություններ նվազեցնում են ռիսկը և նվազեցնում փոփոխությունը վաճառքների մեջ 'պահպանելով վերահսկողությունը որակի և բիզնեսի չափումների վրա։