Конфигурациянын версияларын көзөмөлдөө
1) Эмне үчүн конфигурацияларды версиялоо керек
Конфигурация - бул аткарылуучу саясат: ал багыттоону, лимиттерди, фич-желектерди, жеткиликтүүлүктү, маалыматтардын схемаларын аныктайт. Версияларды көзөмөлдөө өзгөрүүлөрдү кайталанма, көрүнүктүү жана кайтарылгыс кылат: MTTR жана change-failure rate кыскартат, "прод сыйкырынан" арылтат, коопсуздук жана комплаенс үчүн аудит берет.
2) Конфигурациялардын таксономиясы
Инфраструктуралык (IaC): кластерлер, тармактар, LB, DD, кезек.
Сервистик: тиркемелердин параметрлери, ресурстар, лимиттер, таймауттар, ретрациялар.
Продукт/бизнес логикасы: тарифтер, AB эксперименттери, мазмун эрежелери.
Маалыматтар/DataOps: схемалар келишимдер, SLA сергектик, өзгөрүүлөр.
Коопсуздук: кирүү саясаты, ролдору, ачкычтары/күбөлүктөрү (өздөрү сырлар - репо).
Байкоо: SLI/SLO, Алерт, Дашборд.
Эреже: системанын жүрүм-турумуна таасир этүүчү бардык нерсе конфигурация болуп саналат жана версиянын астында жашашы керек.
3) Версияларды башкаруу принциптери
1. GitOps: чындыктын жалгыз булагы - сактоо; PR жана автоматтык бөлүштүрүү аркылуу өзгөртүү.
2. Декларативдүүлүк: кадамдардын скрипттерин эмес, максаттуу абалын сүрөттөө.
3. Артефакттардын иммутабелдүүлүгү: → сөзсүз түрдө материалдаштырылган снапшот.
4. Схемалар жана валидация: JSON/YAML-схемасы, катуу түрлөрү, милдеттүү талаалар.
5. 'env' деген код сыяктуу чөйрөлөр - папкалар/оверлейлер (dev/stage/prod), айырмачылыктар минималдуу жана ачык.
6. Демпотенттик жана кайра: ар кандай чыгаруу конфигурациясы кайра (revert/rollback).
7. Аудит жана байкоо: Author, себеби, тикет/RFC, өзгөртүүлөр кол.
4) Версиялоо стратегиялары
SemVer ('MAJOR. MINOR. PATCH`):- MAJOR - шайкеш келбеген схемалар/саясат өзгөрүүлөр.
- MINOR - жаңы талаалар/эрежелер, тескери шайкештик.
- PATCH - схемаларды өзгөртүүсүз маанилерди оңдоо.
- Tag-релиздер жана release notes: эмне өзгөргөн, кантип артка кайтуу үчүн, чекиттер.
- Pinning/lock файлдары: көз карандылыктын версияларын (модулдар, диаграммалар) жаздырып алабыз.
- Matrix версиялары: 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 (негизги) + кыска feature-бутактары. Мерж - милдеттүү CI менен PR аркылуу гана.
6) Валидация жана тестирлөө
Схема: ар бир өзгөртүү схеманы текшерүүдөн өтөт (required, enum, ranges).
Статикалык Линтерс: формат, ачкычтар, эки, тыюу салынган талаалар.
шайкештик тесттер: + кызматы/чарттын версия Sandbox көтөрүлөт.
Control Run: dry-run колдонмолор, "what-if" максат абалы.
Саясат-as-code: кабыл алуу эрежелери (Rego/CEL) - ким жана эмне өзгөртө алат.
7) Таркап жана кайра конфигурацияларды
Прогрессивдүү жеткирүү: Канарейка 1% → 5% → 25% SLO-гардрейл менен.
Gate deploi: эч кандай активдүү SEV-1, жашыл Алерта, жазуулар validny, кайра даяр.
Артка: 'revert tag vX. Y.Z 'же мурунку snapshot өтүү; артка буйрук runbook документтештирилген.
Релиздин аннотациялары: конфиганын версиясы окуялар менен тез байланышуу үчүн метриктер/логдордо жарыяланат.
8) Динамикалык жана алыскы конфигурация
Remote config/feature flags: кайра жок параметрлерин өзгөртүү; бардык желектери - да GitOps астында.
Чек аралар: динамикалык түрдө өзгөртүүгө уруксат берилген параметрлер (ак тизмелердин тизмеси).
Кэш жана консистенттүүлүк: TTL, версиялар, атомдук алмаштыруу комплекттери (эки фазалуу жарыялоо).
Коопсуз тосмолор: runtime-өзгөрүүлөр үчүн чектер жана диапазондор, SLO чыгып жатканда авто-rollback.
9) Сырлар жана сезимтал маалыматтар
Биз эч качан реподо сырларды сактабайбыз. Конфигурацияларда - шилтемелер/ойноткучтар гана.
Керек болсо конфигурация файлдарын шифрлөө: сырлар/ачкычтар менеджери менен интеграциялоо.
Rotation жана JIT: жеткиликтүүлүк иш учурунда берилет; иш-аракеттердин изи өзгөрбөйт.
Талаа камуфляж: валидация PII/Secrets in кирүүгө тыюу салат.
10) Айлана-чөйрөнү башкаруу
Base + overlays: dev/stage/prod ортосундагы айырмачылыктар минималдуу жана ачык-айкын болуп саналат.
Артефакттар боюнча Promotion: сахнадан өткөн ошол эле снапшот прод.
Убактылуу терезелер: конфигурацияларды өзгөртүү нөөмөт алмаштырылган учурда болбойт; тобокелдик-жогорку - RFC жана тейлөө терезеси.
11) Drift аныктоо жана жоюу
Контроллер иш жүзүндө менен максаттуу абалын салыштырат жана репортит дифф.
Drift-Алерт: Page гана оор айырмачылыктар менен; калгандары - Ticket.
Авто-ремедиация: уруксат берилгенде - максаттуу абалына кайтып келүү.
Кол менен оңдоолорду текшерүү: ар кандай "kubectl edit/ssh" → процесс окуясы жана CAPA.
12) Конфигурация каталогу жана ээлик кылуу
Сервистин каталогу: ээси, SLO, байланышкан саясаттар, схемалар, версиялар, шайкештик.
RACI: ким сунуш кылат, ким ревьюит, ким жактырат; Жогорку тобокелдик үчүн CAB.
Ачык-айкындуулук: Ар бир жазуу PR/билеттерге/AAR котормолорунун тарыхы жана шилтемелери бар.
13) Жетилүү метрикасы
Coverage:% GitOps боюнча кызматтар/саясат (максаты ≥ 95%).
Lead убакыт өзгөртүү: PR чейин медиа-прод.
Change failure rate: ката/окуя менен -релиздер үлүшү.
Drift rate: айырмачылыктардын саны/жума жана жоюу убактысы.
Rollback убакыт: медиа мурунку нускасына калыбына келтирүү.
Audit completeness: толук evidence менен өзгөрүүлөрдүн үлүшү (validators, dry-run, сын-пикирлер).
14) Чек-баракчалар
Конфигурацияны өзгөртүүгө чейин
- билети/RFC жана өзгөртүү ээси бар.
- Схемалардын жана линтерлердин валидациясы өттү.
- Runbook кайра план жана буйрук бар.
- Дарбаза: тесттер жашыл, кол коюлган, эч кандай активдүү SEV-1.
- Жогорку тобокелдик үчүн - дайындалган тейлөө терезеси.
Жантайганда
- Канарейка жана SLO-гардрейлер активдүү.
- Жарыяланган аннотациялар версия.
- Каналга жаңырык билдирүүлөр бар; MW эрежелери боюнча алерт ызы-чуу басылган.
Кийин
- Observation window өтүп, SLO жашыл.
- натыйжалары жана evidence (чейин/кийин графиктер, dry-run отчеттор) тикет тиркелет.
- Керек болсо жаңыланган схемалар/документтер.
15) Mini үлгүлөрү
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 Basic + overley 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 Карта релиз конфига
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) Анти-үлгүлөрү
GitOps ("тез бурмалап") өткөн бир туунду түзөтүү.
Сырлар/PII конфигурациялардын репозиторийинде.
Схемалардын жана статикалык текшерүүлөрдүн жоктугу.
Чөйрөнүн күчтүү айырмачылыгы (base ≠ prod).
версиясы жана тарыхы жок "тирүү" фич-желектер.
Серверлерде дрейфке жана кол менен оңдоолорго көңүл бурбоо.
Tags жок release notes жана кайтаруу планы.
17) Жол картасы киргизүү (4-6 жума)
1. Нед. 1: конфигурацияларды инвентаризациялоо; 10 кызмат үчүн өзүнчө каталогдор, схемалар.
2. Нед. 2: CI Линтерс/валидация жана dry-run киргизүү; жашыл чектери жок тыюу.
3. Нед. 3: GitOps жайылып + канарейка; телеметриядагы версиялардын аннотациялары.
4. Нед. 4: кирүү саясаты (policy-as-code) жана rollback-шаблондорду киргизүү; дрейфке алерта.
5. Нед. 5-6: кызматтардын 90% жабуу; env айырмачылыктарды overlays кыскартуу; жетилгендик жана жумалык review -өзгөртүү метрикасын кошуу.
18) Жыйынтык
Конфигурациялардын версияларын көзөмөлдөө жөн гана Git эмес, система болуп саналат. Схемалар жана валидация, GitOps жана кирүү саясаты, канарейка жана артка кайтуу, дрейф аныктоо жана толук аудит башкарылуучу артефактка айландырат. натыйжасы - тез жана коопсуз өзгөрүүлөр, SLO алдын ала жана ар бир бошотуу боюнча команда ишеним.