Nima uchun tizim ma'murlari, ishlab chiquvchilari va testerlari DevOps amaliyotlarini o'rganishlari kerak?

Nima uchun tizim ma'murlari, ishlab chiquvchilari va testerlari DevOps amaliyotlarini o'rganishlari kerak?

Ushbu bilim bilan qaerga borish kerak, loyihada nima qilish kerak va qancha pul ishlash kerak, suhbatda nima deyish va so'rash kerak - deydi Aleksandr Titov, Express 42 boshqaruvchi hamkori va muallif "DevOps amaliyotlari va vositalari" onlayn kursi.

Salom! DevOps atamasi 2009 yildan beri mavjud bo'lsa-da, rus hamjamiyatida haligacha konsensus mavjud emas. Ehtimol, siz ba'zilar DevOpsni ixtisoslik, boshqalari uni falsafa, boshqalari esa texnologiyalar to'plami deb hisoblashlarini payqagandirsiz. Men bilan ko'p marta chiqish qilganman ma'ruzalar ushbu yo'nalishning rivojlanishi haqida, shuning uchun men ushbu maqolada batafsil ma'lumot bermayman. Aytmoqchimanki, Express 42-da biz unga quyidagilarni kiritamiz:

DevOps - bu o'ziga xos metodologiya, raqamli mahsulotni yaratish madaniyati, bunda jamoadagi barcha mutaxassislar ishlab chiqarishda ishtirok etadilar.

Klassik korporativ rivojlanishda hamma narsa ketma-ket ketadi: dasturlash, sinovdan o'tkazish va shundan keyingina ishlash va bu jarayonning g'oyadan ishlab chiqarishgacha bo'lgan tezligi 3 oyni tashkil qiladi. Bu raqamli mahsulotlar uchun global muammo, chunki mijozlardan tezda fikr-mulohazalarni qabul qilib bo'lmaydi.

DevOps-da asboblar va yondashuvlar ishlab chiqish, sinov va operatsion jarayonlar bir vaqtning o'zida ishlashini ta'minlash uchun mo'ljallangan.

Ushbu yondashuvdan nima kelib chiqadi?

  • Siz kelib, ishlab chiqarish bilan bog'liq barcha muammolarni hal qiladigan ba'zi bir "muhandis" ni yollay olmaysiz. Butun jamoa texnikani qo'llashi kerak.

    Nima uchun tizim ma'murlari, ishlab chiquvchilari va testerlari DevOps amaliyotlarini o'rganishlari kerak?

  • DevOps yangilanadigan tizim boshqaruvchisining keyingi shakli EMAS. "DevOps muhandisi" "Agile dasturchi" bilan bir xil eshitiladi.

    Nima uchun tizim ma'murlari, ishlab chiquvchilari va testerlari DevOps amaliyotlarini o'rganishlari kerak?

  • Agar jamoa Kubernetes, Ansible, Prometey, Mesosphere va Docker-dan foydalansa, bu DevOps amaliyotlari u erda amalga oshirilgan degani emas.

    Nima uchun tizim ma'murlari, ishlab chiquvchilari va testerlari DevOps amaliyotlarini o'rganishlari kerak?

DevOps-dan keyingi hayot hech qachon bir xil bo'lmaydi

DevOps yondashuvi, birinchi navbatda, boshqacha fikrlash tarzi, rivojlanishni bir butun sifatida idrok etish va bu jarayonda shaxsning o'rni. Biz onlayn kursimizni 2 blokga ajratdik:

1. O'z taqdirini o'zi belgilash

Birinchidan, biz DevOps yondashuvining mohiyatini batafsil ko'rib chiqamiz va talabalar jamoada yangi rollarni kashf etadilar, qaysi biri ko'proq javob berishini ko'radilar va qaysi yo'nalishni rivojlantirishni o'zlari belgilaydilar.

2. Asboblar va amaliyotlar

Talabalar muayyan texnologiyalarni DevOps usuli nuqtai nazaridan o'zlashtiradilar.

DevOps vositalaridan DevOps yondashuvida ham, klassik ishlab chiqishda ham foydalanish mumkin. Eng aniq misol Ansible konfiguratsiyani boshqarish vositasidan foydalanish bo'ladi. U DevOpsning "Infratuzilma kod sifatida" amaliyotini amalga oshirish uchun yaratilgan va ishlab chiqilgan, ya'ni tizimning turli holatlari, operatsion tizim sozlamalaridan tortib amaliy dasturiy ta'minotgacha tasvirlangan. Tavsif qatlamlarga bo'lingan va murakkab, doimiy o'zgaruvchan konfiguratsiyani boshqarish imkonini beradi. Ammo muhandislar ko'pincha Ansible-dan bash skriptlarini bir nechta mashinalarda ishlatish usuli sifatida foydalanadilar. Bu yomon ham, yaxshi ham emas, lekin siz Ansible-ning mavjudligi DevOps-ning kompaniyada mavjudligini kafolatlamasligini tushunishingiz kerak.

Biz jarayondamiz kursi Siz mashhur Reddit-ga o'xshash dasturni ishlab chiqish jarayonida, uning monolit versiyasidan boshlab, mikroservislarga bosqichma-bosqich o'tish jarayoniga tushib qolasiz. Biz asta-sekin yangi vositalarni o'zlashtiramiz: Git, Ansible, Gitlab va Kubernetes va Prometey bilan yakunlaymiz.

Amaliyotlar nuqtai nazaridan, biz DevOps qo'llanmasida tasvirlangan uchta yo'lning taktikasiga amal qilamiz - uzluksiz etkazib berish amaliyoti, fikr-mulohaza yuritish amaliyoti va butun kursning mohiyati tizimingiz bilan birga uzluksiz o'rganish amaliyotidir.

Bu bilim har bir mutaxassisga nima beradi?

Tizim administratorlari uchun

Amaliyotlar sizga ma'muriyatdan uzoqlashishga, uzluksiz yetkazib berish quvuri va dasturiy ta'minotni yetkazib berish uchun infratuzilma platformasini yaratishga imkon beradi. Gap shundaki, u mahsulot – ishlab chiquvchilar uchun oβ€˜z oβ€˜zgarishlarini ishlab chiqarishga tez surishga yordam beruvchi infratuzilma platformasini yaratadi.

Ilgari tizim ma'murlari oxirgi tayanch bo'lib, shundan keyin hamma narsa ishlab chiqarishga o'tadi. Va asosan ular uzluksiz yong'inni o'chirish bilan shug'ullangan - buning natijasida biznes ehtiyojlarini o'rganish, mahsulot va foydalanuvchi uchun foyda haqida o'ylash juda qiyin.
DevOps usuli tufayli fikrlash o'zgaradi. Tizim ma'muri konfiguratsiyani kodga qanday tarjima qilishni, buning uchun qanday amaliyotlar mavjudligini tushunadi.

Bu juda muhim, chunki kompaniyalar faqat hamma narsani avtomatlashtirishga hojat yo'qligini tobora ko'proq tushunishmoqda, ya'ni. Eski maktab tizimi ma'murlari asosan nima qilishga odatlangan edi, ular bu bilan kam muloqot qildilar va barcha o'zgarishlar haqida jamoani xabardor qilmadilar. Endi jamoalar ichki infratuzilma mahsulotini ishlab chiqaruvchiga aylanadigan va ajratilgan jarayonlarni birlashtirishga yordam beradiganlarni qidirmoqda.

Ishlab chiquvchilar uchun

Ishlab chiquvchi faqat algoritmlarda o'ylashni to'xtatadi. U infratuzilma bilan ishlash ko'nikmalarini, landshaftni me'moriy bilish mahoratini egallaydi. Bunday ishlab chiquvchi dastur qanday ishlashini, uzluksiz etkazib berish quvuridan qanday o'tishini, uni qanday kuzatishni, mijozga foyda keltirishi uchun uni qanday ro'yxatdan o'tkazishni tushunadi. Natijada, bu bilimlarning barchasi sizga tegishli kodni yozish imkonini beradi.

Sinovchilar uchun

Sinov uzoq vaqtdan beri avtomatik rejimga o'tmoqda; biz hammamiz aytamizki, ko'p sinovlar o'tkazilmasligi kerak, lekin yozma :) Sinov mahsulotingizni etkazib berishning bir qismiga aylanadi. Sinovchi nafaqat kod yozishni o'rganishi, balki uni uzluksiz etkazib berish tizimlariga qanday integratsiya qilishni, etkazib berishning barcha bosqichlarida koddan qanday fikr-mulohazalarni olishni va xatolarni aniqlash uchun testni doimiy ravishda takomillashtirishni tushunishi kerak. imkon qadar erta.

Shunday qilib, shunday bo'ladi barcha uch bosqich bir vaqtning o'zida sodir bo'ladi. Masalan, u quyidagicha ko'rinishi mumkin:

Ishlab chiquvchi kodni yozadi, u uchun testlarni darhol yozadi va ishga tushirilishi kerak bo'lgan kod uchun docker konteynerini tavsiflaydi. Shuningdek, u darhol ishlab chiqarishda ushbu xizmatning ishlashini nazorat qiladigan monitoringni tavsiflaydi va bularning barchasini o'z zimmasiga oladi.

Uzluksiz integratsiya boshlanganda jarayonlar bir vaqtning o'zida ishlaydi. Xizmat ishga tushadi va sozlangan. Shu bilan birga, docker konteyneri ishga tushadi va u ishlayotganligi tekshiriladi. Shu bilan birga, barcha ma'lumotlar jurnallar tizimiga o'tadi. Va shunga o'xshash rivojlanishning har bir bosqichida - bu tizim ma'murlari, ishlab chiquvchilar va testerlarning haqiqiy jamoaviy ishi bo'lib chiqadi.

Men DevOps-ni o'rgandim, keyin nima bo'ladi?

Ma'lumki, daladagi biri jangchi emas. Agar sizning kompaniyangiz ushbu usuldan foydalanmasa, olingan ko'nikmalar bo'sh yotadi. Va DevOps yondashuvlari bilan tanishganingizdan so'ng, siz korporativ rivojlanishda tishli bo'lishni xohlamaysiz. Bitta istisno bo'lishi mumkin: siz jamoada tizim ma'murisiz va barcha jarayonlarni yangi usulda qayta tiklashingiz mumkin. Shuni qo'shimcha qilish kerakki, ushbu yondashuvdan foydalanadigan ko'plab kompaniyalar bor va ular blokirovkadan ta'sirlanmaydi va mutaxassislarni qidirmoqda. Chunki DevOps onlayn mahsulotlarni yaratish bilan bog'liq.

Va endi yaxshi narsalar haqida: DevOps amaliyotlari va vositalarini o'zlashtirish mehnat bozoridagi qiymatingizga taxminan +30% ni tashkil qiladi. Ish haqi 140 ming rubldan boshlanadi, lekin tabiiyki, sizning asosiy mutaxassisligingiz va funksionalligingiz bilan belgilanadi.

Siz "infratuzilmaga yo'naltirilgan" deb belgilangan vakansiyalarni ko'rishingiz mumkin, bu erda sinovlarni avtomatlashtirish, bulutli texnologiyalardan foydalangan holda mikroservis ilovalarini ishlab chiqish, infratuzilma muhandislari uchun bo'sh ish o'rinlari va DevOps-ga barcha turdagi havolalar mavjud. Shuni esda tutingki, har bir kompaniya ushbu ta'rif bilan boshqacha narsani anglatadi - tavsifni diqqat bilan o'qing.

Kursimizni boshlash paytida menga shunday bir tushuncha keldi - kursdan keyin ko'p odamlar DevOps muhandisining tuzog'iga tushib qolishdi. Ular yuqorida aytib o'tilgan nomga ega bo'sh ish o'rinlarini topadilar, yaxshi taklif oladilar va keyin ishga kirishadilar va Jenkinsda uch sahifali bash skriptini saqlab qolishlari kerakligini tushunadilar. Kubernetes, ChatOps, kanareykalar va boshqalar qayerda? Ammo hech narsa yo'q, chunki kompaniyaga metodologiya sifatida DevOps kerak emas, balki individual innovatsiyalardan foydalanadi.

Bu kompaniyadan dasturiy ta'minotni etkazib berish jarayoni qanday ishlashini, texnologiya to'plamini va qanday mas'uliyatni bajarishingizni intensiv ravishda bilib olish uchun sababdir.

Agar ish beruvchi sizning savollaringizga mavhum tarzda, xuddi kitobdagidek, tafsilotlarsiz javob bersa, unda kompaniyada DevOps jarayoni hali mavjud emas, ammo bu rad etish, kompaniya va uning mahsulotlarini o'rganish uchun sabab emas. kompaniya o'zi ishlab chiqadigan xizmatlar, mobil ilovalar , mahsulot g'oyalari.

Ha bo'lsa, unda siz ushbu tizimlar bilan bevosita ishlashingiz kerakmi yoki DevOps amaliyotlarida yaxshi natijalarni ko'rsatgan holda ushbu xizmatlar guruhlariga gorizontal harakatlanish imkoniyati bor-yo'qligini aniqlang. Agar shunday bo'lsa, unda faol va foydali bo'lishga arziydi va agar siz bizning kursimizni tugatsangiz, ikkinchisi kafolatlanadi.

Shuni ta'kidlash kerakki, Devops amaliyotchilari faqat ishlab chiqish/ma'muriyat/sinov tajribasi bilan haqiqiy qiymatga ega bo'lishadi. Shundagina bilim mavhum emas, balki mutaxassisni boyitadi (har ma'noda). Shuning uchun, "DevOps-ni noldan o'rganish" g'oyasi, agar siz hech qachon qo'lingizda kamera ushlamagan yoki suratga olishni boshqarmagan bo'lsangiz, "linzalarni noldan foydalanishni" o'rganish bilan bir xil. Kurs siz uchun to'g'ri yoki yo'qligini aniqlashga yordam berish uchun biz sizning etarli bilim darajangizni tekshiradigan kirish testini o'tkazdik.

Menimcha, hiylalardan biri kursi β€” ta’lim jarayonida har bir talaba qaysi yoβ€˜nalishda rivojlanishni xohlashini oβ€˜zi belgilaydi. Biz ko'pincha dasturchi infratuzilma muhandisi bo'lganida o'tishlarni ko'ramiz va ma'mur kod yozishga qiziqishini tushunadi - keyin u tilni qo'shimcha o'rganadi va uni DevOps orttirilgan ko'nikmalari bilan to'ldiradi. Shuning uchun biz, ayniqsa, o'z karerasi chorrahada qolib ketganini his qilganlarni qutlaymiz. Kurs 28-mayda boshlanadi, lekin siz darslar boshlanganidan 2 hafta oβ€˜tgach qoβ€˜shilishingiz mumkin. Siz dasturni ko'rishingiz va testdan o'tishingiz mumkin aloqa. OTUSda ko'rishguncha!

Manba: www.habr.com

a Izoh qo'shish