DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Anton Vayss, Otomato Software kompaniyasi asoschisi va direktori, Isroilda birinchi DevOps sertifikatining tashabbuskorlari va yo'riqchilaridan biri o'tgan yilgi anjumanda so'zga chiqdi. DevOpsDays Moskva xaos nazariyasi va xaos muhandisligining asosiy tamoyillari haqida, shuningdek, kelajakdagi ideal DevOps tashkiloti qanday ishlashini tushuntirib berdi.

Hisobotning matnli variantini tayyorladik.



Xayrli tong!

Moskvadagi DevOpsDays ketma-ket ikkinchi yil, men bu sahnada ikkinchi marta chiqyapman, ko'pchiligingiz ikkinchi marta bu xonadasiz. Bu nima degani? Bu shuni anglatadiki, Rossiyada DevOps harakati o'sib bormoqda, ko'paymoqda va eng muhimi, 2018 yilda DevOps nima ekanligi haqida gapirish vaqti kelganligini anglatadi.

2018 yilda DevOps allaqachon kasb deb o'ylagan qo'llaringizni ko'taring? Bundaylar bor. Xonada ish tavsifida "DevOps muhandisi" deb yozilgan DevOps muhandislari bormi? Xonada DevOps menejerlari bormi? Bunday yo'q. DevOps arxitektorlarimi? Shuningdek, yo'q. Yetarli emas. Hech kim o'zini DevOps muhandisi deb aytmasligi haqiqatmi?

Xo'sh, ko'pchiligingiz buni anti-naqsh deb o'ylaysizmi? Bunday kasb bo'lmasligi kerakmi? Biz xohlagan narsani o'ylashimiz mumkin, lekin biz o'ylayotganimizda, sanoat DevOps karnayining ovozi uchun tantanali ravishda oldinga siljiydi.

DevDevOps nomli yangi mavzu haqida kim eshitgan? Bu ishlab chiquvchilar va devoplar o'rtasida samarali hamkorlik qilish imkonini beruvchi yangi texnika. Va unchalik yangi emas. Twitter ma'lumotlariga ko'ra, ular bu haqda 4 yil oldin gapira boshlagan. Hozirgacha esa bunga qiziqish ortib bormoqda, ya'ni muammo bor. Muammoni hal qilish kerak.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Biz ijodkor odamlarmiz, shunchaki tinchlanmaymiz. Biz aytamiz: DevOps - bu etarlicha keng qamrovli so'z emas; unda hali ham har xil, qiziqarli elementlar yo'q. Va biz maxfiy laboratoriyalarimizga boramiz va qiziqarli mutatsiyalarni ishlab chiqarishni boshlaymiz: DevTestOps, GitOps, DevSecOps, BizDevOps, ProdOps.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Mantiq temir bilan qoplangan, shunday emasmi? Yetkazib berish tizimimiz ishlamaydi, tizimlarimiz beqaror va foydalanuvchilarimiz norozi, dasturiy ta'minotni o'z vaqtida chiqarishga vaqtimiz yo'q, byudjetga to'g'ri kelmaydi. Bularning barchasini qanday hal qilamiz? Biz yangi so'z bilan chiqamiz! U "Ops" bilan tugaydi va muammo hal qilinadi.

Shuning uchun men bu yondashuvni "Ops va muammo hal qilindi" deb atayman.

Agar biz bularning barchasini nima uchun o'ylab topganimizni o'zimizga eslatib tursak, bularning barchasi fonga tushadi. Dasturiy ta'minotni yetkazib berish va bu jarayonda o'z ishimizni to'sqinliksiz, og'riqsiz, samarali va eng muhimi, imkon qadar zavqli qilish uchun biz DevOps-ni o'ylab topdik.

DevOps og'riqdan o'sdi. Biz esa azob-uqubatlardan charchadik. Va bularning barchasi amalga oshishi uchun biz doimo yashil amaliyotlarga tayanamiz: samarali hamkorlik, oqim amaliyotlari va eng muhimi, tizimli fikrlash, chunki usiz DevOps ishlamaydi.

Tizim nima?

Va agar biz tizimli fikrlash haqida gapiradigan bo'lsak, keling, tizim nima ekanligini eslatib o'tamiz.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Agar siz inqilobiy xaker bo'lsangiz, unda tizim siz uchun aniq yomon. Bu sizning ustingizda osilib turadigan va sizni xohlamagan narsalarni qilishga majburlaydigan bulut.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Tizimli tafakkur nuqtai nazaridan tizim qismlardan tashkil topgan butunlikdir. Shu ma'noda har birimiz bir tizimmiz. Biz ishlayotgan tashkilotlar tizimdir. Siz va men qurayotgan narsa tizim deb ataladi.

Bularning barchasi bitta yirik ijtimoiy-texnologik tizimning bir qismidir. Va agar biz ushbu ijtimoiy-texnologik tizim birgalikda qanday ishlashini tushunsak, shundagina biz bu masalada nimanidir optimallashtirishimiz mumkin bo'ladi.

Tizimli fikrlash nuqtai nazaridan tizim turli xil qiziqarli xususiyatlarga ega. Birinchidan, u qismlardan iborat, ya'ni uning xatti-harakati qismlarning xatti-harakatlariga bog'liq. Bundan tashqari, uning barcha qismlari ham bir-biriga bog'liqdir. Ma'lum bo'lishicha, tizim qancha qismlarga ega bo'lsa, uning harakatini tushunish yoki bashorat qilish shunchalik qiyin bo'ladi.

Xulq-atvor nuqtai nazaridan, yana bir qiziq fakt bor. Tizim uning alohida qismlari hech biri qila olmaydigan narsani qila oladi.

Doktor Rassell Ackoff (tizimli fikrlash asoschilaridan biri) aytganidek, buni fikrlash tajribasi bilan isbotlash juda oson. Masalan, xonada kim kod yozishni biladi? Qo'llar juda ko'p va bu normal holat, chunki bu bizning kasbimiz uchun asosiy talablardan biridir. Siz yozishni bilasizmi, lekin qo'llaringiz sizdan alohida kod yoza oladimi? "Kodni mening qo'llarim emas, mening miyam kod yozadi", deb aytadigan odamlar bor. Sizning miyangiz sizdan alohida kod yoza oladimi? Xo'sh, ehtimol yo'q.

Miya ajoyib mashina, biz u erda qanday ishlashining 10 foizini ham bilmaymiz, lekin u bizning tanamiz bo'lgan tizimdan alohida ishlay olmaydi. Va buni isbotlash oson: bosh suyagini oching, miyangizni chiqarib oling, uni kompyuterning oldiga qo'ying, u oddiy narsalarni yozishga harakat qilsin. Masalan, Pythonda "Salom, dunyo".

Agar tizim o'zining hech bir qismi alohida bajara olmaydigan narsani qila olsa, bu uning xatti-harakati uning qismlari xatti-harakati bilan belgilanmaganligini anglatadi. Xo'sh, u nima bilan belgilanadi? Bu qismlarning o'zaro ta'siri bilan belgilanadi. Va shunga ko'ra, qancha qismlar bo'lsa, o'zaro ta'sirlar qanchalik murakkab bo'lsa, tizimning xatti-harakatlarini tushunish va bashorat qilish shunchalik qiyin bo'ladi. Va bu bunday tizimni xaotik qiladi, chunki tizimning biron bir qismidagi har qanday, hatto eng ahamiyatsiz, ko'rinmas o'zgarishlar butunlay oldindan aytib bo'lmaydigan natijalarga olib kelishi mumkin.

Dastlabki sharoitlarga nisbatan bunday sezgirlikni birinchi marta amerikalik meteorolog Ed Lorenz kashf etgan va o'rgangan. Keyinchalik u "kapalak effekti" deb nomlandi va "xaos nazariyasi" deb nomlangan ilmiy fikr harakatining rivojlanishiga olib keldi. Bu nazariya 20-asr fanidagi asosiy paradigma oʻzgarishlaridan biriga aylandi.

Xaos nazariyasi

Xaosni o'rganadigan odamlar o'zlarini xaosologlar deb atashadi.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Aslida, bu hisobotning sababi shundaki, murakkab taqsimlangan tizimlar va yirik xalqaro tashkilotlar bilan ishlaganimda, men o'zimni shunday his qilayotganimni angladim. Men xaosologman. Bu, asosan, aytishning aqlli usuli: "Men bu erda nima bo'layotganini tushunmayapman va bu haqda nima qilishni bilmayman."

O'ylaymanki, sizlarning ko'pchiligingiz ham tez-tez shunday his qilasiz, shuning uchun siz ham xaosologsiz. Sizni xaosologlar gildiyasiga taklif qilaman. Siz va men, aziz xaosologlar, o'rganadigan tizimlar "murakkab adaptiv tizimlar" deb ataladi.

Moslashuvchanlik nima? Moslashuvchanlik deganda, bunday moslashuvchan tizimdagi qismlarning individual va jamoaviy xatti-harakatlari o'zgarishi va o'z-o'zini tashkil qilish, tizimdagi hodisalar yoki mikro-hodisalar zanjiriga javob berish tushuniladi. Ya'ni, tizim o'z-o'zini tashkil etish orqali o'zgarishlarga moslashadi. Va bu o'z-o'zini tashkil qilish qobiliyati erkin avtonom agentlarning ixtiyoriy, to'liq markazlashmagan hamkorligiga asoslanadi.

Bunday tizimlarning yana bir qiziq xususiyati shundaki, ular erkin kengaytirilishi mumkin. Bizni, shubhasiz, xaosolog-muhandislar sifatida nima qiziqtirishi kerak. Xo'sh, agar biz murakkab tizimning xatti-harakati uning qismlarining o'zaro ta'siri bilan belgilanadi, desak, bizni nima qiziqtirishi kerak? O'zaro ta'sir.

Yana ikkita qiziqarli topilma mavjud.
DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Birinchidan, murakkab tizimni uning qismlarini soddalashtirish orqali soddalashtirish mumkin emasligini tushunamiz. Ikkinchidan, murakkab tizimni soddalashtirishning yagona yo'li uning qismlari orasidagi o'zaro ta'sirlarni soddalashtirishdir.

Biz qanday munosabatda bo'lamiz? Siz va men insoniyat jamiyati deb ataladigan katta axborot tizimining bir qismimiz. Biz umumiy til orqali, agar mavjud bo'lsa, topsak, muloqot qilamiz.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Lekin tilning o'zi murakkab moslashish tizimidir. Shunga ko'ra, yanada samarali va sodda o'zaro ta'sir qilish uchun biz qandaydir protokollarni yaratishimiz kerak. Ya'ni, o'rtamizda ma'lumot almashishni sodda, oldindan aytib bo'ladigan va tushunarli qiladigan belgilar va harakatlar ketma-ketligi.

Aytmoqchimanki, murakkablik, moslashuvchanlik, markazsizlashtirish, tartibsizlik tendentsiyalari hamma narsada kuzatilishi mumkin. Va siz va men qurayotgan tizimlarda va biz bir qismi bo'lgan tizimlarda.

Va asossiz bo'lmaslik uchun, keling, biz yaratadigan tizimlar qanday o'zgarib borayotganini ko'rib chiqaylik.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Siz bu so'zni kutgan edingiz, tushundim. Biz DevOps konferentsiyasidamiz, bugun bu so'z taxminan yuz ming marta eshitiladi va keyin biz bu haqda tunda tush ko'ramiz.

Mikroservislar DevOps amaliyotlariga reaktsiya sifatida paydo bo'lgan birinchi dasturiy ta'minot arxitekturasi bo'lib, u bizning tizimlarimizni yanada moslashuvchan, kengaytiriladigan va uzluksiz yetkazib berishni ta'minlash uchun mo'ljallangan. U buni qanday qiladi? Xizmatlar hajmini qisqartirish, ushbu xizmatlarni bajaradigan muammolar ko'lamini qisqartirish, etkazib berish vaqtini qisqartirish. Ya'ni, biz tizim qismlarini qisqartiramiz va soddalashtiramiz, ularning sonini ko'paytiramiz va shunga mos ravishda bu qismlar o'rtasidagi o'zaro ta'sirlarning murakkabligi doimo oshadi, ya'ni biz hal qilishimiz kerak bo'lgan yangi muammolar paydo bo'ladi.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Mikroservislar bu oxiri emas, mikroservislar, umuman olganda, kecha, chunki Serversiz keladi. Barcha serverlar yonib ketdi, serverlar, operatsion tizimlar yo'q, faqat sof bajariladigan kod. Konfiguratsiyalar alohida, davlatlar alohida, hamma narsa hodisalar tomonidan boshqariladi. Go'zallik, poklik, sukunat, hech qanday hodisa, hech narsa sodir bo'lmaydi, to'liq tartib.

Murakkablik qayerda? Qiyinchilik, albatta, o'zaro munosabatlarda. Bitta funktsiya o'z-o'zidan qancha ishlay oladi? U boshqa funktsiyalar bilan qanday o'zaro ta'sir qiladi? Xabar navbatlari, ma'lumotlar bazalari, balanschilar. Muvaffaqiyatsizlik yuz berganda qandaydir hodisani qayta yaratish mumkin? Ko'p savollar va kam javoblar.

Mikroservislar va Serversiz - bu biz hipsterlar Cloud Native deb ataydigan narsadir. Hammasi bulut haqida. Ammo bulut ham o'zining kengaytirilishi bilan cheklangan. Biz uni taqsimlangan tizim deb o'ylashga odatlanganmiz. Aslida, bulutli provayderlar serverlari qayerda yashaydi? Ma'lumotlar markazlarida. Ya'ni, bu erda bizda markazlashtirilgan, juda cheklangan, taqsimlangan model mavjud.

Bugun biz tushunamizki, narsalar Interneti endi shunchaki katta so'zlar emas, hatto oddiy prognozlarga ko'ra ham, kelgusi besh-o'n yil ichida bizni Internetga ulangan milliardlab qurilmalar kutmoqda. Bulutga birlashtiriladigan va bulutdan yuklanadigan juda ko'p foydali va keraksiz ma'lumotlar.

Bulut davom etmaydi, shuning uchun biz chekka hisoblash deb ataladigan narsa haqida tobora ko'proq gaplashmoqdamiz. Yoki menga "tumanli hisoblash" ning ajoyib ta'rifi ham yoqadi. U romantizm va sirli tasavvuf bilan qoplangan.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Tumanli hisoblash. Gap shundaki, bulutlar suv, bug ', muz va toshlarning markazlashtirilgan to'dalaridir. Tuman esa atmosferada atrofimizda tarqalgan suv tomchilaridir.

Tuman paradigmasida ishning katta qismi bu tomchilar tomonidan butunlay avtonom yoki boshqa tomchilar bilan hamkorlikda amalga oshiriladi. Va ular haqiqatan ham bosilgandagina bulutga murojaat qilishadi.

Ya'ni, yana markazsizlashtirish, avtonomiya va, albatta, ko'pchiligingiz bularning barchasi qayerga ketayotganini allaqachon tushungansiz, chunki siz blokcheyn haqida gapirmasdan markazsizlashtirish haqida gapira olmaysiz.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Imon keltirganlar bor, bu kriptovalyutaga sarmoya kiritganlar. Masalan, men kabi ishonadigan, lekin qo'rqadiganlar bor. Va ishonmaydiganlar ham bor. Bu erda siz boshqacha munosabatda bo'lishingiz mumkin. Texnologiya bor, yangi noma'lum masala, muammolar bor. Har qanday yangi texnologiya singari, u javob berishdan ko'ra ko'proq savollar tug'diradi.

Blokcheyn atrofidagi shov-shuvlar tushunarli. Oltin shoshqaloqlik bir chetga surib, texnologiyaning o'zi yorqin kelajak uchun ajoyib va'dalarni beradi: ko'proq erkinlik, ko'proq avtonomiya, taqsimlangan global ishonch. Nimani xohlamaslik kerak?

Shunga ko'ra, butun dunyo bo'ylab tobora ko'proq muhandislar markazlashtirilmagan ilovalarni ishlab chiqishni boshladilar. Va bu shunchaki: "Ah, blokcheyn - bu yomon tatbiq etilgan taqsimlangan ma'lumotlar bazasi" deb aytish bilan rad etib bo'lmaydigan kuchdir. Yoki skeptiklar aytishni yaxshi ko'rganlaridek: "Blokcheyn uchun haqiqiy ilovalar yo'q". O‘ylab ko‘rsangiz, 150 yil avval elektr toki haqida ham shunday degan edilar. Va ular hatto qaysidir ma'noda to'g'ri edi, chunki bugungi kunda elektr energiyasini imkon beradigan narsa 19-asrda hech qanday tarzda mumkin emas edi.

Aytgancha, ekranda qanday logotip borligini kim biladi? Bu Hyperledger. Bu Linux Foundation homiyligida ishlab chiqilayotgan loyiha boʻlib, blokcheyn texnologiyalari toʻplamini oʻz ichiga oladi. Bu haqiqatan ham bizning ochiq manba hamjamiyatimizning kuchi.

Xaos muhandisligi

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Xullas, biz yaratayotgan tizim tobora murakkablashmoqda, tobora tartibsiz va ko‘proq moslashib bormoqda. Netflix mikroservis tizimlarining kashshoflari hisoblanadi. Ular buni birinchilardan bo'lib tushundilar, ular Simian armiyasi deb nomlangan asboblar to'plamini ishlab chiqdilar, ulardan eng mashhuri Chaos Maymun. U ma'lum bo'lgan narsani aniqladi "xaos muhandisligi tamoyillari".

Aytgancha, hisobot ustida ishlash jarayonida biz ushbu matnni hatto rus tiliga tarjima qildik, shuning uchun o'ting havola, o'qing, sharhlang, so'rang.

Qisqacha aytganda, xaos muhandisligi tamoyillari quyidagilarni aytadi. Murakkab taqsimlangan tizimlar tabiatan oldindan aytib bo'lmaydigan va noto'g'ri. Xatolar muqarrar, ya'ni biz bu xatolarni qabul qilishimiz va bu tizimlar bilan butunlay boshqacha tarzda ishlashimiz kerak.

Biz o'zimiz o'zimiz ishlab chiqarish tizimlarimizga ushbu xatolarni kiritishga harakat qilishimiz kerak, bu bizning tizimlarimizning xuddi shunday moslashuvchanligi, o'zini o'zi tashkil etishi va omon qolish qobiliyatini sinab ko'rishimiz kerak.

Va bu hamma narsani o'zgartiradi. Nafaqat tizimlarni ishlab chiqarishga qanday kiritamiz, balki ularni qanday rivojlantiramiz, qanday sinovdan o‘tkazamiz. Kodni barqarorlashtirish yoki muzlatish jarayoni mavjud emas, aksincha, doimiy ravishda beqarorlik jarayoni mavjud. Biz tizimni o'ldirishga va uning omon qolishini ko'rishga harakat qilmoqdamiz.

Tarqalgan tizim integratsiyasi protokollari

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Shunga ko'ra, bu bizning tizimlarimiz qandaydir tarzda o'zgarishini talab qiladi. Ular yanada barqaror bo'lishi uchun ularning qismlari o'rtasidagi o'zaro ta'sir qilish uchun yangi protokollar kerak. Shunday qilib, bu qismlar rozi bo'lishi va qandaydir o'zini o'zi tashkil qilishiga kelishi mumkin. Va har xil yangi vositalar, yangi protokollar paydo bo'ladi, men ularni "tarqatilgan tizimlarning o'zaro ta'siri uchun protokollar" deb atayman.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Men nima haqida gapiryapman? Birinchidan, loyiha Opentracing. Ba'zilar murakkab taqsimlangan tizimlarni tuzatish uchun mutlaqo ajralmas vosita bo'lgan umumiy taqsimlangan kuzatuv protokolini yaratishga harakat qilishadi.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Keyinchalik - Ochiq siyosat agenti. Biz tizimga nima bo'lishini oldindan aytib bo'lmaydi, ya'ni uning kuzatuvchanligini, kuzatuvchanligini oshirishimiz kerak, deymiz. Opentracing bizning tizimlarimizni kuzatish imkonini beruvchi vositalar oilasiga tegishli. Ammo tizim biz kutgandek harakat qiladimi yoki yo'qligini aniqlash uchun bizga kuzatuvchanlik kerak. Biz kutilgan xatti-harakatni qanday aniqlaymiz? Qandaydir siyosatni, qandaydir qoidalarni belgilash orqali. Ochiq siyosat agenti loyihasi ushbu qoidalar to'plamini kirishdan tortib resurslarni taqsimlashgacha bo'lgan spektrda aniqlash ustida ishlamoqda.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Aytganimizdek, bizning tizimlarimiz tobora ko'proq voqealarga asoslangan. Serversiz hodisalarga asoslangan tizimlarning ajoyib namunasidir. Hodisalarni tizimlar o'rtasida o'tkazish va ularni kuzatib borish uchun bizga umumiy til, voqealar haqida qanday gaplashishimiz va ularni bir-birimizga qanday etkazishimiz uchun umumiy protokol kerak. Loyiha shunday deb ataladi Bulutli hodisalar.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Tizimlarimiz ustidan yuviladigan, ularni doimiy ravishda beqarorlashtiradigan doimiy o'zgarishlar oqimi dasturiy artefaktlarning uzluksiz oqimidir. Ushbu doimiy o'zgarishlar oqimini saqlab turishimiz uchun bizga dasturiy artefakt nima ekanligi, qanday sinovdan o'tganligi, qanday tekshiruvdan o'tganligi haqida gaplashishimiz mumkin bo'lgan qandaydir umumiy protokol kerak. Loyiha shunday deb ataladi Grafeas. Ya'ni, dasturiy artefaktlar uchun umumiy metadata protokoli.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Va nihoyat, agar biz tizimlarimiz butunlay mustaqil, moslashuvchan va o'z-o'zini tashkil qilishini istasak, biz ularga o'zimizni identifikatsiya qilish huquqini berishimiz kerak. Loyiha chaqirildi spiffe Aynan shunday qiladi. Bu, shuningdek, Cloud Native Computing Foundation homiyligidagi loyihadir.

Bu loyihalarning barchasi yosh, ularning barchasi bizning sevgimizga, tasdiqlashimizga muhtoj. Bularning barchasi ochiq manba, bizning sinovimiz, amalga oshirishimiz. Ular bizga texnologiya qayerga ketayotganini ko'rsatadilar.

Ammo DevOps hech qachon birinchi navbatda texnologiya haqida bo'lmagan, u doimo odamlar o'rtasidagi hamkorlik haqida bo'lgan. Va shunga ko'ra, agar biz ishlab chiqayotgan tizimlar o'zgarishini xohlasak, o'zimiz ham o'zimiz o'zgarishimiz kerak. Aslida, biz baribir o'zgarmoqdamiz; bizda ko'p tanlov yo'q.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Ajoyib bor kitob Britaniyalik yozuvchi Reychel Botsman, unda u insoniyat tarixi davomida ishonch evolyutsiyasi haqida yozadi. Uning aytishicha, dastlab ibtidoiy jamiyatlarda ishonch mahalliy bo‘lgan, ya’ni biz faqat o‘zimiz bilganlargagina ishonardik.

Keyin juda uzoq davr – ishonch markazlashgan qorong‘u davr bo‘ldi, biz o‘zimiz bilmagan odamlarga bir xil jamoat yoki davlat muassasasiga mansub ekanligimizdan kelib chiqib ishona boshladik.

Va bu bizning zamonaviy dunyomizda ko'rayotgan narsa: ishonch tobora ko'proq taqsimlanadi va markazlashtirilmaydi va u axborot oqimining erkinligiga, axborotning mavjudligiga asoslanadi.

Agar o'ylab ko'rsangiz, bu ishonchni yuzaga keltiradigan ushbu qulaylik siz va men amalga oshirayotgan narsadir. Bu shuni anglatadiki, bizning hamkorlik qilish usulimiz ham, uni amalga oshirish usulimiz ham o'zgarishi kerak, chunki eski markazlashtirilgan, ierarxik IT tashkilotlari endi ishlamayapti. Ular o'lishni boshlaydilar.

DevOps tashkilotining asoslari

Kelajakdagi ideal DevOps tashkiloti - bu har biri avtonom shaxslardan iborat avtonom jamoalardan tashkil topgan markazlashtirilmagan, moslashuvchan tizim. Bu jamoalar butun dunyo bo'ylab tarqalib, asinxron aloqadan foydalangan holda, yuqori shaffof aloqa protokollaridan foydalangan holda bir-biri bilan samarali hamkorlik qiladi. Juda chiroyli, shunday emasmi? Juda chiroyli kelajak.

Albatta, bularning hech biri madaniy o'zgarishlarsiz mumkin emas. Bizda transformatsion etakchilik, shaxsiy javobgarlik, ichki motivatsiya bo'lishi kerak.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Bu DevOps tashkilotlarining asosidir: axborot shaffofligi, asinxron aloqalar, transformatsion etakchilik, markazsizlashtirish.

Kuyish

Biz bir qismi bo'lgan va biz qurayotgan tizimlar tobora xaotik bo'lib bormoqda va biz odamlar uchun bu fikrga dosh berish qiyin, boshqaruv xayolidan voz kechish qiyin. Biz ularni nazorat qilishni davom ettirishga harakat qilamiz va bu ko'pincha charchashga olib keladi. Buni o'z tajribamdan aytaman, men ham kuyib ketdim, ishlab chiqarishdagi kutilmagan nosozliklar tufayli nogiron bo'lib qoldim.

DevOps va xaos: markazlashtirilmagan dunyoda dasturiy ta'minotni etkazib berish

Kuyish tabiatan nazorat qilib bo'lmaydigan narsani nazorat qilishga uringanimizda paydo bo'ladi. Biz yonib ketganimizda, hamma narsa o'z ma'nosini yo'qotadi, chunki biz yangi narsa qilish istagini yo'qotamiz, biz himoyaga tushamiz va o'zimizdagi narsalarni himoya qila boshlaymiz.

Muhandislik kasbi, men tez-tez eslatib turishni yaxshi ko'raman, bu birinchi navbatda ijodiy kasbdir. Agar biror narsani yaratish istagini yo'qotsak, biz kulga aylanamiz, kulga aylanamiz. Odamlar yonib ketadi, butun tashkilotlar yonib ketadi.

Menimcha, faqat tartibsizlikning bunyodkorlik kuchini qabul qilish, uning tamoyillari asosida hamkorlikni yo‘lga qo‘yishgina kasbimizdagi yaxshilikni yo‘qotmaslikka yordam beradi.

Sizga shuni tilayman: ishingizni seving, biz qilayotgan ishimizni seving. Bu dunyo axborot bilan oziqlanadi, biz uni oziqlantirish sharafiga egamiz. Shunday qilib, keling, tartibsizlikni o'rganaylik, xaosolog bo'laylik, qiymat keltiraylik, yangi narsalarni yarataylik, yaxshi, muammolar, biz allaqachon aniqlaganimizdek, muqarrar va ular paydo bo'lganda, biz shunchaki "Ops!" Deymiz va muammo hal qilinadi.

Chaos Monkeydan boshqa nima?

Aslida, bu asboblarning barchasi juda yosh. Xuddi shu Netflix o'zlari uchun vositalarni yaratdi. O'zingizning vositalaringizni yarating. Xaos muhandisligi tamoyillarini o'qing va kimdir allaqachon qurgan boshqa vositalarni topishga urinishdan ko'ra, ushbu tamoyillarga amal qiling.

Tizimlaringiz qanday buzilishini tushunishga harakat qiling va ularni buzishni boshlang va ular qanday turishini ko'ring. Bu birinchi navbatda keladi. Va siz asboblarni qidirishingiz mumkin. Har xil loyihalar mavjud.

Tizimni uning tarkibiy qismlarini soddalashtirish orqali soddalashtirish mumkin emasligini va darhol komponentlarning o'zini soddalashtirish va o'zaro ta'sirlarni murakkablashtirish orqali tizimni soddalashtiradigan mikroservislarga o'tishingizni aytganingizda men unchalik tushunmadim. Bular asosan bir-biriga zid bo'lgan ikkita qismdir.

To'g'ri, mikroservislar umuman olganda juda bahsli mavzu. Aslida, qismlarni soddalashtirish moslashuvchanlikni oshiradi. Mikroservislar nima beradi? Ular bizga moslashuvchanlik va tezlikni beradi, lekin ular, albatta, bizga soddalik bermaydi. Ular qiyinchilikni oshiradi.

Shunday qilib, DevOps falsafasida mikroservislar unchalik yaxshi narsa emasmi?

Har qanday yaxshilikning teskari tomoni bor. Foyda shundaki, u moslashuvchanlikni oshiradi, o'zgarishlarni tezroq qilishimizga imkon beradi, lekin u butun tizimning murakkabligini va shuning uchun mo'rtligini oshiradi.

Shunga qaramay, nimaga ko'proq e'tibor qaratiladi: o'zaro ta'sirni soddalashtirish yoki qismlarni soddalashtirish?

Albatta, asosiy e'tibor o'zaro munosabatlarni soddalashtirishga qaratilgan, chunki agar biz siz bilan qanday ishlashimiz nuqtai nazaridan qarasak, birinchi navbatda, biz ishni soddalashtirishga emas, balki o'zaro munosabatlarni soddalashtirishga e'tibor qaratishimiz kerak. har birimizdan alohida. Chunki ishni soddalashtirish robotga aylanish demakdir. Bu yerda McDonald'sda ko'rsatmalaringiz bo'lsa, u normal ishlaydi: mana burgerni qo'yasiz, mana unga sousni quyasiz. Bu bizning ijodiy ishimizda umuman ishlamaydi.

Siz aytgan hamma narsa raqobatsiz dunyoda yashaydi va u yerdagi tartibsizlik juda mehribon va bu tartibsizlik ichida hech qanday qarama-qarshilik yo'q, hech kim hech kimni yeyishni yoki o'ldirishni xohlamaydi, rostmi? Raqobat va DevOps qanday bo'lishi kerak?

Xo'sh, bu qanday raqobat haqida gapirayotganimizga bog'liq. Bu ish joyidagi raqobat haqidami yoki kompaniyalar o'rtasidagi raqobatmi?

Xizmatlar bir nechta kompaniyalar emasligi sababli mavjud bo'lgan xizmatlarning raqobati haqida. Biz yangi turdagi axborot muhitini yaratmoqdamiz va har qanday muhit raqobatsiz yashay olmaydi. Hamma joyda raqobat bor.

Xuddi shu Netflix, biz ularni namuna sifatida olamiz. Nega ular buni o'ylab topishdi? Chunki ular raqobatbardosh bo'lishlari kerak edi. Harakatning bu moslashuvchanligi va tezligi aynan raqobatbardosh talab bo'lib, tizimlarimizga betartiblikni keltirib chiqaradi. Ya'ni, tartibsizlik biz xohlaganimiz uchun ongli ravishda qiladigan narsa emas, bu dunyo buni talab qilgani uchun sodir bo'ladigan narsadir. Biz shunchaki moslashishimiz kerak. Xaos esa aynan raqobat natijasidir.

Bu betartiblik maqsadlarning yo'qligi deganimi? Yoki biz ko'rishni istamaydigan maqsadlarmi? Biz uydamiz va boshqalarning maqsadlarini tushunmaymiz. Raqobat, aslida, bizning aniq maqsadlarimiz borligi va biz har bir keyingi daqiqada qayerga borishimizni bilishimiz bilan bog'liq. Bu, mening nuqtai nazarimdan, DevOpsning mohiyati.

Shuningdek, savolga qarang. O'ylaymanki, barchamizning maqsadimiz bir: omon qolish va buni amalga oshirish
eng katta zavq. Va har qanday tashkilotning raqobat maqsadi bir xil. Omon qolish ko'pincha raqobat orqali sodir bo'ladi, bu haqda hech narsa qila olmaysiz.

Bu yilgi konferentsiya DevOpsDays Moskva 7 dekabr kuni Texnopolisda bo'lib o'tadi. Hisobotlarga arizalarni 11-noyabrgacha qabul qilamiz. Yozing Agar siz gaplashmoqchi bo'lsangiz, bizga.

Ishtirokchilar uchun ro'yxatga olish ochiq, chiptalar narxi 7000 rubl. Bizga qo'shiling!

Manba: www.habr.com

a Izoh qo'shish