Konfigurasiýa wersiýalaryna gözegçilik
1) Näme üçin konfigurasiýalary wersiýa etmeli?
Konfigurasiýa ýerine ýetirilýän syýasatdyr: ol marşrutlaşdyryşy, çäkleri, fiç-baýdaklary, elýeterliligi, maglumatlaryň shemalaryny kesgitleýär. Wersiýalara gözegçilik etmek üýtgeşmeleri gaýtalanýan, göze görnüp duran we yzyna gaýtaryp boljak edýär: MTTR we change-failure rate gysgaldýar, "önümdäki jadydan" dynýar, howpsuzlyk we laýyklyk üçin audit berýär.
2) Konfigurasiýalaryň taksonomiýasy
Infrastruktura (IaC): toparlar, torlar, LB, DB, nobatlar.
Hyzmat: programmalaryň parametrleri, çeşmeler, çäkler, wagtlar, retralar.
Önüm/işewürlik logikasy: nyrhlar, AB-synaglar, mazmun düzgünleri.
Maglumatlar/DataOps: shema şertnamalary, täzelik, özgeriş SLA.
Howpsuzlyk: giriş syýasaty, rollar, açarlar/şahadatnamalar (syrlaryň özleri - repodan daşarda).
Syn edilişi: SLI/SLO, alertler, daşbordlar.
Düzgün: ulgamyň özüni alyp barşyna täsir edýän hemme zat konfigurasiýa bolup, wersiýa astynda ýaşamaly.
3) Wersiýalary dolandyrmagyň ýörelgeleri
1. GitOps: Hakykatyň ýeke-täk çeşmesi - ammar; PR we awtomatiki paýlanyş arkaly üýtgeşmeler.
2. Deklaratiwlik: ädimleriň skriptleri däl-de, maksatly ýagdaýyň beýany.
3. Artefaktlaryň immutabilligi: → birmeňzeş materiallaşdyrylýan snapshot.
4. Shemalar we tassyklama: JSON/YAML-shema, berk görnüşler, hökmany meýdanlar.
5. Daşky gurşaw kod hökmünde: 'env' - bukjalar/örtükler (dev/stage/prod), tapawut az we düşnüklidir.
6. Deňagramlylyk we yza gaýdyp gelmek: konfigurasiýanyň islendik çykyşy tersine (revert/rollback).
7. Audit we yzarlanylyşy: awtor, sebäp, bilet/RFC, üýtgeşmeleriň gollary.
4) Wersiýalaşdyrmak strategiýalary
Konfigurasiýa bukjalary üçin SemVer ('MAJOR. MINOR. PATCH`):- MAJOR - shemalaryň/syýasatlaryň gabat gelmeýän üýtgemeleri.
- MINOR - täze meýdanlar/düzgünler, ters gabat gelmek.
- PATCH - shemalary üýtgetmezden bahalary düzetmek.
- Tag-relizler we release notes: näme üýtgedildi, nädip gaýdylmaly, gözegçilik nokatlary.
- Pinning/lock faýllary: endikleriň wersiýalaryny (modullar, diagrammalar) ýazýarys.
- Matrix wersiýalary: X programmasynyň artefaktı Y konfigurasiýasy bilen gabat gelýär (hyzmat katalogyndaky matrisa).
5) Repozitory guramak
config-repo/
policies/ # общие политики (RBAC, SLO, алерты)
services/
checkout/
schema/ # JSON/YAML схемы конфигов base/ # дефолтные значения overlays/
dev/
stage/
prod/
data-contracts/ # схемы данных, SLA свежести releases/ # теги, changelog, артефакты валидации tools/ # линтеры, генераторы, тесты
Şahasy: trunk-based (main) + gysga feature-şahalary. Merge - diňe hökmany CI bilen PR arkaly.
6) Tassyklamak we synag
Shema: Her bir üýtgeşme shema barlagyndan geçýär (required, enum, ranges).
Statiki linterler: format, açarlar, goşa, gadagan meýdançalar.
Gabat gelmek synaglary: hyzmatyň/tertipnamanyň görnüşi sandyk gutusynda ýokarlanýar.
Gözegçilik geçişleri: dry-run programmalary, "what-if" maksat ýagdaýy.
Syýasatlar-as-code: giriş düzgünleri (Rego/CEL) - kim we näme üýtgedip biler.
7) Konfigurasiýalaryň ýaýramagy we yza gaýdyp gelmegi
Progressive delivery: 1% → 5% → 25% SLO gardrailleri bilen kanareýa.
Deploi derwezesi: işjeň SEV-1 ýok, alertler ýaşyl, gollar dogry, yza gaýdyp gelmek taýýar.
'revert tag vX. Y.Z 'ýa-da öňki snapshot geçişi; yzyna gaýtarmak buýruklary runbook-da resminamalaşdyryldy.
Neşiriň düşündirişleri: konfiganyň görnüşi wakalar bilen çalt baglanyşmak üçin metriklerde/ýazgylarda çap edilýär.
8) Dinamiki we uzakdaky konfigurasiýa
Remote config/feature flags: parametrleri täzeden başlamazdan üýtgedýäris; baýdaklaryň hemmesi - GitOps astynda.
Serhetler: haýsy parametrleri dinamiki taýdan üýtgetmäge rugsat berilýär (ak sanawlaryň sanawy).
Keş we yzygiderlilik: TTL, wersiýalar, toplumlary atom bilen çalyşmak (iki fazaly neşir).
Howpsuz päsgelçilikler: runtime-üýtgeşmeler üçin çäkler we aralyklar, SLO-dan çykanda awto-rollback.
9) Syrlar we duýgur maglumatlar
Hiç haçan repoda syr saklamaýarys. Konfigurasiýalarda diňe baglanyşyklar/pleýsholderler bar.
Zerur bolanda konfigurasiýa faýllaryny şifrlemek: gizlin/açar dolandyryjysy bilen integrasiýa.
Aýlanyş we JIT: giriş amallar wagtynda berilýär; hereketleriň yzy üýtgemez.
Meýdan maskasy: walidasiýa PII/syrlaryň girmegini gadagan edýär.
10) Daşky gurşawy dolandyrmak
Base + overlays: dev/stage/prod arasyndaky tapawut az we aç-açan.
Artefaktlar boýunça promotion: stage-den geçen şol bir snapshot prod-a geçýär.
Wagtlaýyn penjireler: nobat çalşylanda konfigurasiýalarda üýtgeşmeler bolmaýar; töwekgelçilik-ýokary - RFC we hyzmat penjiresi üçin.
11) Süýşmegi ýüze çykarmak we ýok etmek
Gözegçi maksatly ýagdaýy hakyky ýagdaý bilen deňeşdirýär we diff.
Drift-alertler: Page diňe möhüm tapawutlar bolan ýagdaýynda; galanlary - Ticket.
Awto-remediasiýa: rugsat berlende - maksatly ýagdaýa gaýdyp gelmek.
El bilen düzedişleriň barlagy: islendik "kubectl edit/ssh" → proses hadysasy we CAPA.
12) Konfigurasiýa katalogy we eýeçilik
Hyzmat katalogy: eýesi, SLO, baglanyşykly syýasatlar, shemalar, wersiýalar, laýyklyk.
RACI: kim teklip edýär, kim revuit edýär, kim makullaýar; Ýokary töwekgelçilik üçin CAB.
Aç-açanlyk: her ýazgynyň wersiýalarynyň taryhy we PR/biletlere/AAR salgylanmalary bar.
13) Kämillik ölçegleri
Coverage:% GitOps-daky hyzmatlar/syýasatlar (maksat ≥ 95%).
Lead time -üýtgeşmeler: PR-den prod.
Change failure rate: rebound/waka bilen -relizleriň paýy.
Drift rate: tapawudyň sany/hepde we ýok etmek wagty.
Rollback time: öňki wersiýasyna dikeldiş mediany.
Audit completeness: doly evidence bilen üýtgeşmeleriň paýy (walidatorlar, dry-run, synlar).
14) Çek-listler
Sazlamadan öň
- Bir bilet/RFC bar we üýtgetmek eýesi.
- Shemalar we linterler tassyklandy.
- Yzyna gaýtarmak meýilnamasy we runbook buýruklary bar.
- Gate: synaglar ýaşyl, gollar dogry, işjeň SEV-1 ýok.
- Ýokary töwekgelçilik üçin - hyzmat penjiresi bellendi.
Yşyklandyryş wagtynda
- Kanareýa we SLO-gardrailler işjeň.
- Wersiýanyň düşündirişleri çap edilýär.
- Kanalda ses habarlary bar; alert-ses MW düzgünlerine laýyklykda basylýar.
Soň
- Observation window geçdi, SLO ýaşyl.
- Netijeler we evidence (öň/soň grafikler, dry-run hasabatlary) bilet goşulýar.
- Zerur bolanda täzelenen shemalar/resminamalar.
15) Kiçi şablonlar
15. 1 Konfigurasiýa shemasy (YAML-shema, bölek)
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 Esasy + 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 Rugsat syýasaty (ideýa)
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 Konfigiň goýberiliş kartoçkasy
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-patternler
GitOps ("çalt aýlandy")
Konweýalaryň howdanyndaky syrlar/PII.
Shemalaryň we statiki barlaglaryň ýoklugy.
Gurşawyň güýçli tapawudy (base ≠ prod).
Wersiýasy we taryhy bolmadyk "janly" baýdaklar.
Serwerlerdäki süýşmeleri we el düzedişlerini äsgermezlik etmek.
Bellikler release notes we yzyna gaýtarmak meýilnamasy bolmazdan.
17) Durmuşa geçirmegiň ýol kartasy (4-6 hepde)
1. Ned. 1: konfigurasiýalaryň inventarizasiýasy; ilkinji 10 hyzmat üçin aýratyn kataloglar, shemalar.
2. Ned. 2: CI-de linterleri/tassyklamany we dry-run açyň; ýaşyl çeklersiz merjeni gadagan etmek.
3. Ned. 3: GitOps ýaýrady + kanareýkalar; telemetriýadaky wersiýalaryň düşündirişleri.
4. Ned. 4: rugsat syýasatyny (policy-as-code) we rollback şablonlaryny girizmek; drift üçin aladalar.
5. Ned. 5-6: hyzmatlaryň 90% -ini ýapmak; env bilen overlays arasyndaky tapawudy azaltmak; kämillik ölçeglerini we hepdelik gözden geçiriş-üýtgeşmeleri goşmak.
18) Jemleýji
Konfigurasiýa wersiýalaryna gözegçilik etmek diňe Git däl, ulgam. Shemalar we tassyklama, GitOps we giriş syýasaty, kanareýalar we gaýdyşlar, süýşmegi ýüze çykarmak we doly audit dolandyrylýan artefakta öwürýär. Netije - çalt we howpsuz üýtgeşmeler, SLO-nyň öňünden aýdylyşy we toparyň her goýberilişine bolan ynamy.