Միգրացիայի տարբերակների վերահսկումը
1) Ինչու՞ տարբերակել կազմաձևը
Կազմաձևումը կատարյալ քաղաքականություն է 'այն որոշում է միկրոօրգանիզացիա, լիմիտներ, ֆիչի դրոշներ, հասանելի, տվյալների սխեմաներ։ Տարբերակների վերահսկումը փոփոխում է կրկնվող, տեսանելի և շրջադարձային: Այն նվազեցնում է MTTR-ը և change-failure rate-ը, ազատում է «վաճառքից մոգությունից», տալիս է անվտանգության և կոմպլանսի աուդիտ։
2) Միգրացիաների տաքսոնոմիա
Ենթակառուցվածքային (IaC) 'կլաստերներ, ցանցեր, LB, BD, գծեր։
Ծառայողական 'դիմումների պարամետրեր, ռեսուրսներ, սահմաններ, թայմաուտներ, ռետրաններ։
Ապրանքային/բիզնես տրամաբանությունը 'սակագները, AB-փորձարկումները, բովանդակության կանոնները։
Տվյալները/WindoOps: սխեմաների պայմանագրեր, SLA թարմացումներ, փոխակերպումներ։
Անվտանգություն 'հասանելիության քաղաքականություն, դերեր, բանալիներ/հավաստագրեր (գաղտնիքները ռեպոյի սահմաններից դուրս)։
Դիտարկումը 'SLI/SLO, ալերտներ, dashbords։
Կանոն 'այն ամենը, ինչ ազդում է համակարգի վարքագծի վրա, կազմաձևումն է և պետք է ապրի տարբերակի տակ։
3) Տարբերակների կառավարման սկզբունքները
1. GitOps 'ճշմարտության միակ աղբյուրը ռեպոզորիա է։ փոփոխությունները PR-ի միջոցով և ավտոմատ շարժիչները։
2. Ագրեսիվություն 'աշխատանքային վիճակի նկարագրություն, ոչ թե քայլերի ջութակներ։
3. Արտեֆակտների իմուտաբելությունը ՝ քրոմոսոմը, ակնհայտորեն նյութականացված կեղևը։
4. Սխեմաները և վալիդացիան ՝ JSON/YAML-schema, տիպերի խիստ մեջբերումը, պարտադիր դաշտերը։
5. Միջավայրը որպես կոդ '«env» - թղթապանակներ/overlei (dev/stage/2019), տարբերությունը նվազագույն է և ակնհայտ։
6. Idempotenty-ը և արձագանքները 'կազմաձևի ցանկացած թողարկումը եկեք նայենք (revation/rollback)։
7. Աուդիտ և հետադարձ կապ 'հեղինակը, պատճառը, հյուսետը/RTS, փոփոխությունների ստորագրությունները։
4) Տարբերակման ռազմավարությունը
SemVer-ի համար ("MAJOR)։ MINOR. PATCH`):- MAJOR-ը սխեմաների/քաղաքական անհամատեղելի փոփոխություններ է։
- MINOR-ը նոր դաշտեր/կանոններ է, հակառակը։
- PATCH - արժեքների ուղղում առանց սխեմաների փոփոխության։
- Ռուսական և rele.notes: Փոխված է, թե ինչպես արձագանքել, վերահսկել կետերը։
- Pinning/www.k-ֆայլեր. Մենք արձանագրում ենք կախվածության տարբերակները (մոդուլներ, գծապատկերներ)։
- Matofts տարբերակները 'X-ի դիմումի արտեֆակտը համատեղելի է Y-ի դելգի հետ (մատրիցա-ում)։
5) Ռեպոզորիայի կազմակերպությունը
config-repo/
policies/ # общие политики (RBAC, SLO, алерты)
services/
checkout/
schema/ # JSON/YAML схемы конфигов base/ # дефолтные значения overlays/
dev/
stage/
prod/
data-contracts/ # схемы данных, SLA свежести releases/ # теги, changelog, артефакты валидации tools/ # линтеры, генераторы, тесты
Ճյուղը ՝ trunk-based (main) + կարճ feature-ճյուղեր։ Mult-ը միայն PR-ի միջոցով է CI-ից։
6) Վալիդացիան և փորձարկումը
Սխեմա 'յուրաքանչյուր փոփոխություն կատարվում է սխեմայի ստուգման միջոցով (required, enum, ranges)։
Ստատիկ ոսպնյակներ 'ձևաչափ, բանալիներ, դուբլի, արգելված դաշտեր։
Թեստերը ցույց են տալիս, որ www.org + տարբերակը/աղյուսակը բարձրանում են ավազի մեջ։
Հսկիչ ավազակները ՝ www.y-run կիրառություններ, «what-if» -ը նպաստում են ֆինանսական վիճակին։
Քաղաքական-as-code: Թույլատրության կանոնները (Rego/CEL) - ով և ինչ կարող են փոխել։
7) Միգրացիաների պառակտումը և արձագանքը
Progressive medivery: Կանարեյկան 1 տոկոսը 5 տոկոսն է: 25 տոկոսը SLO-hardrels-ի հետ։
Գեյթ Դոպլոյ 'չկա ակտիվ SEV-1, կանաչ ալտերտեր, վալիդիններ, արձագանք։
Արձագանք ՝ "reversance vX. Y.Z 'կամ անցում նախորդ սարքավորումների վրա; թիմերը փաստագրված են runbook-ում։
Արբիտրաժի նույնականացումները 'դելեգի տարբերակը հրապարակվում է մետրերում/լոգարաններում, որպեսզի արագ հարաբերվի միջադեպերի հետ։
8) Դինամիկ և հեռավոր կազմաձևը
Remote medical/feature flags: Մենք փոխում ենք պարամետրերը առանց restart; բոլոր դրոշները նույնպես GitOps-ի տակ են։
Սահմանները 'որ պարամետրերը թույլատրվում են դինամիկ փոխել (սպիտակ ցուցակների ցանկը)։
Քեշը և կոնսիստենտալությունը ՝ TTL, տարբերակներ, ատոմային փոխարինումը հավաքածուի (երկտեղանոց հրատարակություն)։
Ապահով փետուրներ 'սահմաններ և միջակայքներ runtime-փոփոխության համար, auto-rollback, երբ SLO-ն դուրս է գալիս։
9) Գաղտնիքները և զգայուն տվյալները
Երբեք գաղտնիքներ չենք պարունակում։ Միգրացիաներում միայն հղումներ/պլեիսհոլդերներ են։
Գենդերային ֆայլերի կոդավորումը, անհրաժեշտության դեպքում, գաղտնիքների/կոդերի մենեջերի հետ ինտեգրումը։
Ռոտացիան և JIT: Հասանելի են վիրահատությունների ժամանակ։ գործողությունների հետքը անփոփոխ է։
Դաշտային դիմադրություն 'վալիդացիան արգելում է PII/գաղտնիքները 2019 թվականին։
10) Շրջակա միջավայրի կառավարումը
Box + overlays: տարբերությունները dev/stage/210-ի միջև նվազագույն և թափանցիկ են։
Promotion-ը արտեֆակտների վրա 'նույն սարքավորումը, որը անցել է stage-ը, շարժվում է։
Ժամանակավոր պատուհանները 'գենդերային փոփոխությունները չեն տեղի ունենում հերթապահության փոփոխության ժամանակ։ risk-high-RSA-ի և ծառայության պատուհանի համար։
11) Բացահայտումը և դրեյֆը
Վերահսկիչը համեմատում է նպատակային վիճակը իրական և զեկույցի հետ։
Drift-alerts: Page միայն կրիտիկական տարբերությունների դեպքում։ մնացածը Ticket-ն է։
Avto-remediation: Երբ լուծվում է, հանգեցնում է նպատակային վիճակի։
Ձեռքի աջերի աուդիտը 'ցանկացած «kubectl edit/sh» բացատրում է գործընթացի և CAPA-ի դեպքը։
12) Միգրացիաների և ունեցվածքի կատալոգ
Մրցույթի կատալոգը 'սեփականատերը, SLO, որոնք կապված են քաղաքականության, սխեմաների, տարբերակների, համատեղելիության հետ։
RACI 'Ով առաջարկում է, թե ով է նախանձում, թե ով է հավանություն տալիս։ CAB-ը high-risk-ի համար։
Թափանցիկություն. Յուրաքանչյուր ձայնագրություն ունի տարբերակների պատմություն և հղում PR/ticets/AAR-ում։
13) Հասունության մետրերը
Coverage: Ծառայությունների %/քաղաքական GitOps-ի տակ (նպատակը 3695 տոկոսն է)։
Lead Time Records-ը ՝ PR-ից մինչև պրոդ։
Change failure rate: Դելգ-ֆորումների մասնաբաժինը հետադարձման/պատահականության հետ։
Drift rate: տարաձայնությունների քանակը/շաբաթ և վերացման ժամանակը։
Rollback Time-ը 'վերականգնվում է նախորդ տարբերակին։
Audit completeness: փոփոխությունների մասնաբաժինը ամբողջական evidence (վալիդատորներ, www.y-run, ակնարկներ)։
14) Չեկ թերթերը
Կազմաձևի փոփոխությունից առաջ
- Կա ticet/RAW և փոփոխության սեփականատեր։
- Անջատված է սխեմաների և ոսպնյակների վալիդացիան։
- Կա runbook-ի և թիմի արձագանքի պլան։
- Գեյթ 'կանաչ թեստեր, ստորագրություններ, չկա ակտիվ SEV-1։
- High-risk-ի համար նշանակում է ծառայության պատուհան։
Պառակտման ժամանակ
- Կանարեյկան և SLO գարդրեյլները ակտիվ են։
- Հրատարակվում են տարբերակի ծանոթությունները։
- Կա էխո հաղորդագրություններ ջրանցքում; Ալթ-աղմուկը ճնշված է MW կանոններով։
Հետո
- Observation-ը ավարտվել է, SLO կանաչ։
- Արդյունքները և evidence (գրաֆիկները մինչև/հետո, www.y-run զեկույցները) կցված են տիկետին։
- Նորարարված սխեմաները/լուծումները անհրաժեշտության դեպքում։
15) Մինի ձևանմուշները
15. 1 Կազմաձևի սխեմա (YAML-schema, հատված)
yaml type: object required: [service, timeouts, retries]
properties:
service: { type: string, pattern: "^[a-z0-9-]+$" }
timeouts:
type: object properties:
connect_ms: { type: integer, minimum: 50, maximum: 5000 }
request_ms: { type: integer, minimum: 100, maximum: 20000 }
retries:
type: object properties:
attempts: { type: integer, minimum: 0, maximum: 10 }
backoff_ms: { type: integer, minimum: 0, maximum: 5000 }
15. 2 Հիմնական եզրը + Werews է։
yaml services/checkout/base/config.yaml service: checkout timeouts: { connect_ms: 200, request_ms: 1500 }
retries: { attempts: 2, backoff_ms: 200 }
limits: { rps: 500 }
features:
degrade_search: false psp_a_weight: 80 psp_b_weight: 20
yaml services/checkout/overlays/prod/config.yaml limits: { rps: 1200 }
features:
psp_a_weight: 70 psp_b_weight: 30
15. 3 Ընդունելու քաղաքականություն (գաղափար)
yaml allow_change_when:
tests: passed schema_validation: passed active_incidents: none_of [SEV-0, SEV-1]
rollback_plan: present signed_by: ["owner:team-checkout","platform-sre"]
15. 4 Քարթրիջի քարտ
Release: checkout-config v2.3.1
Scope: prod EU
Changes: psp_b_weight 20→30, request_ms 1500→1300
Risk: Medium (маршрутизация платежей)
Canary: 1%→5%→25% (30/30/30 мин), guardrails: success_ratio, p95
Rollback: tag v2.3.0
16) Anti-patterna
Ուղղությունները վաճառվում են GitOps-ով («արագ նետեց»)։
Գաղտնիքները/PII-ը եզրերի ավանդույթում։
Սխեմաների և ստատիկ ստուգումների բացակայությունը։
Շրջակա միջավայրի ուժեղ տարանջատումը (big no)։
«Կենդանի» ֆիչի դրոշները առանց տարբերակների և պատմությունների։
Անտեսելով դրեյֆը և ձեռքով ձեռքերը մրցույթների վրա։
Թեգերը առանց rele.notes-ի և արձագանքման պլանի։
17) Ճանապարհի քարտեզը (4-6 շաբաթ)
1. Մոսկվան։ 1: Բուլգարիզացիան; առանձին փաթեթներ, սխեմաներ լավագույն 10 ծառայությունների համար։
2. Մոսկվան։ 2: ներառել ոսպնյակներ/վալիդացիա և www.y-run CI-ում; արգելք առանց կանաչ չեկերի։
3. Մոսկվան։ 3: GitOps-ը կլցնի + կանարեյքեր; տարբերակների սենսացիաներ հեռուստատեսության մեջ։
4. Մոսկվան։ 4 'թույլատրման քաղաքականության ներդրումը (policy-as-code) և rollback ձևանմուշները; ալերտներ դրեյֆի վրա։
5. Մոսկվան։ 5-6 'ծածկել ծառայությունների 90 տոկոսը; հավասարումների տարբերությունները դեպի overlays; ավելացնել հասունության չափումներ և շաբաթական ակնարկ, որը նշանակում է փոփոխություններ։
18) Արդյունքը
Միգրացիաների տարբերակների վերահսկումը համակարգ է, ոչ միայն Git-ը։ Սխեմաները և վալիդացիան, GitOps-ը և հասանելիության քաղաքականությունը, կանարաքները և արձագանքները, դրեյֆի հայտնաբերումը և ամբողջական աուդիտը վերածում են քրոնգի կառավարվող արտեֆակտին։ Արդյունքը արագ և անվտանգ փոփոխություններն են, SLO կանխատեսելիությունը և թիմի վստահությունը յուրաքանչյուր փուլում։