Назорати версияи конфигуратсия
1) Чаро конфигуратсияҳои версия
Конфигуратсия сиёсати иҷрошаванда аст: он масир, маҳдудият, парчамҳои хусусият, дастрасӣ, схемаҳои маълумотро муайян мекунад. Назорати версия тағиротро такроршаванда, мушоҳидашаванда ва тағирёбанда месозад: MTTR ва сатҳи нокомии тағиротро коҳиш медиҳад, "ҷодугарӣ дар фурӯш" -ро аз байн мебарад, аудитҳоро барои амният ва мувофиқат медиҳад.
2) Танзими таксономия
Инфраструктура (Ia-C): кластерҳо, шабакаҳо, LB, DB, навбатҳо.
Хизматрасонӣ: параметрҳои барнома, захираҳо, маҳдудиятҳо, танаффус, бозхонд.
Мантиқи маҳсулот/тиҷорат: тарифҳо, таҷрибаҳои AB, қоидаҳои мундариҷа.
Маълумот/Маълумотҳо: схемаҳои шартномавӣ, тару тозаи SLA, тағирот.
Амният: сиёсати дастрасӣ, нақшҳо, калидҳо/шаҳодатномаҳо (сирри худи онҳо берун аз репо аст).
Мушоҳида: SLI/SLO, огоҳиҳо, панели панелҳо.
Қоида: ҳар чизе, ки ба рафтори система таъсир мерасонад, конфигуратсия аст ва бояд зери версия зиндагӣ кунад.
3) Принсипҳои версия
1. Gitops: ягона манбаи ҳақиқат ин анбор аст; тағирот тавассути қубурҳои PR ва автоматӣ.
2. Эъломия: тавсифи ҳолати мақсаднок, на скриптҳои қадам.
3. Тағйирнопазирии артефактҳо: config → яктарафа сурат мегирад.
4. Схемаҳо ва тасдиқкунӣ: JSON/YAML-схема, рехтагарии навъи қатъӣ, майдонҳои зарурӣ.
5. Муҳитҳо ба монанди рамз: 'env' - ҷузвдонҳо/сарпӯшҳо (dev/stage/prod), фарқиятҳо ночиз ва возеҳанд.
6. Idempotence ва rollbacks: баргардонидан/баргардонидани ҳама гуна конфигуратсия.
7. Аудит ва пайгирӣ: муаллиф, сабаб, чипта/RFC, имзои тағирёбанда.
4) Стратегияҳои версия
Semver барои бастаҳои конфигуратсия ('MAJOR. МИНОР. ПАТЧ '):- MAJOR - тағироти номувофиқи схема/сиёсат.
- MINOR - майдонҳо/қоидаҳои нав, мутобиқати ақиб.
- PATCH - арзишҳоро бе тағйир додани схемаҳо ислоҳ мекунад.
- Барориши барчаспҳо ва қайдҳо: чӣ тағир ёфт, чӣ гуна бояд бозгашт, нуқтаҳои гузаргоҳ.
- Файлҳои пинҳонӣ/қулф: версияҳои вобастагиро ислоҳ кунед (модулҳо, диаграммаҳо).
- Версияҳои матритса: артефакти барномаи X бо конфигуратсияи Y мувофиқ аст (матритса дар каталоги хидматҳо).
5) Ташкили репозитория
config-repo/
policies/ # общие политики (RBAC, SLO, алерты)
services/
checkout/
schema/ # JSON/YAML схемы конфигов base/ # дефолтные значения overlays/
dev/
stage/
prod/
data-contracts/ # схемы данных, SLA свежести releases/ # теги, changelog, артефакты валидации tools/ # линтеры, генераторы, тесты
Филиал: шохаҳои магистралӣ (асосӣ) + шохаҳои хусусияти кӯтоҳ. Якҷоя кардан - тавассути PR танҳо бо CI ҳатмӣ.
6) Санҷиш ва санҷиш
Схема: Ҳар як тағирот тасдиқи схемаро мегузарад (лозим, энум, диапазон).
Линтерҳои статикӣ: формат, калидҳо, нусхаҳо, майдонҳои манъшуда.
Санҷишҳои мутобиқат: config + версияи хидмат/диаграмма дар қуттии қуттӣ боло меравад.
Санҷишҳо: барномаҳои хушккунӣ, ҳолати ҳадафи "чӣ-агар".
Сиёсат-ас-код: қоидаҳои қабул (Rego/CEL) - кӣ метавонад чизеро тағир диҳад.
7) Конфигуратсияҳои кушодан ва баргардондан
Таҳвили прогрессивӣ: канарейка 1% → 5% → 25% бо SLO-gardrail.
Дарвозаи ҷойгиркунӣ: ягон SEV-1 фаъол нест, огоҳиҳо сабз, имзоҳо дурустанд, бозгашт омода аст.
Rollback: 'баргардонидани барчасп v' X. Y.Z 'ё гузариш ба лаҳзаи қаблӣ; фармонҳои бозгашт дар дафтар сабт карда мешаванд.
Эзоҳҳо: Нусхаи конфигуратсия дар ченакҳо/гузоришҳо нашр карда мешавад, то зуд бо ҳодисаҳо алоқаманд бошанд.
8) Танзимоти динамикӣ ва дурдаст
Параметрҳои дурдаст/парчамҳои хусусият: параметрҳоро бе бозоғоз иваз кунед; ҳамаи парчамҳо инчунин зери GIT мебошанд.
Сарҳадҳо: кадом параметрҳо ба таври динамикӣ тағир дода мешаванд (рӯйхати сафедпӯстон).
Кэш ва пайдарҳамӣ: TTL, версияҳо, ивазкунии маҷмӯи атом (нашри думарҳилавӣ).
Рӯйпӯшҳои бехатар: маҳдудиятҳо ва диапазонҳо барои тағир додани вақти корӣ, бозгашти худкор ҳангоми тарк кардани SLO.
9) Асрҳо ва маълумоти ҳассос
Ҳеҷ гоҳ сирри худро дар репо нигоҳ надоред. Дар конфигуратсияҳо - танҳо пайвандҳо/ҷойгузинҳо.
Рамзгузории файлҳои конфигуратсия, агар лозим бошад: ҳамгироӣ бо мудири махфӣ/калидӣ.
Ротатсия ва JIT: дастрасӣ ба давомнокии амалиёт дода мешавад; пайгирии амал тағйирнопазир аст.
Маскаи саҳроӣ: Санҷиш вуруд ба PII/сирри вурудро манъ мекунад.
10) Идоракунии муҳити зист
Base + такрорӣ: фарқияти байни dev/stage/prod ҳадди аққал ва шаффоф мебошанд.
Таблиғ дар артефактҳо: ҳамон лаҳзае, ки аз саҳна гузашт, дар прод.
Тирезаҳои вақт: тағирот дар конфигуратсияҳо ҳангоми иваз кардани вазифа ба амал намеоянд; барои хавфи баланд - RFC ва равзанаи нигоҳдорӣ.
11) Муайянкунӣ ва бартарафсозии дрифт
Назоратчӣ ҳолати мақсаднокро бо ҳолати воқеӣ муқоиса мекунад ва фарқиятро гузориш медиҳад.
Огоҳии Drift: Саҳифа танҳо барои номувофиқатии интиқодӣ; боқимондаҳо чипта мебошанд.
Барқарорсозии худкор: ҳангоми ҳалли - бозгашт ба ҳолати мақсаднок.
Таҳрири дастии аудит: ҳама гуна ҳодисаи раванди "kubectl edit/ssh" ва CAPA.
12) Феҳристи конфигуратсия ва моликият
Феҳристи хидматҳо: соҳиб, SLO, сиёсатҳои марбута, схемаҳо, версияҳо, мутобиқат.
RACI: кӣ пешниҳод мекунад, кӣ баррасӣ мекунад, кӣ тасдиқ мекунад; CAB барои хатари баланд.
Шаффофият: Ҳар як вуруд таърихи версия дорад ва ба PR/чиптаҳо/AAR пайвандҳо дорад.
13) Нишондиҳандаҳои камолот
Фарогирӣ:% хидматҳо/сиёсатҳо барои GIT (ҳадаф ≥ 95%).
Тағироти конфигуратсияи вақти сурб: медиан аз PR то prod.
Сатҳи нокомии тағирот: таносуби релизҳои конфигӣ бо бозгашт/ҳодиса.
Сатҳи коҳиш: шумораи номутобиқатӣ/ҳафта ва вақти бартарафсозӣ.
Вақти бозгашт: барқароркунии медианӣ ба версияи қаблӣ.
Пуррагии аудит: таносуби тағирот бо далелҳои пурра (валидаторҳо, хушккунӣ, баррасиҳо).
14) Рӯйхати санҷишҳо
Пеш аз таъғири конфигуратсия
- Чипта/RFC ва соҳиби тағирот мавҷуд аст.
- Схемаҳо ва линтерҳо тасдиқ карда шуданд.
- Дар дафтарчаи корӣ нақшаи бозгашт ва фармонҳо мавҷуданд.
- Дарвоза: санҷишҳои сабз, имзоҳо эътибор доранд, ягон SEV-1 фаъол нестанд.
- Барои хавфи баланд равзанаи нигоҳдорӣ таъин карда шудааст.
Ҳангоми кушодани
- Canary ва SLO-gardrail фаъоланд.
- Эзоҳҳо нашр карда мешаванд.
- Ба канал паёмҳои echo мавҷуданд; садои ҳушдор бо қоидаҳои MW пахш карда мешавад.
Баъдтар
- Равзанаи мушоҳида гузашт, SLO сабз.
- Ҷамъбаст ва далелҳо (пеш аз/пас аз диаграммаҳо, ҳисоботҳои хушк) ба чипта замима карда мешаванд.
- Дар ҳолати зарурӣ схема/ҳуҷҷатгузорӣ нав карда шуд.
15) Қолабҳои хурд
15. 1 Диаграммаи конфигуратсия (YAML-схема, порча)
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 Конфигуратсияи асосӣ + такрори prod
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 Корти барориши Config
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) Анти-намунаҳо
Таҳрирҳо дар prod гузашта Gits ("зуд каҷ").
Асрҳо/PII дар анбори конфигуратсия.
Набудани диаграммаҳо ва чекҳои статикӣ.
Фарқияти қавии муҳитҳо (пойгоҳ ≠ прод).
Парчамҳои "зинда" бидуни версия ва таърих.
Нодида гирифтани таҳрири дастӣ ва дастӣ дар серверҳо.
Барчасбҳо бе қайдҳо ва нақшаи бозгашт.
17) Харитаи роҳсозӣ (4-6 ҳафта)
1. Нед. 1: инвентаризатсияи конфигуратсияҳо; каталогҳои алоҳида, схемаҳо барои 10 хадамоти беҳтарин.
2. Нед. 2: дохил кардани linters/validation ва хушк дар CI; манъи якҷояшавӣ бидуни чекҳои сабз.
3. Нед. 3: Рол + canaries; шарҳи версия дар телеметрия.
4. Нед. 4 - Намунаҳои сиёсат-ҳамчун-код ва бозгаштро ворид кунед. ҳушдор медиҳад, ки ғарқ шаванд.
5. Нед. 5-6: 90% хидматҳоро фаро мегирад; фарқияти env-ро ба рӯйпӯшҳо кам кунед; андозагирии камолот ва баррасии ҳарҳафтаинаи тағиротҳои конфигро илова кунед.
18) Сатри поён
Назорати версияи конфигуратсия система аст, на танҳо Git. Схемаҳо ва тасдиқкунӣ, Gitops ва сиёсати дастрасӣ, канарейкаҳо ва нуқсонҳо, муайянкунии дрейф ва аудити пурра ба артефакти идорашаванда табдил меёбанд. Натиҷа тағироти зуд ва бехатар, пешгӯии SLO ва эътимоди гурӯҳ ба ҳар як озодкунӣ мебошад.