Nima uchun tizim ma'murlari DevOps muhandislari bo'lishlari kerak

Nima uchun tizim ma'murlari DevOps muhandislari bo'lishlari kerak

Hayotda o'rganish uchun bugungidan yaxshiroq vaqt yo'q.


Bu 2019 yil va DevOps har qachongidan ham dolzarb. Aytishlaricha, tizim ma'murlari davri xuddi meynfreym davri kabi o'tib ketdi. Lekin bu haqiqatan ham shundaymi?
IT sohasida tez-tez sodir bo'lganidek, vaziyat o'zgardi. DevOps metodologiyasi paydo bo'ldi, lekin u tizim administratori malakasiga ega bo'lgan shaxssiz, ya'ni Opssiz mavjud bo'lolmaydi.

DevOps yondashuvi zamonaviy ko'rinishga ega bo'lishidan oldin, men o'zimni Ops sifatida tasniflaganman. Va men tizim ma'muri hali qanchalar qila olmasligini va buni o'rganish uchun qancha vaqt kerakligini anglab yetganida nimalarni boshdan kechirishini juda yaxshi bilaman.

Nima uchun tizim ma'murlari DevOps muhandislari bo'lishlari kerak

Ammo bu haqiqatan ham shunchalik qo'rqinchlimi? Men aytmoqchimanki, bilim etishmasligi qandaydir katta muammo sifatida qabul qilinmasligi kerak. Bu ko'proq professional qiyinchilik.

Veb-miqyosdagi mahsulotlar Linux yoki boshqa ochiq kodli dasturiy ta'minotga asoslangan va bozorda ularni saqlashga qodir bo'lgan odamlar tobora kamayib bormoqda. Talab allaqachon bu sohadagi mutaxassislar sonidan oshib ketgan. Tizim ma'muri endi o'z malakasini oshirmasdan turib, oddiygina ishlashni davom ettira olmaydi. U bir nechta serverlarni/tugunlarni boshqarish uchun avtomatlashtirish ko'nikmalariga ega bo'lishi va yuzaga keladigan muammolarni hal qilish uchun qanday ishlashini yaxshi tushunishi kerak.

DevOps jamoasi a'zosi bo'lishdan oldin siz juda uzoq, ammo qiziqarli sayohatni bosib o'tishingiz, tizimni DevOps standartlariga muvofiq saqlash uchun zarur bo'lgan yangi texnologiyalar va turli vositalarni o'rganishingiz kerak.

Xo'sh, qanday qilib tizim ma'muri odatiy ishlashdan yangi DevOps kontseptsiyasiga o'tishi mumkin? Hammasi odatdagidek: birinchi navbatda fikringizni o'zgartirishingiz kerak. Oxirgi oβ€˜n-yigirma yil davomida amal qilgan yondashuvingizdan voz kechib, boshqacha yoβ€˜l tutishni boshlash oson emas, lekin bu zarur.

Avvalo, DevOps - bu kompaniyadagi ma'lum bir pozitsiya emas, balki muayyan amaliyotlar to'plami ekanligini tushunish muhimdir. Ushbu amaliyotlar izolyatsiyalangan tizimlarni taqsimlashni, xato va xatolardan zararni kamaytirishni, dasturiy ta'minotni tez-tez va o'z vaqtida yangilashni, ishlab chiquvchilar (Dev) va ma'murlar (Ops) o'rtasidagi yaxshi o'zaro aloqani, shuningdek, nafaqat kodni, balki doimiy ravishda sinovdan o'tkazishni nazarda tutadi. jarayon ichidagi butun tuzilma ham uzluksiz integratsiya va yetkazib berish (CI/CD).

Fikrlash tarzini o'zgartirish bilan bir qatorda, siz infratuzilmani qanday saqlashni va uning barqaror ishlashini, ishonchliligi va mavjudligini ta'minlashni o'rganishingiz kerak doimiy integratsiya va ilovalar, xizmatlar va dasturiy ta'minot yetkazib berish.

Operatsiya mutaxassisi sifatida sizga etishmayotgan narsa bu dasturlash qobiliyatlari. Endi tizim ma'murlari avtomatik ravishda serverga yamoqlarni o'rnatish, fayllar va hisoblarni boshqarish, muammolarni bartaraf etish va hujjatlarni kompilyatsiya qilish uchun foydalanadigan skriptlarni (skriptlarni) yozish allaqachon eskirgan deb hisoblanadi. Skript yaratish hali ham nisbatan oddiy holatlarda qo'llaniladi, ammo DevOps keng ko'lamli muammolarni hal qilishga qaratilgan, xoh u amalga oshirish, sinovdan o'tkazish, qurish yoki joylashtirish.

Shunday qilib, agar siz avtomatlashtirishni o'rganmoqchi bo'lsangiz, dasturchi bo'lmasangiz ham, hech bo'lmaganda ozgina dasturlashni o'zlashtirishingiz kerak, chunki rivojlanishingizning ushbu bosqichida infratuzilmani avtomatlashtirish DevOps-da bu mahorat talab etiladi.

Nima qilish kerak? Mutaxassis sifatida talabni saqlab qolish uchun siz tegishli ko'nikmalarga ega bo'lishingiz kerak - kamida bitta dasturlash tilini, masalan, Pythonni o'zlashtirishingiz kerak. Ma'muriyat bilan professional ravishda shug'ullanadigan odam uchun bu qiyin bo'lib tuyulishi mumkin, chunki u faqat ishlab chiquvchilar dasturlashadi deb o'ylashga odatlangan. Mutaxassis bo'lish shart emas, lekin dasturlash tillaridan birini bilish (bu Python, Bash yoki hatto bo'lishi mumkin) PowerShell), albatta afzallik bo'ladi.

Dasturlashni o'rganish biroz vaqt talab etadi. Ehtiyotkorlik va sabr-toqatli bo'lish DevOps jamoasi a'zolari va mijozlari bilan muloqot qilishda hamma narsadan xabardor bo'lishga yordam beradi. Kuniga yarim soat, bir soat yoki undan ko'proq dasturlash tilini o'rganish sizning asosiy maqsadingiz bo'lishi kerak.

Tizim ma'murlari va DevOps mutaxassislari shunga o'xshash muammolarni hal qilishadi, ammo sezilarli farqlar mavjud. Tizim ma'muri DevOps muhandisi qila oladigan hamma narsani qila olmaydi, deb ishoniladi. Ularning ta'kidlashicha, tizim ma'muri ko'proq server tizimlarini sozlash, saqlash va ishlashini ta'minlashga qaratilgan, ammo DevOps muhandisi bu aravani va boshqa kichik aravani tortib oladi.

Ammo bu bayonot qanchalik to'g'ri?

Tizim ma'muri: maydonda bitta jangchi

Ushbu maqolada qayd etilgan farqlar va o'xshashliklarga qaramay, men hali ham tizim boshqaruvi va DevOps o'rtasida sezilarli farq yo'qligiga ishonaman. Tizim ma'murlari har doim DevOps mutaxassislari bilan bir xil funktsiyalarni bajarishgan, shunchaki hech kim uni DevOps deb atamagan. Menimcha, farqlarni alohida izlashning ma'nosi yo'q, ayniqsa, agar u biron bir vazifa bilan bog'liq bo'lmasa. Shuni unutmangki, tizim administratoridan farqli o'laroq, DevOps bu pozitsiya emas, balki tushunchadir.

Yana bir muhim narsani ta'kidlash kerak, ularsiz ma'muriyat va DevOps haqida suhbat to'liq bo'lmaydi. Tizim ma'muriyati odatiy ma'noda mutaxassisning ma'lum ko'nikmalar to'plamiga ega ekanligini va har xil turdagi infratuzilmalarga xizmat ko'rsatishga qaratilganligini nazarda tutadi. Bu universal xodim degan ma'noda emas, balki barcha ma'murlar tomonidan bajariladigan bir qator vazifalar mavjudligi ma'nosida.

Masalan, vaqti-vaqti bilan ular o'ziga xos texnik usta sifatida harakat qilishlari kerak, ya'ni tom ma'noda hamma narsani qilishlari kerak. Va agar butun tashkilot uchun bitta administrator bo'lsa, u odatda barcha texnik ishlarni bajaradi. Bu printerlar va nusxa ko'chirish mashinalariga texnik xizmat ko'rsatishdan tortib, tarmoq bilan bog'liq vazifalarni bajarishgacha bo'lgan har qanday narsa bo'lishi mumkin, masalan, marshrutizatorlar va kalitlarni sozlash va boshqarish yoki xavfsizlik devorini sozlash.

U, shuningdek, uskunani yangilash, jurnalni tekshirish va tahlil qilish, xavfsizlik auditi, serverni tuzatish, muammolarni bartaraf etish, ildiz sabablarini tahlil qilish va avtomatlashtirish uchun javobgar bo'ladi - odatda PowerShell, Python yoki Bash skriptlari orqali. Foydalanishning bir misoli stsenariylar foydalanuvchi va guruh hisoblarini boshqarishdir. Foydalanuvchi hisoblarini yaratish va ruxsatlarni belgilash juda zerikarli vazifadir, chunki foydalanuvchilar deyarli har kuni paydo bo'ladi va yo'qoladi. Skriptlar orqali avtomatlashtirish kommutatorlar va serverlarni yangilash kabi muhimroq infratuzilma vazifalari va administrator ishlayotgan kompaniyaning rentabelligiga ta'sir qiluvchi boshqa loyihalar uchun vaqtni bo'shatadi (hatto IT bo'limi bevosita daromad keltirmasligi umumiy qabul qilingan bo'lsa ham).

Tizim ma'murining vazifasi vaqtni behuda sarflamaslik va kompaniyaning pulini har qanday tarzda tejashdir. Ba'zida tizim ma'murlari, masalan, Linux, Windows, ma'lumotlar bazalari, saqlash va boshqalarni birlashtirgan katta jamoaning a'zolari sifatida ishlaydi. Ish jadvallari ham har xil. Masalan, kun oxirida bir vaqt mintaqasidagi siljish jarayonlar to'xtab qolmasligi uchun (quyoshdan keyin) ishlarni boshqa vaqt mintaqasidagi keyingi smenaga o'tkazadi; yoki xodimlarning oddiy ish kuni ertalab soat 9 dan 5 gacha; yoki u XNUMX/XNUMX ma'lumotlar markazida ishlaydi.

Vaqt o'tishi bilan tizim ma'murlari strategik fikrlashni va muhim masalalarni muntazam vazifalar bilan birlashtirishni o'rgandilar. Ular ishlaydigan jamoalar va bo'limlar odatda resurslarga etishmaydi, lekin shu bilan birga hamma kundalik vazifalarni to'liq bajarishga harakat qiladi.

DevOps: ishlab chiqish va texnik xizmat ko'rsatish bitta

DevOps ishlab chiqish va saqlash jarayonlari uchun o'ziga xos falsafadir. IT olamida bunday yondashuv chinakam innovatsion bo'ldi.

DevOps soyaboni ostida bir tomonda dasturiy ta'minotni ishlab chiqish guruhi va boshqa tomondan texnik xizmat ko'rsatish guruhi mavjud. Ularga ko'pincha mahsulotni boshqarish bo'yicha mutaxassislar, testerlar va foydalanuvchi interfeysi dizaynerlari qo'shiladi. Bu mutaxassislar birgalikda butun kompaniya samaradorligini qo'llab-quvvatlash va yaxshilash uchun yangi ilovalar va kod yangilanishlarini tezda chiqarish uchun operatsiyalarni soddalashtiradi.

DevOps dasturiy ta'minotning butun hayot aylanishi davomida ishlab chiqilishi va ishlashi ustidan nazoratga asoslangan. Texnik xizmat ko'rsatuvchi odamlar ishlab chiquvchilarni qo'llab-quvvatlashlari kerak va ishlab chiquvchilar tizimlarda ishlatiladigan API-larni tushunishdan ko'ra ko'proq narsani tushunishlari kerak. Ular xatolarni yaxshiroq hal qilishlari, muammolarni hal qilishlari va xizmat ko'rsatish bo'yicha mutaxassislar bilan o'zaro aloqada bo'lishlari uchun qopqoq ostida nima borligini (ya'ni, apparat va operatsion tizimlar qanday ishlashini) tushunishlari kerak.

Tizim ma'murlari, agar ular eng yangi texnologiyalarni o'rganishni xohlasalar va innovatsion g'oyalar va echimlarga ochiq bo'lsalar, DevOps jamoasiga o'tishlari mumkin. Yuqorida aytganimdek, ular to'liq dasturchi bo'lishlari shart emas, lekin Ruby, Python yoki Go kabi dasturlash tilini o'zlashtirish ularga jamoaning juda foydali a'zosi bo'lishga yordam beradi. Garchi tizim ma'murlari an'anaviy ravishda barcha ishlarni o'zlari bajaradilar va ko'pincha yolg'izlar sifatida qabul qilinadilar, DevOps-da ular butunlay qarama-qarshi tajribaga ega bo'lib, jarayonda hamma bir-biri bilan o'zaro aloqada bo'ladi.

Avtomatlashtirish mavzusi tobora dolzarb bo'lib bormoqda. Tizim ma'murlari ham, DevOps mutaxassislari ham tezlikni o'zgartirish, xatolarni kamaytirish va mavjud xatolarni tezda topish va tuzatishdan manfaatdor. Shunday qilib, avtomatlashtirish ikki sohani birlashtiradigan tushunchadir. Tizim ma'murlari AWS, Azure va Google Cloud Platform kabi bulutli xizmatlar uchun javobgardir. Ular uzluksiz integratsiya va yetkazib berish tamoyillarini va shunga o'xshash vositalardan qanday foydalanishni tushunishlari kerak Jenkins.

Bundan tashqari, tizim ma'murlari konfiguratsiya va boshqaruv vositalaridan foydalanishlari kerak, masalan E'tirof etiladi, o'n yoki yigirma serverni parallel joylashtirish uchun zarur.

Asosiy tushuncha kod sifatida infratuzilma. Dasturiy ta'minot - bu hamma narsa. Aslida, tizim ma'muri kasbi o'z ahamiyatini yo'qotmasligi uchun siz faqat urg'uni biroz o'zgartirishingiz kerak. Tizim ma'murlari xizmat ko'rsatish biznesida va ishlab chiquvchilar bilan samarali muloqot qila olishlari kerak va aksincha. Ular aytganidek, bitta bosh yaxshi, lekin ikkitasi yaxshiroq.

Va bu mexanizmdagi oxirgi tafsilot borib. Git bilan ishlash tizim ma'murining an'anaviy kundalik vazifalaridan biridir. Ushbu versiyani boshqarish tizimi ishlab chiquvchilar, DevOps mutaxassislari, Agile jamoalari va boshqalar tomonidan keng qo'llaniladi. Agar sizning ishingiz dasturiy ta'minotning hayot aylanishi bilan bog'liq bo'lsa, unda siz Git bilan albatta ishlaysiz.

Git juda ko'p xususiyatlarga ega. Siz Git-ning barcha buyruqlarini hech qachon o'rgana olmaysiz, lekin nima uchun bu dasturiy ta'minot aloqasi va hamkorlikda asosiy omil ekanligini aniq tushunasiz. Agar siz DevOps jamoasida ishlayotgan bo'lsangiz, Git-ni to'liq bilish juda muhimdir.

Agar siz tizim ma'muri bo'lsangiz, unda siz Git-ni yaxshiroq o'rganishingiz, versiya boshqaruvi qanday qurilganligini tushunishingiz va umumiy buyruqlarni eslab qolishingiz kerak: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff va boshqalar. Ushbu mavzuni noldan o'rganishga va muayyan ko'nikmalarga ega bo'lgan professional bo'lishga yordam beradigan ko'plab onlayn kurslar va kitoblar mavjud. Ajoyiblar ham bor Git buyruqlari bilan cheat varaqlari, shuning uchun hammasini tiqishingiz shart emas, lekin Git-dan qanchalik ko'p foydalansangiz, shunchalik oson bo'ladi.

xulosa

Oxir-oqibat, siz DevOps mutaxassisi bo'lishingiz kerakmi yoki tizim ma'muri bo'lib qolish yaxshiroqmi, qaror qilasiz. Ko'rib turganingizdek, o'tishni amalga oshirish uchun o'rganish egri chizig'i bor, lekin siz qanchalik tezroq boshlasangiz, shuncha yaxshi bo'ladi. Dasturlash tilini tanlang va bir vaqtning o'zida kabi vositalarni o'rganing borib (versiya nazorati), Jenkins (CI/CD, uzluksiz integratsiya) va E'tirof etiladi (konfiguratsiya va avtomatlashtirish). Qaysi variantni tanlasangiz ham, doimo o'rganishingiz va malakangizni oshirishingiz kerakligini unutmang.

Manba: www.habr.com

a Izoh qo'shish