Bosh sahifa Wiki DevOps

DevOps

DevOps — dastur ishlab chiqish va uni ekspluatatsiya qilish ishlarini umumiy mas’uliyat, avtomatlashtirish va tezkor qayta aloqa orqali bog‘laydigan muhandislik yondashuvi. U alohida bitta vosita yoki lavozim nomi bilan cheklanmaydi. Maqsad o‘zgarishni ishonchli yetkazish, tizim holatini ko‘rish va nosozlikdan tiklanish vaqtini kamaytirishdir.

Versiyalar va build

Ilova kodi, infratuzilma ta’rifi va konfiguratsiya versiyalar nazoratida saqlanadi. Har o‘zgarish muallif, vaqt va commit bilan kuzatiladi. Reproducible build bir xil manba va muhitdan bir xil yoki tekshiriladigan artefakt hosil qilishga intiladi. Dependency versiyalarini aniq belgilash, build muhitini containerda saqlash va artefakt checksumini qayd etish bunga yordam beradi.

Artefakt bir marta build qilinib, test, staging va production bosqichlari bo‘ylab targ‘ib qilinishi mumkin. Har muhitda qayta build qilish turli dependency yoki manba kirib qolish xavfini oshiradi.

CI/CD

Continuous Integration kichik o‘zgarishlarni tez-tez birlashtirib, build, static analysis va testlarni avtomatik bajaradi. Pipeline muvaffaqiyatsiz bo‘lsa, jamoa keyingi o‘zgarishlardan oldin asosiy branchni tiklaydi. Uzoq yashaydigan branchlar merge conflict va katta integratsiya riskini oshiradi.

Continuous Delivery artefaktni productionga chiqarishga tayyor holatda saqlaydi, release inson tasdig‘i bilan bo‘lishi mumkin. Continuous Deployment esa barcha tekshiruvdan o‘tgan o‘zgarishni avtomatik productionga chiqaradi. Ikki atama tashkilotlarda turlicha ishlatilishi mumkin, shu sababli jarayonning aniq ma’nosi hujjatlashtiriladi.

Infrastructure as Code

Server, tarmoq, IAM va cloud resurslari deklarativ yoki imperativ kod bilan boshqariladi. Pull request infratuzilma o‘zgarishini oldindan ko‘rib chiqish imkonini beradi. State va real muhit orasidagi drift aniqlanadi. Maxfiy kalit IaC repositoryga yozilmaydi; secrets manager yoki himoyalangan pipeline qiymatlari ishlatiladi.

Konfiguratsiya idempotent bo‘lsa, bir xil kodni qayta qo‘llash keraksiz o‘zgarish yaratmaydi. Productiondagi qo‘lda o‘zgarish keyingi applyda yo‘qolishi yoki driftga aylanishi mumkin.

Deployment

Rolling deployment instansiyalarni bosqichma-bosqich yangilaydi. Blue-green ikki muhit orasida trafikni almashtiradi. Canary yangi versiyaga trafikning kichik qismini beradi. Feature flag kodni deploy qilish bilan funksiyani foydalanuvchiga yoqishni ajratadi.

Rollback faqat eski binaryni qaytarish bilan cheklanmaydi. Database migration orqaga mos bo‘lmasa, eski ilova yangi sxemada ishlamasligi mumkin. Expand-and-contract usuli sxemani bosqichma-bosqich o‘zgartirib, ikki versiyaning vaqtincha birga ishlashini ta’minlaydi.

Observability va incident

Metric tizim ko‘rsatkichlarini, log hodisalarni, trace esa so‘rov yo‘lini ko‘rsatadi. Alert foydalanuvchiga ta’sir qiladigan aniq simptomga bog‘lanadi; har kichik metric o‘zgarishi navbatchini uyg‘otmasligi kerak. Runbook diagnostika va tiklash qadamlarini beradi.

Incident paytida birinchi maqsad xizmatni tiklash. Keyingi postmortem vaqt chizig‘i, texnik va tashkiliy omillar hamda himoya choralarini qayd etadi. Deployment frequency, lead time, change failure rate va recovery time yetkazib berish jarayonini baholashda ishlatiladigan ko‘rsatkichlardir.

Muhit va konfiguratsiya

Development, staging va production imkon qadar bir xil artefaktdan foydalanadi, ammo credential, endpoint va resurs hajmi konfiguratsiya orqali farqlanadi. Configuration drift stagingda o‘tgan release productionda boshqa xatti-harakat berishiga sabab bo‘ladi. Environment parity barcha muhit aynan bir quvvatda bo‘lishi degani emas; asosiy runtime va integratsiya xususiyatlari mos saqlanadi.

Secret rotation eski va yangi kalit qisqa vaqt birga ishlashini talab qilishi mumkin. Ilova kalitni faqat start paytida o‘qisa, rotationdan keyin restart kerak. Audit kim qachon secretga murojaat qilganini qayd etadi, lekin secret qiymatini logga yozmaydi.

Bog‘liq tushunchalar

CI/CD, Infrastructure as Code, deployment, observability, incident, SRE, automation