Առաջադիմական ռելիզը և սթեյջինգները
(Բաժին ՝ Ճարտարապետություն և Արձանագրություններ)
1) Ինչո՞ ւ է առաջադեմ առաքումը
Դասական սխեման «dev wintest winstaging informent» չի երաշխավորում անվտանգությունը, որքան ավելի մոտ է երկարաձգմանը, այնքան ավելի բարձր է անհամապատասխանության ռիսկը։ Առաջադիմական ռելիզը նվազագույնի է հասցնում blast radius-ը, աստիճանաբար ավելացնելով մրցույթի/լսարանի մասնաբաժինը և ամրացնելով լուծումները մետրերով և SLO-ով։ Սթեյջինգների հետ կապված սա տալիս է զրոյական դաունթայմ, արագ արձագանք, գործընթացի կրկնություն և որակի չափում։
2) Տերմիններ
Steigings (envierments) - արտեֆակտային կյանքի ցիկլի պաշտոնական փուլերը '«dev», «ci», «qa/test», «staging/pre-2019», ինչպես նաև ephemeral/www.view շրջապատման տակ։
Առաջադիմական թողարկումը (progressivery-launch) վերջնական տարբերակն է/fich: canary, տոկոսային rollout, ring-deplay, ficheflagy, dark-launch, shadow-2019։
Գեյթսը թույլատրման ավտոմատ չափանիշներ է (error rate, p95, բիզնես մետրիկներ, SLO-ի սխալների բյուջե)։
Արտեֆակտների առաջխաղացումը նույն ստորագրված տոմսի առաջխաղացումն է սթեյջինգների միջև (immutable artifact)։
3) Շրջակա միջավայրի քարտեզը և դրանց նշանակումը
3. 1 Հիմնական
Dev (տեղական/ավազաքարեր) 'արագ ցիկլեր, կախվածություն, նվազագույն անվտանգություն։
CI (ինտեգրալ սթենդներ) 'յունիտ/ինտեգրալ/պայմանագրային թեստեր, ստատիկ վերլուծություն, SCA/SOM։
QA/Test: e2e, բեռի, ռեգրեսիայի։ Տվյալները սինթետիկ կամ դիմակավորված են։
Staging/Pre-2019 'առավել «prod»' նույն կազմաձևումը, դրոշները, սահմանները, ֆոնային վերամշակումը։
Մոսկվա ՝ ռազմական պաշտպանություն, SLO/SLI, ալերտներ, արձագանքման պլաններ։
3. 2 Լրացուցիչ
Ephemeral/Medview per PR 'պատի ավտոսրահը pox-request-ում, merge/close-ում։
UAT/Sandbox բիզնես թիմերի համար 'ընդունելություն, ցուցադրություններ, ուսուցման սցենարներ։
Performultlab: մեկուսացված բեռային փորձարկումներ (գեներատորներ, տվյալների կրկնօրինակներ)։
4) Կայուն սթեյջինգի սկզբունքները
Կազմաձևումը որպես կոդ (IaC, GitOps), շրջակա միջավայրի դրաֆը բացառվում է կոդով և ավտոմատ վալիդացիաներով։
Idempotent, ստորագրված արտեֆակտներ (SBSA, provenae, attestrone), մեկ build wwww.m.i-stage deploy։
Պարիտետը երկարությամբ 'rantaim, limits, ցանցային քաղաքականություններ, որոնք միացված են դրոշները։ Տարբերությունը միայն գաղտնիքներում/տվյալների մեջ է։
TDM (test no.) 'սինթետիկ/դիմակավորում, թուղթ և նստատեղեր, որպես փայտանյութի մի մասը։
By des.ru-ի դիտարկումը, լոգարանների/հետքերի հարաբերակցությունը, բոլոր փուլերում միասնական դաշբորդները։
5) Առաջադիմական մոդելը
5. 1 Մոտեցման գործիքներ
Ֆիչեֆլագները ՝ սեգմենտների ֆունկցիոնալի անջատումը (երկիր, հաճախորդ, ակունտ, randium seed)։
Canary: 1-5-10-25-50-100 տոկոսը համագործակցում է յուրաքանչյուր խաղացողների հետ։
Ring-depla-ը 'օղակների ընդլայնումը (wwww.al medemployees nobeta public)։
Blue-Green: ատոմային ֆլիպ պլատֆորմի մեծ ագրեգադների համար։
Dark-launch: թաքնված կատարումը առանց ազդեցության օգտագործողի վրա (հավաքումը)։
Shadow-traff: Հարցումները նոր տարբերակում են առանց օգտագործողի պատասխանի։
5. 2 Ավտոմատ խաղեր
Տեխնոլոգները ՝ error rate, p95/p99, saturation, queue lag։
Բիզնես մետր 'հեղինակային իրավունքի, վճարման փոխադարձության, ձագերի քայլերի մերժումը։
SLO/error budget: Արագ կանգառ, երբ արագացված այրվում է սխալների բյուջեն։
Կարգավիճակը 'նվազագույն ժամանակը/ծավալը մի քայլ է, որպեսզի չընդունեն որոշումները «աղմուկով»։
6) CI/CD տիպային շղթան (հանրաքվե)
1. Commit/PR no Build: Միասնական պատկեր/փաթեթ, ստորագրություն, SBSA։
2. CI-тесты: unit/integration/contract + security (SAST/SCA/secret-scan).
3. Ephemeral diview: Պատի ինքնաբերումը ձեռքով ստուգման/UX-ի համար։
4. QA/Test: e2e + 35+ քաոս թեստեր (oporational)։
5. Staging: smoke, կրիտիկական օգտագործողական ճանապարհների ռեգրեսիա, BD խմբակցությունների ստուգում։
6. Delcanary: 1-5 տոկոսը ռուսական խաղացողները 10-25-50-100 տոկոսն են։
7. Արձագանքը/ավարտը 'խնդիրների դեպքում' avto-rollback; հաջողության դեպքում հին տարբերակի փոխկապակցումն է։
7) Տվյալների և սխեմաների կառավարում
Expand-migrate-medract: հակամարմնային լուծումներ, ֆոնային փոխանցումներ, chekpoints, idempotenty։
Ձայնագրությունների երկշաբաթությունը (dult-write) deduplication-ով կամ «գործարքային ֆայլը box»։
Noking/prod տվյալների հավաքումը staging-ի համար (իրավաբանորեն և տեխնիկապես անվտանգ)։
Քեշի/նստաշրջան 'արտաքին ձեռնարկություններ, տաք մեկնարկը, հաշմանդամության քաղաքականությունը ֆլիպով։
8) Անվտանգություն և համապատասխանություն
Գաղտնիքները ՝ KFC/Secrets Express, rotation, ամենափոքր արտոնությունների սկզբունքը։
Սթեյջինգի մեկուսացումը 'ցանցեր/հաշիվներ/նախագծեր; պատահական համաժամացման արգելք։
Audit/trais Records: Ո՞ վ/ինչ/երբ դուրս հանեց արտեֆակտի տարբերակը, change approval-ը։
PO-ի մատակարարումները 'ստորագրության հավատարմագրում, ռեստրատների նկատմամբ վստահության քաղաքականություն, «latest» արգելք։
9) Դիտողությունն ու շահագործումը
Մետաքսի միասնական ձևաչափը '<>, version, commit, stage, region, ring =>։
Համեմատություն baseline 'canareka vs կայուն տարբերակը որոշ գրաֆիկների վրա։
Ալերտները SLO-ով 'ապրանքային և տեխնոլոգիական, տարբեր շեմեր canary-ի համար։
Post-rele.ru: Առնվազն N ժամ/օր ձերբակալված ազդեցությունների համար։
10) Արձագանքներ և դժբախտ պատահարների պլաններ
Կոճակը/արձագանքման թիմը pline-ի մի մասն է (ոչ ձեռքով)։
Դրոշի ռևերսը ավելի արագ է, քան (kill-switch)։
Ձեռնարկված միջոցները ասում են. Idempotent կրկնվող վերամշակումներ, որոնք փոխհատուցում են գործարքները, deduplication։
Պլեյբուսները նշում են, թե ով է որոշում, հաղորդակցման ալիքներ, հաղորդագրությունների ձևանմուշներ։
11) Արժեքը և արտադրողականությունը
Ephemeral-միջավայրը խնայում է փողը, եթե ագրեսիվ մեքենան հեռացվում է։
Blue-Green-ը կարճ ժամանակ ավելի թանկ է, քան թողարկման ժամանակը։ canary ավելի էժան է, բայց պահանջում է հասուն մետր։
Մեքենայի սկեյլինգը բեռնման և պատուհանի երկայնքով։ քվոտաներ գերազանցող ստենդներ։
12) Հաճախակի հակատանկային արտոնագրեր
Շրջապատի դրեյֆը 'հոսանքներով ձեռքով, «այն փոքր է»։
Շրջապատի մեկ տոմս ՝ rebuild per stage-ը «ոչ հերոսական» prod-ուղեբեռի է։
Ոչ ակտիվ տվյալների թեստերը 'կանաչ "թեստեր, որոնք ընկնում են երկարության մեջ։
Խաղացողների բացակայությունը 'SLO-ի փոխարեն զգացմունքների ալգորիթմներ։
Երկար TTL-ը RF-ում Blue-Green-ում։ stickiness բացակայությունը մասնակի օպտիկայի ժամանակ։
Անհամատեղելի BD սխեմաների խառնուրդը canary/stable-ում։
13) Չեկ թերթերը
Բացելուց առաջ
- Պատկեր ստորագրվել է, SBSA-ն հավաքվել է, քրիթային մակարդակի խոցելիությունը փակված է։
- Peter BD-ն փոխկապակցված է (expand)։
- Թեստերի տվյալները դիմակավորված են/սինթետիկ։
- Dashbords/alerts նոր տարբերակի համար պատրաստ են։
Նախքան դուրս գալը 2019 թվականին
- canary պլանը քայլերով և շեմերով պնդվում է։
- Kill-switch-ը և արձագանքման պլանը ստուգված են staging-ի վրա։
- Traffic shadow կամ dark-launch կատարվում է (հնարավորության դեպքում)։
- On-call տեղեկացված է, պատուհանի ժամանակը համաձայնեցված է։
Թողարկումից հետո
- SLO Production N ժամ։
- Մաքրումը/www.ract-ը օգտագործվում է։
- Հետադարձ հայացք և պլեյբուսի ապդեյթ։
14) Ճարտարապետության իրականացման տարբերակները
Մոնոլիտ 'գերազանցելով + Blue-Green, իսկ ֆիչին' դրոշի միջոցով։ սահմանափակ canary URL/տիկնիկներ։
Միկրովեռները 'canary/ring բնական; խիստ կառավարումը պայմանագրերով (CDC), API տարբերակումը։
Stateful ծառայություններ: Blue-Green-ը տաքացումով և հստակ միգրացիայի պլանով։ առանձին հերթեր/տեղեր per version.
15) GitOps (ուրվագիծ)
Reposorium app (կոդը) արտադրում է արտեֆակտը և մանիֆեստ է դնում env-ի ռեպոզորիայի մեջ։
GitOps-գործակալը (Argo CD/Flux) համաժամեցնում է «env/dev», «env/qa», «env/staging», «env/210»։
Պրոմոիցիան 'pox-request-ի միջոցով ճիշտ steige-ի համար։ Մերջը ձգում է ճեղքումը և խաղալիքները։
16) Վերջերի և լսարանների կառավարումը
Սեգմենտացիան 'հաճախորդի, երկրի, կառուցվածքի, կիրառման տարբերակների, AB-coute-ի, օրվա ընթացքում։
Աստիճանական ընդարձակումը '1 տոկոսը ներքին 245 տոկոսը բետա է 25 տոկոսը վաղ հաճախորդները ամեն ինչ կազմում են 100 տոկոսը։
A/B-փորձարկումները և պարամետրերը ապրանքային վարկածների համար նույն դրոշների մեխանիզմի վրա։
17) Գործնական սցենարներ
Սցենարը 1: նոր էքսպորտային ինտեգրում
1. Ephemeral Stend per PR, QA-report։ 2) Staging smoke + sandbox պրովայդեր։
2. Wincanary 1 տոկոսը «X-Cohere = www.al» վերնագրով։ 4) Գեյթ 'error rate, p95 callback, հաջողակ գործարքների մասը։
3. 1→5→25→50→100%; քայքայման ժամանակ kill-switch։
Սցենարը 2: apgraid rantima (JDK/Node/OS)
Blue-Green-ի մակարդակի վրա. Green-ը տաքանում է, մեջբերում է «expand», flip, դիտարկումը, flip back խնդիրներ։
Սցենարը 3: high-risk UI-fich
Dark-launch + ֆիչեֆլագը միայն beta օգտագործողների համար, UX-metric հավաքումը, լսարանի աստիճանական ընդլայնումը։
18) Գործիքների նվազագույն հավաքածու
CI: build, թեստեր, ստորագրություն, SBSA։
CD/GitOps: Argo CD/Flux/Spinnaker կամ national ամպային գործիքներ։
Routing: Ingress/Service Mesh (weighted, header/cookie based).
Ֆիչեֆլագի ՝ LaunchDarkly/Unleash/OpenFeature/ինքնագրական ծառայություն։
Observability: metrics, logs, հետքեր, ալերտներ; մեկ dashbords per stage.
TDM 'դիմակավորում, սիդինգ, սինթետիկ գեներատորներ։
Տե՛ ս ՝ գաղտնիքներ, KFC, կիսագնդի քաղաքականություն, կախվածության ստուգում։
19) Ռեզյումե
Առաջադիմական թողարկումը ստեյջինգի համադրություն է։ Հաջողությունը պահվում է չորս սեղանների վրա ՝ immutable artefakts, SLO-ի ավտոմեքենաները, տվյալների սխեման և արագ արձագանքը։ Ավելացրեք վերափոխումը, GitOps-ը և ficheflage-ը, և ձեր թողարկումը կդառնա կանխատեսելի, անվտանգ և արագ։