Yangi boshlanuvchilar uchun DevOps qo'llanma

DevOpsning ahamiyati nimada, bu IT mutaxassislari uchun nimani anglatadi, usullar, ramkalar va vositalar tavsifi.

Yangi boshlanuvchilar uchun DevOps qo'llanma

DevOps atamasi IT olamiga kirib kelganidan beri ko'p narsa sodir bo'ldi. Ekotizimning ko'p ochiq manbalari bilan u nima uchun boshlanganini va IT sohasida martaba uchun nimani anglatishini qayta ko'rib chiqish muhimdir.

DevOps nima

Yagona ta'rif yo'q bo'lsa-da, men DevOps - bu ishlab chiqarish va operatsion guruhlar o'rtasidagi hamkorlikni takrorlash va avtomatlashtirish qobiliyatiga ega bo'lgan ishlab chiqarish muhitiga kodni tezroq joylashtirish imkonini beruvchi texnologiya asosi ekanligiga ishonaman. Biz ushbu maqolaning qolgan qismini ushbu da'voni ochishga sarflaymiz.

"DevOps" so'zi "rivojlanish" va "operatsiyalar" so'zlarining birikmasidir. DevOps ilovalar va xizmatlarni yetkazib berish tezligini oshirishga yordam beradi. Bu tashkilotlarga o'z mijozlariga samarali xizmat ko'rsatish va bozorda raqobatbardosh bo'lish imkonini beradi. Oddiy qilib aytganda, DevOps - bu yanada samarali aloqa va hamkorlik bilan ishlab chiqish va IT operatsiyalari o'rtasidagi muvofiqlashtirish.

DevOps rivojlanish, operatsiyalar va biznes guruhlari o'rtasidagi hamkorlik muhim deb hisoblangan madaniyatni o'z ichiga oladi. Bu shunchaki vositalar haqida emas, chunki tashkilotdagi DevOps doimiy ravishda mijozlarga ham foyda keltiradi. Asboblar odamlar va jarayonlar bilan bir qatorda uning ustunlaridan biridir. DevOps tashkilotlarning eng qisqa vaqt ichida yuqori sifatli yechimlarni yetkazib berish qobiliyatini oshiradi. DevOps shuningdek, qurishdan tortib to joylashtirishgacha, dastur yoki mahsulotgacha bo'lgan barcha jarayonlarni avtomatlashtiradi.

DevOps muhokamasi ishlab chiquvchilar, yashash uchun dasturiy ta'minot yozadigan odamlar va ushbu dasturiy ta'minotni saqlash uchun mas'ul bo'lgan operatorlar o'rtasidagi munosabatlarga qaratilgan.

Rivojlanish guruhi uchun qiyinchiliklar

Ishlab chiquvchilar tashkilot muammolarini hal qilish uchun yangi yondashuvlar va texnologiyalarni amalga oshirishga ishtiyoqli va ishtiyoqlidir. Biroq, ular ham ba'zi muammolarga duch kelishadi:

  • Raqobat bozori mahsulotni o'z vaqtida yetkazib berish uchun katta bosim yaratadi.
  • Ular ishlab chiqarishga tayyor kodni boshqarish va yangi xususiyatlarni joriy qilish haqida g'amxo'rlik qilishlari kerak.
  • Chiqarish davri uzoq bo'lishi mumkin, shuning uchun ishlab chiqish guruhi ilovalarni amalga oshirishdan oldin bir nechta taxminlarni amalga oshirishi kerak. Ushbu stsenariyda ishlab chiqarish yoki sinov muhitiga joylashtirish paytida yuzaga keladigan muammolarni hal qilish uchun ko'proq vaqt talab etiladi.

Operatsion guruh duch keladigan qiyinchiliklar

Operatsion guruhlar tarixan IT xizmatlarining barqarorligi va ishonchliligiga e'tibor qaratgan. Shuning uchun operatsion guruhlar resurslar, texnologiyalar yoki yondashuvlarni o'zgartirish orqali barqarorlikka intiladi. Ularning vazifalariga quyidagilar kiradi:

  • Talab ortishi bilan resurslarni taqsimlashni boshqaring.
  • Ishlab chiqarish muhitida foydalanish uchun zarur bo'lgan dizayn yoki sozlash o'zgarishlarini boshqaring.
  • Ilovalarni o'z-o'zidan joylashtirishdan keyin ishlab chiqarish muammolarini tashxislash va hal qilish.

DevOps rivojlanish va operatsion muammolarni qanday hal qiladi

Bir vaqtning o'zida ko'p sonli ilova funksiyalarini chiqarish o'rniga, kompaniyalar o'z mijozlariga bir qator relizlar iteratsiyasi orqali oz sonli xususiyatlarni taqdim eta oladimi yoki yo'qligini ko'rishga harakat qilmoqda. Ushbu yondashuv bir qator afzalliklarga ega, masalan, yaxshi dasturiy ta'minot sifati, mijozlarning tezkor fikr-mulohazalari va boshqalar. Bu, o'z navbatida, mijozlarning yuqori darajadagi qoniqishini ta'minlaydi. Ushbu maqsadlarga erishish uchun kompaniyalar quyidagilarga majburdirlar:

  • Yangi nashrlarni chiqarishda muvaffaqiyatsizlik darajasini kamaytiring
  • Joylashtirish chastotasini oshiring
  • Ilovaning yangi versiyasi chiqqanda tiklanish uchun tezroq o'rtacha vaqtga erishing.
  • Tuzatishlar uchun vaqtni qisqartiring

DevOps ushbu vazifalarning barchasini bajaradi va uzluksiz yetkazib berishni ta'minlashga yordam beradi. Tashkilotlar DevOps-dan bir necha yil oldin tasavvur qilib bo'lmaydigan mahsuldorlikka erishish uchun foydalanmoqda. Ular kuniga o'nlab, yuzlab va hatto minglab joylashtirishlarni amalga oshiradilar va jahon darajasidagi ishonchlilik, barqarorlik va xavfsizlikni ta'minlaydilar. (Part o'lchamlari haqida ko'proq ma'lumot oling va ularning dasturiy ta'minotni etkazib berishga ta'siri).

DevOps o'tmishdagi metodologiyalar natijasida turli muammolarni hal qilishga urinadi, jumladan:

  • Rivojlanish va operatsion guruhlar o'rtasidagi ishni izolyatsiya qilish
  • Sinov va joylashtirish alohida bosqichlar bo'lib, ular loyihalash va qurishdan keyin sodir bo'ladi va qurish davrlariga qaraganda ko'proq vaqt talab qiladi.
  • Asosiy biznes xizmatlarini yaratishga e'tibor qaratish o'rniga sinov, joylashtirish va loyihalash uchun ortiqcha vaqt sarflandi
  • Ishlab chiqarishdagi xatolarga olib keladigan qo'lda kodni joylashtirish
  • Rivojlanish va operatsion guruh jadvallaridagi farqlar qo'shimcha kechikishlarga olib keladi

Yangi boshlanuvchilar uchun DevOps qo'llanma

DevOps, Agile va an'anaviy IT o'rtasidagi qarama-qarshilik

DevOps ko'pincha boshqa IT amaliyotlari, xususan Agile va Waterfall IT bilan bog'liq holda muhokama qilinadi.

Agile - bu dasturiy ta'minot ishlab chiqarish uchun printsiplar, qadriyatlar va amaliyotlar to'plami. Masalan, agar sizda dasturiy ta'minotga aylantirmoqchi bo'lgan fikringiz bo'lsa, siz Agile tamoyillari va qadriyatlaridan foydalanishingiz mumkin. Ammo bu dastur faqat ishlab chiqish yoki sinov muhitida ishlashi mumkin. Dasturiy ta'minotingizni tez va takroriy ravishda ishlab chiqarishga o'tkazish uchun sizga oddiy va xavfsiz usul kerak va yo'l DevOps vositalari va usullaridan o'tadi. Agile dasturiy ta'minotni ishlab chiqish rivojlanish jarayonlariga qaratilgan va DevOps eng xavfsiz va ishonchli tarzda ishlab chiqish va joylashtirish uchun javobgardir.

An'anaviy sharshara modelini DevOps bilan taqqoslash DevOps keltiradigan afzalliklarni tushunishning yaxshi usuli hisoblanadi. Quyidagi misolda dastur to‘rt hafta ichida ishga tushishi, ishlab chiqish 85% yakunlangan, ilova jonli bo‘lishi va kodni jo‘natish uchun serverlarni sotib olish jarayoni endigina boshlanganini taxmin qiladi.

An'anaviy jarayonlar
DevOps-dagi jarayonlar

Yangi serverlarga buyurtma berganingizdan so'ng, ishlab chiqish guruhi sinov ustida ishlaydi. Ishchi guruh korxonalar tomonidan infratuzilmani joylashtirish uchun talab qilinadigan keng qamrovli hujjatlar asosida ishlaydi.
Yangi serverlar uchun buyurtma berilgandan so'ng, ishlab chiqish va operatsion guruhlar yangi serverlarni o'rnatish uchun jarayonlar va hujjatlar ustida birgalikda ishlaydi. Bu sizning infratuzilma talablaringizni yaxshiroq tushunish imkonini beradi.

O'chirish, ortiqcha bo'lish, ma'lumotlar markazining joylashuvi va saqlash talablari haqidagi ma'lumotlar noto'g'ri ko'rsatilgan, chunki chuqur domen bilimiga ega bo'lgan ishlab chiqish guruhidan hech qanday ma'lumot yo'q.
Ishlamay qolishi, ortiqcha ishlamay qolishi, falokatdan tiklanishi, maʼlumotlar markazining joylashuvi va saqlash talablari haqidagi maʼlumotlar ishlab chiqish guruhining kiritishi tufayli maʼlum va toʻgʻri boʻladi.

Operatsion guruh rivojlanish guruhining taraqqiyoti haqida hech qanday tasavvurga ega emas. Shuningdek, u o'z g'oyalari asosida monitoring rejasini ishlab chiqadi.

Operatsion guruh ishlab chiqish guruhi erishgan yutuqlardan to'liq xabardor. U, shuningdek, ishlab chiqish guruhi bilan hamkorlik qiladi va ular IT va biznes ehtiyojlariga javob beradigan monitoring rejasini ishlab chiqish uchun birgalikda ishlaydi. Ular, shuningdek, ilovalarning ishlashini monitoring qilish (APM) vositalaridan foydalanadilar.

Ilovani ishga tushirishdan oldin o'tkazilgan yuk sinovi dasturning ishdan chiqishiga olib keladi va uni ishga tushirishni kechiktiradi.
Ilovani ishga tushirishdan oldin bajarilgan yuk testi yomon ishlashga olib keladi. Rivojlanish guruhi qiyinchiliklarni tezda hal qiladi va dastur o'z vaqtida ishga tushadi.

DevOps hayot aylanishi

DevOps ma'lum umumiy qabul qilingan amaliyotlarni qabul qilishni o'z ichiga oladi.

Doimiy rejalashtirish

Doimiy rejalashtirish biznes yoki qarashning qiymatini sinab ko'rish, doimiy moslashish, taraqqiyotni o'lchash, mijozlar ehtiyojlaridan o'rganish, epchillikni qondirish uchun yo'nalishni o'zgartirish va biznes-rejani qayta ixtiro qilish uchun zarur bo'lgan resurslar va natijalarni aniqlash orqali kichikdan boshlash uchun nozik tamoyillarga tayanadi.

Birgalikda rivojlanish

Birgalikda ishlab chiqish jarayoni turli vaqt zonalarida tarqalgan korxonalar, ishlab chiqish guruhlari va sinov guruhlariga sifatli dasturiy ta'minotni doimiy ravishda yetkazib berish imkonini beradi. Bunga ko'p platformali ishlab chiqish, tillararo dasturlashni qo'llab-quvvatlash, foydalanuvchi hikoyasini yaratish, g'oyalarni ishlab chiqish va hayot aylanishini boshqarish kiradi. Hamkorlikdagi rivojlanish uzluksiz integratsiya jarayoni va amaliyotini o'z ichiga oladi, bu tez-tez kod integratsiyasini va avtomatlashtirilgan tuzilmalarni rag'batlantiradi. Ilovaga kodni tez-tez joylashtirish orqali integratsiya muammolari hayot tsiklining boshida aniqlanadi (ularni tuzatish osonroq bo'lganda) va umumiy integratsiya harakatlari doimiy fikr-mulohazalar orqali kamayadi, chunki loyiha doimiy va ko'rinadigan taraqqiyotni ko'rsatadi.

Doimiy sinov

Uzluksiz sinov ishlab chiqish guruhlariga tezlik va sifatni muvozanatlashda yordam berish orqali sinov narxini pasaytiradi. Shuningdek, u xizmatlarni virtualizatsiya qilish orqali sinovdagi qiyinchiliklarni yo'q qiladi va tizimlar o'zgarishi bilan osongina almashish, joylashtirish va yangilash mumkin bo'lgan virtuallashtirilgan sinov muhitlarini yaratishni osonlashtiradi. Ushbu imkoniyatlar sinov muhitini ta'minlash va saqlash xarajatlarini kamaytiradi va sinov davri vaqtlarini qisqartiradi, bu esa integratsiya sinovlarini hayot tsiklining boshida amalga oshirishga imkon beradi.

Uzluksiz chiqarish va joylashtirish

Ushbu usullar o'zlari bilan asosiy amaliyotni olib keladi: uzluksiz chiqarish va joylashtirish. Bu asosiy jarayonlarni avtomatlashtiradigan uzluksiz quvur liniyasi bilan ta'minlanadi. Bir tugmani bosish orqali joylashtirishni yoqish orqali qo'lda qadamlar, resurslarni kutish vaqtlari va qayta ishlashni qisqartiradi, natijada ko'proq nashrlar, kamroq xatolar va to'liq shaffoflik.

Avtomatlashtirish dasturiy ta'minotning barqaror va ishonchli chiqarilishini ta'minlashda muhim rol o'ynaydi. Eng katta muammolardan biri qurilish, regressiya, joylashtirish va infratuzilma yaratish kabi qo'lda jarayonlarni qabul qilish va ularni avtomatlashtirishdir. Bu manba kodi versiyasini nazorat qilishni talab qiladi; sinov va joylashtirish stsenariylari; infratuzilma va dastur konfiguratsiyasi ma'lumotlari; va ilova bog'liq bo'lgan kutubxonalar va paketlar. Yana bir muhim omil - barcha muhitlarning holatini so'rash qobiliyati.

Doimiy monitoring

Doimiy monitoring korxona darajasidagi hisobotlarni taqdim etadi, bu esa ishlab chiqish guruhlariga ishlab chiqarish muhitida ilovalar ishlab chiqarishga joylashtirilgunga qadar ularning mavjudligi va ishlashini tushunishga yordam beradi. Uzluksiz monitoring orqali taqdim etilgan dastlabki fikr-mulohazalar xatolar narxini kamaytirish va loyihalarni to'g'ri yo'nalishga yo'naltirish uchun juda muhimdir. Ushbu amaliyot odatda dastur ishlashi bilan bog'liq ko'rsatkichlarni ko'rsatadigan monitoring vositalarini o'z ichiga oladi.

Doimiy qayta aloqa va optimallashtirish

Uzluksiz fikr-mulohazalar va optimallashtirish mijozlar oqimining vizual tasvirini beradi va muammoli joylarni aniq belgilaydi. Qiymatni maksimal darajada oshirish va ko'proq tranzaktsiyalarning muvaffaqiyatli bajarilishini ta'minlash uchun fikr-mulohaza savdodan oldingi va keyingi bosqichlarga kiritilishi mumkin. Bularning barchasi mijozlarning xatti-harakatlari va biznesga ta'siriga ta'sir qiluvchi muammolarning asosiy sababini darhol vizual tarzda ko'rsatishni ta'minlaydi.

Yangi boshlanuvchilar uchun DevOps qo'llanma

DevOps-ning afzalliklari

DevOps umumiy maqsadlarga erishish uchun ishlab chiquvchilar va operatsiyalar jamoa sifatida ishlaydigan muhitni yaratishga yordam beradi. Bu jarayonda muhim bosqich uzluksiz integratsiya va uzluksiz yetkazib berishni (CI/CD) amalga oshirish hisoblanadi. Ushbu usullar jamoalarga dasturiy ta'minotni kamroq xatolar bilan tezroq bozorga chiqarishga imkon beradi.

DevOps-ning muhim afzalliklari:

  • Bashoratli: DevOps yangi versiyalar uchun sezilarli darajada past muvaffaqiyatsizlik darajasini taklif qiladi.
  • Xizmat ko'rsatish imkoniyati: Agar yangi versiya muvaffaqiyatsiz bo'lsa yoki dastur ishlamay qolsa, DevOps oson tiklash imkonini beradi.
  • Qayta ishlab chiqarish: tuzilish yoki kodning versiya boshqaruvi kerak bo'lganda oldingi versiyalarni tiklash imkonini beradi.
  • Yuqori sifat: Infratuzilma muammolarini hal qilish ilovalarni ishlab chiqish sifatini yaxshilaydi.
  • Bozorga chiqish vaqti: dasturiy ta'minotni yetkazib berishni optimallashtirish bozorga chiqish vaqtini 50% ga qisqartiradi.
  • Xavfni kamaytirish: dasturiy ta'minotning hayot aylanishida xavfsizlikni ta'minlash butun umr davomida nuqsonlar sonini kamaytiradi.
  • Xarajatlarning samaradorligi: dasturiy ta'minotni ishlab chiqishda iqtisodiy samaradorlikka intilish yuqori rahbariyatga murojaat qiladi.
  • Barqarorlik: dasturiy ta'minot tizimi yanada barqaror, xavfsiz va o'zgarishlarni tekshirish mumkin.
  • Kattaroq kod bazasini boshqariladigan qismlarga ajratish: DevOps tezkor ishlab chiqish usullariga asoslanadi, bu esa katta kod bazasini kichikroq, boshqariladigan qismlarga ajratish imkonini beradi.

DevOps tamoyillari

DevOps-ning qabul qilinishi rivojlangan (va rivojlanishda davom etayotgan) bir nechta tamoyillarni keltirib chiqardi. Ko'pgina yechim provayderlari turli xil texnikalarning o'z modifikatsiyalarini ishlab chiqdilar. Bu tamoyillarning barchasi DevOpsga yaxlit yondashuvga asoslanadi va har qanday hajmdagi tashkilotlar ulardan foydalanishi mumkin.

Ishlab chiqarishga o'xshash muhitda ishlab chiqish va sinovdan o'tkazish

G'oya ishlab chiqish va sifatni ta'minlash (QA) guruhlariga o'zini ishlab chiqarish tizimlariga o'xshab ishlaydigan tizimlarni ishlab chiqish va sinovdan o'tkazishga imkon berishdir, shunda ular dastur o'zini qanday tutishi va uni joylashtirishga tayyor bo'lishidan ancha oldin ko'rishlari mumkin.

Ilova uchta asosiy potentsial muammolarni hal qilish uchun uning hayotiy tsiklida imkon qadar erta ishlab chiqarish tizimlariga ulanishi kerak. Birinchidan, bu ilovani real muhitga yaqin muhitda sinab ko'rish imkonini beradi. Ikkinchidan, bu sizga ilovalarni etkazib berish jarayonlarini oldindan sinab ko'rish va tasdiqlash imkonini beradi. Uchinchidan, bu operatsion guruhga ilovalar o'rnatilganda ularning muhiti qanday harakat qilishini hayot tsiklining boshida sinab ko'rish imkonini beradi va shu bilan ularga yuqori darajada moslashtirilgan, dasturga asoslangan muhitni yaratishga imkon beradi.

Takrorlanadigan, ishonchli jarayonlar bilan tarqating

Ushbu tamoyil ishlab chiqish va operatsion guruhlarga dasturiy ta'minotning butun hayoti davomida tezkor dasturiy ta'minotni ishlab chiqish jarayonlarini qo'llab-quvvatlash imkonini beradi. Avtomatlashtirish iterativ, ishonchli va takrorlanadigan jarayonlarni yaratish uchun juda muhimdir. Shu sababli, tashkilot uzluksiz, avtomatlashtirilgan joylashtirish va sinovdan o'tkazish imkonini beruvchi etkazib berish quvurini yaratishi kerak. Tez-tez joylashtirish, shuningdek, jamoalarga joylashtirish jarayonlarini sinab ko'rishga imkon beradi va shu bilan jonli nashrlar paytida tarqatishda nosozliklar xavfini kamaytiradi.

Ish sifatini nazorat qilish va tekshirish

Tashkilotlar ishlab chiqarishdagi ilovalarni kuzatishda yaxshi, chunki ular real vaqtda o'lchovlar va asosiy ishlash ko'rsatkichlarini (KPI) ushlaydigan vositalarga ega. Ushbu printsip hayot tsiklining boshida monitoringni harakatga keltiradi va avtomatlashtirilgan test jarayonning boshida dasturning funktsional va funktsional bo'lmagan atributlarini nazorat qilishini ta'minlaydi. Ilova sinovdan o'tkazilganda va o'rnatilganda, sifat ko'rsatkichlari tekshirilishi va tahlil qilinishi kerak. Monitoring vositalari ishlab chiqarish jarayonida yuzaga kelishi mumkin bo'lgan operatsion va sifat muammolari haqida erta ogohlantirishni ta'minlaydi. Ushbu ko'rsatkichlar barcha manfaatdor tomonlar uchun ochiq va tushunarli formatda to'planishi kerak.

Teskari aloqa davrlarini takomillashtirish

DevOps jarayonlarining maqsadlaridan biri tashkilotlarga tezroq javob berish va o'zgarishlarni amalga oshirish imkonini berishdir. Dasturiy ta'minotni yetkazib berishda bu maqsad tashkilotdan fikr-mulohazalarni erta olishini va keyin bajarilgan har bir harakatdan tezda o'rganishni talab qiladi. Ushbu tamoyil tashkilotlardan manfaatdor tomonlarga fikr-mulohaza shaklida kirish va o'zaro aloqa qilish imkonini beruvchi aloqa kanallarini yaratishni talab qiladi. Rivojlanish sizning loyiha rejalaringizni yoki ustuvorliklaringizni o'zgartirish orqali amalga oshirilishi mumkin. Ishlab chiqarish ishlab chiqarish muhitini yaxshilash orqali harakat qilishi mumkin.

dev

  • Rejalashtirish: Kanboard, Wekan va boshqa Trello muqobillari; GitLab, Tuleap, Redmine va boshqa JIRA muqobillari; Mattermost, Roit.im, IRC va boshqa Slack alternativalari.
  • Kodni yozish: Git, Gerrit, Bugzilla; Jenkins va CI/CD uchun boshqa ochiq manbali vositalar
  • montaj: Apache Maven, Gradle, Apache Ant, Packer
  • Sinovlar: JUnit, Bodring, Selenium, Apache JMeter

Ops

  • Chiqarish, joylashtirish, operatsiyalar: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper va boshqalar, Netflix Archaius, Terraform
  • Monitoring: Grafana, Prometey, Nagios, InfluxDB, Fluentd va boshqalar ushbu qo'llanmada keltirilgan.

(*Amaliy vositalar operatsion guruhlar tomonidan foydalanish tartibiga koʻra raqamlangan, ammo ularning asboblari chiqarish va joylashtirish vositalarining hayot aylanish bosqichlari bilan mos keladi. Oʻqish qulayligi uchun raqamlash olib tashlandi.)

Xulosa

DevOps - ishlab chiquvchilar va operatsiyalarni bir birlik sifatida birlashtirishga qaratilgan tobora ommalashib borayotgan metodologiya. Bu noyob, an'anaviy IT operatsiyalaridan farq qiladi va Agile-ni to'ldiradi (lekin u qadar moslashuvchan emas).

Yangi boshlanuvchilar uchun DevOps qo'llanma

SkillFactory'dan pullik onlayn kurslarda qatnashib, noldan yoki ko'nikma va ish haqi bo'yicha Level Up orqali izlanayotgan kasbni qanday olish haqida batafsil ma'lumot oling:

ko'proq kurslar

Foydali

Manba: www.habr.com

a Izoh qo'shish