Bosh sahifa Wiki Hotfix

Hotfix

Hotfix — production muhitidagi jiddiy va shoshilinch muammoni odatiy release siklini kutmasdan tuzatish uchun tayyorlanadigan o‘zgarish.

Hotfix odatda:

  • service ishlamay qolishi;
  • xavfsizlik zaifligi;
  • data corruption;
  • to‘lov yoki login xatosi;
  • katta business zarar;
  • yangi release regressiyasi

kabi holatlarda qo‘llanadi.

Hotfix tez tayyorlanadi, ammo test va nazoratdan butunlay voz kechilmaydi.

Hotfix mezoni

Har bug hotfix talab qilmaydi.

Hotfix qarori quyidagilarga asoslanadi:

  • ta’sirlangan foydalanuvchilar soni;
  • moliyaviy zarar;
  • security severity;
  • data yaxlitligi;
  • workaround mavjudligi;
  • xizmatning asosiy funksiyasi;
  • tuzatishning xavfi;
  • keyingi release vaqti.

Kichik vizual xato odatiy patch release’ga qoldirilishi mumkin.

Branch modeli

Git Flow modelida hotfix branch production tag yoki main branchdan yaratiladi.

hotfix/2.4.2

Jarayon:

  1. amaldagi production versiya olinadi;
  2. minimal fix kiritiladi;
  3. test qilinadi;
  4. yangi patch versiya chiqariladi;
  5. main va development branchlariga qayta birlashtiriladi;
  6. tag qo‘yiladi.

Fix faqat production branchda qolsa, keyingi release’da xato qaytishi mumkin.

Trunk-based model

Trunk-based developmentda alohida uzoq hotfix branch bo‘lmasligi mumkin.

Fix main branchga tez kiritilib, production uchun aynan shu commit yoki cherry-pick release qilinadi.

Muhim tamoyil — production va kelajak development tarixida fix saqlanishi.

Minimal o‘zgarish

Hotfix scope imkon qadar kichik bo‘ladi.

Shoshilinch tuzatishga:

  • refactoring;
  • yangi feature;
  • formatlash;
  • dependencylarning katta update’i;
  • unrelated cleanup

qo‘shilmaydi.

Kichik diff review va rollbackni yengillashtiradi.

Root cause va vaqtinchalik fix

Hotfix ba’zan incidentni tez to‘xtatadigan vaqtinchalik yechim bo‘ladi.

Masalan:

  • feature flagni o‘chirish;
  • noto‘g‘ri trafficni bloklash;
  • limitni pasaytirish;
  • cache’ni chetlab o‘tish;
  • fallback yoqish.

Keyin root cause uchun to‘liq va barqaror tuzatish alohida release’da bajariladi.

Feature flag

Muammo yangi feature bilan bog‘liq bo‘lsa, code deploy qilmasdan flag orqali o‘chirish eng tez choraga aylanishi mumkin.

Feature flag:

  • oldindan mavjud;
  • serverdan boshqariladi;
  • audit qilinadi;
  • fallback yo‘l test qilingan

bo‘lishi kerak.

Flag hotfixning o‘rnini vaqtincha bosadi.

Test

Hotfix uchun kamida:

bajariladi.

Vaqt cheklangan bo‘lsa ham, tuzatish aynan muammoni bartaraf etgani va yangi regressiya yaratmagani tekshiriladi.

Staging

Productionga o‘xshash staging muhitda hotfix sinovdan o‘tadi.

Ammo production:

bo‘yicha farq qilishi mumkin.

Shuning uchun bosqichli rollout va monitoring zarur.

Canary rollout

Hotfix avval kichik instance yoki traffic qismiga beriladi.

Kuzatiladi:

Tuzatish ishlasa rollout kengaytiriladi.

Rollback

Hotfixning rollback rejasi oldindan tayyorlanadi.

Mumkin bo‘lgan usullar:

Data o‘zgargan bo‘lsa oddiy binary rollback yetarli bo‘lmasligi mumkin.

Database hotfix

Production database’ga qo‘lda SQL bajarish ham hotfix sifatida uchraydi.

Bunday amal:

bilan boshqariladi.

Qo‘lda bajarilgan o‘zgarish keyingi migration tarixiga ham kiritiladi.

Security hotfix

Security hodisasida patch chiqarish bilan birga:

  • credential rotation;
  • session invalidation;
  • log tahlili;
  • zarar ko‘lamini aniqlash;
  • advisory;
  • dependency update;
  • access restriction

talab qilinishi mumkin.

Zaiflik yopilishi avvalgi ekspluatatsiya izlarini avtomatik yo‘q qilmaydi.

Communication

Hotfix vaqtida stakeholderlarga:

  • ta’sir;
  • vaqtinchalik choralar;
  • rollout holati;
  • downtime;
  • foydalanuvchi amali;
  • yakuniy natija

haqida aniq ma’lumot beriladi.

Texnik jamoa va foydalanuvchi uchun xabar darajasi farq qilishi mumkin.

Version

Hotfix odatda patch versiyani oshiradi:

2.4.1 → 2.4.2

Agar tuzatish public API’ni buzsa, major version talabi paydo bo‘lishi mumkin. Shoshilinchlik SemVer contractini bekor qilmaydi.

Post-incident review

Hotfix service’ni tiklaydi, ammo jarayon shu bilan tugamaydi.

Keyin:

  • root cause;
  • detection;
  • response vaqti;
  • test bo‘shlig‘i;
  • monitoring;
  • release jarayoni;
  • permanent fix

tahlil qilinadi.

Maqsad aybdor topish emas, takrorlanish ehtimolini kamaytirish.

Hotfix qarzi

Vaqtinchalik bypass yoki hardcoded qiymat productionda qolib ketishi mumkin.

U issue va owner bilan qayd etiladi.

Keyingi normal release’da:

tuzatiladi.

Duplicate fix nazorati

Hotfix bir necha branchga cherry-pick qilinganda bir xil o‘zgarish keyinchalik merge orqali ikkinchi marta kelishi mumkin. Commit identity, release note va merge strategiyasi bu holatni nazorat qiladi.

Observability talabi

Hotfix bilan birga muammoni aniq o‘lchaydigan metric yoki log qo‘shilishi mumkin. Tuzatish muvaffaqiyati “xato ko‘rinmayapti” taxminiga emas, incidentga bog‘liq signalning normallashishiga tayanadi.

Hotfix muddati

Vaqtinchalik flag yoki bypass uchun tugash sanasi belgilanadi. Aks holda emergency code doimiy architecture qismiga aylanib, keyingi o‘zgarishlarda yashirin xavf tug‘diradi.

Audit izi

Hotfix uchun issue, diff, reviewer, pipeline, deploy va approval yozuvlari saqlanadi. Shoshilinchlik o‘zgarish manbasini noma’lum qoldirmaydi.

Keyingi release bilan birlashtirish

Hotfix productionga chiqqach, asosiy development tarixiga kiritilgani avtomatik yoki manual tekshiriladi. Aks holda keyingi katta release eski xatoni qayta olib kelishi mumkin.

Bog‘liq tushunchalar

Patch, Incident, Regression, Rollback, Feature flag, Canary release, Root cause analysis, Patch release, Production