GH GambleHub

Moslamalar versiyasini boshqarish

1) Nima uchun konfiguratsiyalarni versiyalash kerak

Konfiguratsiya - bu amalga oshiriladigan siyosat: u yo’nalishni, limitlarni, fich-bayroqlarni, ulanishlarni, ma’lumotlar sxemalarini belgilaydi. Versiyalarni nazorat qilish o’zgarishlarni takrorlanuvchan, ko’rinarli va qaytariluvchan qiladi: MTTR va change-failure rate-ni qisqartiradi, «prodda sehr» dan xalos qiladi, xavfsizlik va komplayens uchun audit beradi.


2) Konfiguratsiyalar taksonomiyasi

Infratuzilma (IaC): klastyerlar, tarmoqlar, LB, DB, navbatlar.
Service: ilovalar parametrlari, resurslar, limitlar, taymautlar, retralar.
Mahsulot/biznes mantig’i: tariflar, AB-eksperimentlar, kontent qoidalari.
Ma’lumotlar/DataOps: sxemalar, SLA yangilik, transformatsiya shartnomalari.
Xavfsizlik: kirish siyosati, rollar, kalitlar/sertifikatlar (sirlarning o’zi - repodan tashqari).
Kuzatilishi: SLI/SLO, alertlar, dashbordlar.

Qoida: tizimning xatti-harakatlariga ta’sir qiladigan hamma narsa konfiguratsiyadir va versiya ostida yashashi kerak.


3) Versiyalarni boshqarish prinsiplari

1. GitOps: haqiqatning yagona manbai - ombor; PR va avtomatik payplaynlar orqali o’zgarishlar.
2. Deklarativlik: qadam skriptlari emas, maqsadli holat tavsifi.
3. Artefaktlarning immutabelligi: → aniq amalga oshiriladigan snapshot.
4. Sxemalar va validatsiya: JSON/YAML-schema, turlarni qat’iy keltirish, majburiy maydonlar.
5. Muhit kod sifatida:’env’- jildlar/overleylar (dev/stage/prod), farqlar minimal va aniq.
6. Idempotentlik va qaytish: konfiguratsiyaning har qanday chiqarilishi qaytariladi (revert/rollback).
7. Audit va izlanuvchanlik: muallif, sabab, so’rov/RFC, o’zgarishlar imzosi.


4) Versiyalash strategiyasi

SemVer (’MAJOR. MINOR. PATCH`):
  • MAJOR - sxemalar/siyosatning nomuvofiq o’zgarishlari.
  • MINOR - yangi maydon/qoidalar, teskari moslik.
  • PATCH - sxemalarni oʻzgartirmasdan qiymatlarni tuzatish.
  • Tag-relizlar va release notes: nimani oʻzgartirish, qanday orqaga qaytish, nazorat nuqtalari.
  • Pinning/lock fayllari: bogʻliqlik versiyalari (modullar, chartlar).
  • Matrix versiyasi: X ilovasining artefakti Y konfiguratsiyasiga mos keladi.

5) Repozitoriyani tashkil etish


config-repo/
policies/     # общие политики (RBAC, SLO, алерты)
services/
checkout/
schema/    # JSON/YAML схемы конфигов base/     # дефолтные значения overlays/
dev/
stage/
prod/
data-contracts/  # схемы данных, SLA свежести releases/     # теги, changelog, артефакты валидации tools/      # линтеры, генераторы, тесты

Filial: trunk-based (main) + qisqa feature-filiallar. Merj - faqat majburiy CI bilan PR orqali.


6) Validatsiya va test

Sxema: har bir oʻzgarish sxema tekshiruvidan oʻtadi (required, enum, ranges).
Statik linterlar: format, kalitlar, dubllar, taqiqlangan maydonlar.
Moslik testlari: servis/chart versiyasi qum qutisida ko’tariladi.
Nazorat purkagichlari: dry-run qo’llanmalar, «what-if» diff maqsadli holati.
Siyosat-as-code: kirish qoidalari (Rego/CEL) - kim va nimani o’zgartirishi mumkin.


7) Konfiguratsiyalarning yoyilishi va orqaga qaytishi

Progressive delivery: kanareyka 1% → 5% → 25% SLO-gardreyllar bilan.
Gate deploi: faol SEV-1 yo’q, alertlar yashil, imzolar haqiqiy, orqaga qaytish tayyor.
Orqaga qaytish:’revert tag vX. YZ’yoki oldingi snapshotga o’tish; qaytarish buyruqlari runbook’da hujjatlashtirilgan.
Reliz izohlari: konfig versiyasi hodisalar bilan tezda bog’lanish uchun metrik/loglarda e’lon qilinadi.


8) Dinamik va masofaviy konfiguratsiya

Remote config/feature flags: parametrlarni qayta koʻrmasdan oʻzgartiryapmiz; barcha bayroqlar ham GitOps ostida.
Chegaralar: qaysi parametrlarni dinamik ravishda oʻzgartirishga ruxsat berilgan (oq roʻyxatlar roʻyxati).
Kesh va konsistentlik: TTL, versiyalar, to’plamlarni atom almashtirish (ikki fazali nashr).
Xavfsiz panjara: runtime-o’zgarishlar uchun limitlar va diapazonlar, SLOdan chiqishda avto-rollback.


9) Sirlar va sezgir ma’lumotlar

Hech qachon repoda sir saqlamaymiz. Moslamalarda faqat havolalar/pleysholderlar mavjud.
Konfiguratsiya fayllarini shifrlash: maxfiy/kalitlar menejeri bilan integratsiya qilish.
Rotatsiya va JIT: kirish operatsiyalar vaqtida beriladi; harakatlar izi o’zgarmas.
Dala niqoblanishi: validatsiya PII/sirlarning sirga kirishini taqiqlaydi.


10) Atrof-muhitni boshqarish

Base + overlays: dev/stage/prod orasidagi farqlar minimal va shaffof.
Artefaktlar bo’yicha promotion: stage o’tgan snapshot prodga o’tadi.
Vaqtinchalik oynalar: navbatchilik almashtirilganda konfiguratsiyalar oʻzgarmaydi; risk-high uchun - RFC va xizmat ko’rsatish oynasi.


11) Driftni aniqlash va bartaraf etish

Nazoratchi maqsadli holatni amaldagi holati bilan solishtiradi va reportit diff.
Drift-alertlar: Page faqat tanqidiy tafovutlarda; qolganlari - Ticket.
Avto-remediatsiya: ruxsat berilganda - maqsadli holatga qaytish.
Qo’lda tuzatishlar auditi: har qanday «kubectl edit/ssh» → jarayon hodisasi va CAPA.


12) Konfiguratsiyalar katalogi va egalik qilish

Xizmat katalogi: egasi, SLO, bogʻliq siyosatlar, sxemalar, versiyalar, moslik.
RACI: kim taklif qiladi, kim revyuit qiladi, kim ma’qullaydi; high-risk uchun CAB.
Shaffoflik: har bir yozuvda versiyalar tarixi va PR/tiketlarga/AAR havolalari mavjud.


13) Etuklik metrikasi

Coverage:% GitOps ostida servislar/siyosatchilar (maqsad ≥ 95%).
Lead time-o’zgarishlar: PR dan prodgacha mediana.
Change failure rate: sirpanish/hodisa bilan reliz ulushi.
Drift rate: tafovutlar soni/hafta va bartaraf etish vaqti.
Rollback time: oldingi versiyaga qayta tiklash vositasi.
Audit completeness: to’liq evidence bilan o’zgarishlar ulushi (validatorlar, dry-run, sharhlar).


14) Chek-varaqlar

Moslamani oʻzgartirishdan oldin

  • Roʻyxat/RFC va oʻzgarish egasi mavjud.
  • Sxemalar va linterlar validatsiya qilindi.
  • Qaytarish rejasi va runbook buyruqlari mavjud.
  • Gate: testlar yashil, imzolar haqiqiy, faol SEV-1 yo’q.
  • High-risk uchun xizmat ko’rsatish oynasi belgilangan.

Yoyish paytida

  • Kanareyka va SLO-gardreylar faol.
  • Versiyaning izohlari chop etiladi.
  • Kanalda aks-sadolar mavjud; MW qoidalariga muvofiq alert-shovqin bostirilgan.

Keyingi

  • Observation window o’tdi, SLO yashil.
  • Natijalar va evidence (oldin/keyin grafiklar, dry-run hisobotlar) tiketga ilova qilingan.
  • Zarur hollarda sxemalar/hujjatlar yangilandi.

15) Mini-shablonlar

15. 1 Konfiguratsiya sxemasi (YAML-sxema, parcha)

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 Asosiy + 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 Ruxsat berish siyosati (g’oya)

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 Konfiga reliz kartochkasi


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-patternlar

GitOps orqali tahrirlash («tezda burish»).
Konfiguratsiyalar omboridagi sirlar/PII.
Sxemalar va statik tekshirishlarning yo’qligi.
Atrof-muhitning kuchli tafovuti (base ≠ prod).
Versiyasiz va tarixsiz «jonli» fich bayroqlar.
Serverlarda dreyf va qoʻlda tuzatishlarni eʼtiborsiz qoldirish.
Release notes va qaytarish rejasi boʻlmagan teglar.


17) Joriy etish yo’l xaritasi (4-6 hafta)

1. Ned. 1: konfiguratsiyalarni inventarizatsiya qilish; top-10 servis uchun alohida kataloglar, sxemalar.
2. Ned. 2: linterlar/validatsiya va dry-run CIga kiritilsin; yashil cheklarsiz merjeni taqiqlash.
3. Ned. 3: GitOps + kanareykalar; telemetriyadagi versiyalarning izohlari.
4. Ned. 4: ruxsat siyosati (policy-as-code) va rollback-shablonlarni kiritish; driftga alertlar.
5. Ned. 5-6: xizmatlarning 90 foizini qoplash; env - overlays farqlarini kamaytirish; yetuklik metrikasini va haftalik review -o’zgarishlarni qo’shish.


18) Jami

Konfiguratsiya versiyalarini nazorat qilish shunchaki Git emas, balki tizimdir. Sxemalar va validatsiya, GitOps va kirish siyosati, kanareykalar va qaytishlar, dreyfni aniqlash va to’liq audit boshqariladigan artefaktga aylantiradi. Natija - tezkor va xavfsiz o’zgarishlar, SLOning bashorat qilinishi va jamoaning har bir relizga ishonchi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.