Bosh sahifa Wiki Rollout

Rollout

Rollout — yangi dastur versiyasi, konfiguratsiya yoki funksiyani maqsadli muhit va foydalanuvchilarga chiqarish jarayonidir. U artifactni joylashtirishdan tashqari trafikni o‘tkazish, sog‘lomlikni tekshirish, bosqichlarni kengaytirish va xato holatida to‘xtatish kabi amallarni qamrab oladi. Rollout release riskini boshqariladigan ketma-ketlikka aylantiradi.

Rollout obyekti

Kubernetes kontekstida Deployment yangi ReplicaSet yaratib, podlarni kerakli versiyaga o‘tkazadi. Boshqa platformada rollout VM group, serverless revision, mobile release yoki feature flag auditoriyasi bo‘lishi mumkin. Shuning uchun rollout statusini talqin qilishda aynan qaysi birlik yangilanayotganini bilish kerak.

Artifact digest, konfiguratsiya versiyasi va database migration bir release identifikatoriga bog‘lanadi. Faqat image tagni almashtirish yetarli emas; tag qayta yozilsa qaysi byte tarqalayotgani noma’lum bo‘ladi. Immutable digest audit va rollbackni aniq qiladi.

Bosqichlar

Oddiy jarayon yangi instance yaratish, readinessni kutish, trafik berish va eski instanceni to‘xtatishdan iborat. Rolling rollout buni guruhlar bilan, canary esa avval kichik trafik ulushi bilan bajaradi. Blue-green yangi muhitni to‘liq parallel tayyorlab, traffic switch orqali almashtiradi.

Har bosqich kirish mezoni, observation window va abort shartiga ega. Process running holati xizmat tayyorligini bildirmaydi. Dependency ulanishi, cache warm-up va muhim synthetic transaction tekshiruvga kirishi mumkin.

Progress va holat

Rollout controller desired va actual holatni solishtiradi. Updated replica, available replica va unavailable replica kabi qiymatlar jarayon qayerga yetganini ko‘rsatadi. Progress deadline ichida yangi instance sog‘lom bo‘lmasa rollout failed yoki stalled holatiga o‘tadi.

Status “completed” bo‘lsa ham foydalanuvchi xatti-harakati to‘g‘ri ekanini kafolatlamaydi. Error rate, latency, business metric, log va trace release version bo‘yicha kuzatiladi. Uzoq yashovchi connection yoki queue worker eski versiyada qolmaganligi tekshiriladi.

Muvofiqlik

Rollout paytida eski va yangi versiya parallel ishlashi mumkin. API, event, cache va database schema backward-compatible bo‘lishi kerak. Expand–contract migration avval qo‘shimcha strukturani yaratadi, barcha kod yangilangach eski maydonni olib tashlaydi.

Yangi producer eski consumer o‘qiy olmaydigan message yuborsa mixed-version davri buziladi. Contract testlar aynan qo‘shni versiyalar o‘rtasidagi moslikni tekshiradi. Bir tomonlama data format o‘zgarishi rollbackni imkonsiz qilishi mumkin.

To‘xtatish va tiklash

Metric buzilsa rollout pause qilinadi, trafik kengaytirilmaydi. Rollback oldingi artifactni qayta joylashtiradi, ammo database yozuvi yoki tashqi side effectni avtomatik bekor qilmaydi. Forward fix, kompensatsiya va data recovery rejasi alohida bo‘ladi.

Manual override nomlangan operator, sabab va muddat bilan audit qilinadi. Rolloutni majburan “successful” belgilash nosog‘lom instancelarni tuzatmaydi. Controller eventlari, scheduling, image pull va health xatolari qatlamma-qatlam tekshiriladi.

Operatsion o‘lchovlar

Rollout sifati faqat tezlik bilan baholanmaydi. Change failure rate, tiklanish vaqti, abortlar soni va har bosqichdagi kutish muddati release jarayonining barqarorligini ko‘rsatadi. Metriclar servis va versiya labeli bilan ajratilmasa eski hamda yangi instance natijalari aralashib ketadi. Observation window juda qisqa bo‘lsa kam uchraydigan xato ko‘rinmaydi, haddan tashqari uzun bo‘lsa foydasiz kechikish yuz beradi. Oyna trafik hajmi va hodisaning statistik sezgirligiga qarab belgilanadi.

Natijalar keyingi rollout konfiguratsiyasiga qayta kiritiladi. Bu jarayon observability tizimining yetarli signal berishini ham sinaydi.

Bog‘liq tushunchalar

Deployment, Rolling update, Canary deployment, Blue-green deployment, Rollback, Readiness check, Progressive delivery