2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari

Eng yaxshi DevOps vositalaridan bugun foydalanishni boshlang!

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
DevOps inqilobi nihoyat butun dunyoni egallab oldi va DevOps vositalari nihoyatda mashhur bo'ldi. Xizmatga ko'ra Google tendentsiyalari, "DevOps vositalari" uchun so'rovlar soni doimiy ravishda o'sib bormoqda va bu tendentsiya davom etmoqda.

DevOps metodologiyasi dasturiy ta'minotni ishlab chiqishning butun hayotiy tsiklini qamrab oladi, shuning uchun mutaxassislar turli vositalardan tanlashlari mumkin. Lekin, siz bilganingizdek, hech qanday vosita hamma uchun universal vositaga aylana olmaydi. Biroq, ba'zi echimlar deyarli har qanday vazifani bajara oladigan juda keng funktsiyalarni taklif qiladi.

Keling, DevOps vositalarini toifalarga ajratamiz va ularni analoglari bilan solishtiramiz:

  • asboblarni ishlab chiqish va qurish
  • sinov avtomatlashtirish vositalari
  • joylashtirishni tashkil qilish vositalari
  • Ish vaqti vositalari
  • hamkorlik vositalari.

Muvaffaqiyatli va puxta o'ylangan amalga oshirish DevOps amaliyotchisi yuqorida sanab o'tilgan barcha besh guruhdan asboblarni o'z ichiga oladi. CI/CD quvurining muhim elementini o'tkazib yubormaslik uchun loyihangizdagi mavjud vositalar to'plamini tahlil qiling.

Ishlab chiqish va qurish vositalari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Bu CI/CD quvur liniyasi to'plamining asosidir. Hammasi shu erda boshlanadi! Ushbu turkumdagi eng yaxshi vositalar bir nechta voqealar oqimini boshqarishi va boshqa mahsulotlar bilan osongina integratsiyalashishi mumkin.

Rivojlanish hayotiy tsiklining ushbu bosqichida uchta vositalar guruhi mavjud:

  • versiyani boshqarish tizimi (SCM)
  • uzluksiz integratsiya (CI)
  • Ma'lumotlarni boshqarish

GIT 2020 yilda ijobiy natijalarga erishdi, shuning uchun SCM vositangiz GIT uchun uzluksiz yordamga ega bo'lishi kerak. CI uchun zaruriy shart izolyatsiyalangan konteyner muhitida tuzilmalarni bajarish va ishga tushirish qobiliyatidir. Ma'lumotlarni boshqarish haqida gap ketganda, u ma'lumotlar bazasi sxemasiga o'zgartirishlar kiritish va ma'lumotlar bazasini dastur versiyasiga muvofiq saqlash qobiliyatini talab qiladi.

SCM + CI vositasi №1

G'olib: GitLab va GitLab-CI

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
2020-yilgi DevOps tsiklining eng yaxshi vositasi shubhasiz GitLab bo'lib, u yaqin kelajakda innovatsiyalarni boshqarishda davom etadi.

GitLab ning asosiy vazifasi Git omborini qulay boshqarishni ta'minlashdan iborat. Veb-interfeys intuitiv va ulardan foydalanish oson. GitLab sizga kerak bo'lgan hamma narsani bepul versiyada taqdim etadi va SaaS va mahalliy sifatida taqdim etiladi (dasturiy ta'minotni joylashtirish uchun o'z resurslaringizdan foydalaning).

Hech qanday boshqa SCM vositasi sizning omboringizda to'g'ridan-to'g'ri uzluksiz integratsiyani (CI) ishlatmagan va GitLab buni uzoq vaqtdan beri qilmoqda. GitLab-CI dan foydalanish uchun siz manba kodingiz ildiziga .gitlab-ci.yml faylini qo'shishingiz kerak va loyihadagi har qanday o'zgarishlar aynan siz ko'rsatgan narsaga asoslangan harakatlarni boshlaydi. GitLab va GitLab-CI uzluksiz integratsiya (CI-as-code) sohasida yetakchilar sifatida munosib tan olingan.

Asosiy afzalliklari

  • Ishonchlilik - mahsulot bozorda 2013 yildan beri mavjud; barqaror; yaxshi qo'llab-quvvatlanadi.
  • Ochiq manba - GitLab-ning bepul versiyasi ishlab chiqish guruhlari uchun zarur bo'lgan asosiy funktsiyalarni cheklamaydi. Pullik xizmat paketlari har xil o'lchamdagi va ehtiyojdagi kompaniyalar uchun qo'shimcha foydali xususiyatlarni taqdim etadi.
  • O'rnatilgan CI - Bozordagi boshqa hech qanday vosita GitLab-CI kabi to'g'ridan-to'g'ri SCMga uzluksiz integratsiyani yaratmagan. Docker-dan foydalanish muammosiz izolyatsiyalangan tuzilmalarni ta'minlaydi va o'rnatilgan hisobotlar nosozliklarni tuzatishni osonlashtiradi. Biz bir vaqtning o'zida bir nechta vositalarni murakkab integratsiya va boshqarishni talab qilmaymiz.
  • Cheksiz integratsiya - GitLab sizga kerak bo'lgan barcha DevOps vositalarini oson integratsiyalashuvini ta'minlaydi. Bu ishlab chiqish va texnik xizmat ko'rsatish guruhlari har qanday muhitda qo'llanilishi haqida yagona ma'lumot manbasiga ega bo'lishini ta'minlaydi.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Ushbu turkumda boshqa mashhur vositalar mavjud, ammo ular GitLab kabi yaxshi emas. Va shuning uchun:

GitHub — Bu kichik kompaniyalar va rivojlanishning dastlabki bosqichlari uchun ajoyib SaaS versiyasini boshqarish tizimi. IP manzillarini o'z tarmog'ida saqlash muhim bo'lgan yirik kompaniyalar uchun GitHub-dan yagona yechim yuqori darajadagi tizimlarni qo'llab-quvvatlamaydigan .OVA virtual mashinasi edi. Bu korxonada texnik xizmat ko'rsatishni qiyinlashtiradi, bundan tashqari, .OVA faqat o'rta biznes uchun mos keladi, aks holda server katta yuk ostida ishdan chiqadi. GitHub Actions (yaqingacha va hali mahalliy versiyada emas) yoki CI-as-code yo'qligi alohida CI vositasini tanlashingiz va keyin ushbu integratsiyani boshqarishingiz kerakligini anglatadi. Va nihoyat, GitHub GitLab ning har ikkala versiyasiga qaraganda ancha qimmat.

Jenkins — Jenkins sukut bo'yicha uzluksiz integratsiya vositalari orasida standart hisoblansa-da, u har doim versiyani boshqarish qobiliyatiga ega emas edi. Ma'lum bo'lishicha, siz Jenkins plus qandaydir SCM vositasidan foydalanasiz. GitLab ikkalasini ham qila olsa, bu juda qiyin. O'rtacha UX dizayni zamonaviy veb-ilova uchun mos emas va ko'p narsani xohlaydi.

BitBucket/Bambuk — Men uni avtomatik yutqazuvchi sifatida tan olishim kerak: nega GitLab hamma narsani mustaqil ravishda bajaradigan ikkita vosita. BitBucket Cloud GitLab-CI / GitHub Action funksiyasini qo‘llab-quvvatlaydi, biroq startapdan kattaroq kompaniya uni osonlikcha amalga oshira olmaydi. Mahalliy BitBucket serveri BitBucket quvurlarini ham qo'llab-quvvatlamaydi!

№1 Ma'lumotlarni boshqarish vositasi

G'olib: FlywayDB

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Veb-ilovalarni ishlab chiqishda ma'lumotlar bazasini avtomatlashtirishga odatda ahamiyat berilmaydi. Ilovaning yangi versiyalari uchun ma'lumotlar bazasi sxemasiga o'zgartirishlar kiritish g'oyasi kech keladi. Sxema o'zgarishi ko'pincha ustunlar yoki jadvallar qo'shilishi va nomini o'zgartirishga olib keladi. Agar ilova versiyasi sxema versiyasiga mos kelmasa, dastur ishdan chiqishi mumkin. Bundan tashqari, dasturni yangilashda ma'lumotlar bazasi o'zgarishlarini boshqarish qiyin bo'lishi mumkin, chunki ikki xil tizim mavjud. FlyWayDB bu muammolarni hal qiladi.

Asosiy afzalliklari

  • Ma'lumotlar bazasi versiyalarini yaratish - Flyway sizga ma'lumotlar bazasi versiyalarini yaratish, ma'lumotlar bazasi migratsiyasini kuzatish va buning uchun qo'shimcha vositasiz sxema o'zgarishlarini osongina uzatish yoki qaytarish imkonini beradi.
  • Ikkilik yoki o'rnatilgan - Flyway-ni dasturning bir qismi sifatida yoki ikkilik bajariladigan fayl sifatida ishlatishni tanlashimiz mumkin. Flyway ishga tushganda versiya mosligini tekshiradi va ma'lumotlar bazasi va dastur versiyalarini sinxronlashtirib, tegishli migratsiyalarni boshlaydi. Cmd line ad-hoc buyrug'ini ishga tushirish orqali biz butun dasturni qayta qurmasdan mavjud ma'lumotlar bazalariga moslashuvchanlikni ta'minlaymiz.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Bu sohada juda ko'p vositalar mavjud emas. Keling, ulardan ba'zilarini ko'rib chiqaylik:

LiquiBase — Liquibase FlywayDB ga o'xshaydi. Agar mening jamoamda Liquibase bilan ko'proq tajribaga ega bo'lgan odam bo'lsa, men uni Flyway tepasiga o'rnatmoqchiman.

Flocker - Faqat konteynerli ilovalar uchun ishlashi mumkin. Konteynerlashtirilgan ma'lumotlar bazalarini muvaffaqiyatli ishlatish uchun hamma narsa mukammal tarzda rejalashtirilgan bo'lishi kerak. Men ma'lumotlar bazalari uchun RDS (Relational Database Service) dan foydalanishni tavsiya qilaman va muhim ma'lumotlarni konteynerda saqlashni maslahat bermayman.

Sinovni avtomatlashtirish vositalari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Keling, sinovlarni avtomatlashtirish vositalarini sinov piramidasi asosida tasniflashdan boshlaylik.

Sinov piramidasi (testlar) 4 darajadan iborat:

  • Birlik testlari - Bu butun avtomatlashtirilgan sinov jarayonining asosidir. Boshqa turdagi testlarga nisbatan ko'proq birlik testlari bo'lishi kerak. Dasturchilar dasturning bir qismi ("birlik" deb nomlanuvchi) uning dizayniga mos kelishini va kutilganidek harakat qilishini ta'minlash uchun birlik testlarini yozadilar va bajaradilar.
  • Komponent testlari - Komponentlarni sinovdan o'tkazishning asosiy maqsadi sinov ob'ektining kirish / chiqish harakatini tekshirishdir. Biz sinov ob'ektining funksionalligi spetsifikatsiyaga muvofiq to'g'ri amalga oshirilishini ta'minlashimiz kerak.
  • Integratsiya testlari - individual dasturiy modullar birlashtirilgan va guruh sifatida sinovdan o'tkaziladigan test turi.
  • End-to-end testlar - bu bosqich o'z-o'zidan tushunarli. Biz butun dasturni kuzatib boramiz va uning rejalashtirilganidek ishlashiga ishonch hosil qilamiz.

Birlik testlari va komponentlar sinovi faqat ishlab chiquvchilar tomonidan amalga oshiriladi va ko'pincha dasturlash tiliga xos bo'lganligi sababli, biz DevOps domeni uchun bu vositalarni baholamaymiz.

№1 Integratsiya test vositasi

G'olib: Bodring

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Bodring texnik xususiyatlar va sinov hujjatlarini bitta tirik hujjatga birlashtiradi. Texnik xususiyatlar har doim yangilanadi, chunki ular Bodring tomonidan avtomatik ravishda sinovdan o'tkaziladi. Agar siz noldan avtomatlashtirilgan sinov tizimini yaratmoqchi bo'lsangiz va veb-ilovada foydalanuvchi xatti-harakatlarini modellashtirmoqchi bo'lsangiz, Java va Cucumber BDD-ga ega Selenium WebDriver - bu bodringni loyihada o'rganish va amalga oshirishning ajoyib usuli.

Asosiy afzalliklari

  • BDD yondashuvi (Xulq-atvorga asoslangan rivojlanish - "sinov asosidagi rivojlanish" yondashuvidan farqli ravishda "xulq-atvor orqali rivojlanish") - Bodring BDD testi uchun mo'ljallangan, u dastlab aynan shu vazifa uchun yaratilgan.
  • Jonli hujjatlar - Hujjatlar har doim og'riqdir! Sinovlaringiz kod sifatida yozilganligi sababli, Cucumber testlar va hujjatlar sinxronlanganligiga ishonch hosil qilish uchun avtomatik ravishda yaratilgan hujjatlarni sinovdan o'tkazadi.
  • Yordam - Biz ko'plab vositalardan birini tanlashimiz mumkin, ammo bodring foydalanuvchilarga har qanday qiyin vaziyatda yordam berish uchun zarur moliyaviy resurslarga va yaxshi tashkil etilgan qo'llab-quvvatlash tizimiga ega.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Boshqa ramkalar va texnologiyaga xos vositalar orasida faqat bodringni universal echim deb hisoblash mumkin.

End-to-end sinov vositalari

Yakuniy testlarni o'tkazishda siz ikkita asosiy nuqtaga e'tibor qaratishingiz kerak:

  • funktsional test
  • Stress testi.

Funktsional testda biz xohlagan hamma narsa haqiqatda sodir bo'ladimi yoki yo'qligini tekshiramiz. Misol uchun, men SPA (bir sahifali ilova) ning ayrim elementlarini bosganimda, shakllarni to'ldirganimda va "Yuborish" ni tanlaganimda, ma'lumotlar bazasida ma'lumotlar paydo bo'ladi va ekranda "Muvaffaqiyatli!" xabari paydo bo'ladi.

Xuddi shu stsenariyda ishlaydigan foydalanuvchilarning ma'lum soni xatosiz qayta ishlanishi mumkinligini tekshirish biz uchun ham muhimdir.

Ushbu 2 turdagi sinovning yo'qligi sizning CI/CD quvuringizdagi muhim kamchilik bo'ladi.

№1 sinov vositasi. Funktsional test

G'olib: SoapUI Pro

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
SOAP-ga asoslangan veb-xizmatlar standart bo'lganidan beri SoapUI uzoq vaqt davomida API sinov maydonida bo'lgan. Biz endi yangi SOAP xizmatlarini yaratmasak ham va asbobning nomi o'zgarmagan bo'lsa-da, bu uning rivojlanmaganligini anglatmaydi. SoapUI avtomatlashtirilgan backend funktsional testlarini yaratish uchun ajoyib asosni taqdim etadi. Sinovlar uzluksiz integratsiya vositalari bilan osongina birlashtirilishi va CI/CD quvurining bir qismi sifatida ishlatilishi mumkin.

Asosiy afzalliklari

  • Batafsil hujjatlar - SoapUI bozorda anchadan beri mavjud, shuning uchun testlarni qanday o'rnatishni tushunishga yordam beradigan ko'plab onlayn resurslar mavjud.
  • Foydalanish qulayligi - Garchi ushbu vosita API-larni sinab ko'rish uchun bir nechta protokollarni qo'llab-quvvatlasa-da, SoapUI-ning bir nechta xizmatlar uchun umumiy interfeysi mavjudligi testlarni yozishni osonlashtiradi.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Selen bu guruhdagi yana bir ajoyib vosita. Agar siz Java asosidagi dasturni yaratayotgan va ishlayotgan bo'lsangiz, undan foydalanishni tavsiya etaman. Biroq, agar siz bir nechta texnologiyalar bilan to'liq veb-ilovani yaratayotgan bo'lsangiz, u Java bo'lmagan komponentlar uchun noqulay bo'lishi mumkin.

№1 sinov vositasi. Stress testi

G'olib: LoadRunner

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Izoh: Ilovangizning har bir elementini sinovdan o'tkazish vaqti kelganda, faqat LoadRunner vazifani bajarishi mumkin. Ha, bu birinchi navbatda qimmat va qiyin, lekin LoadRunner texnik me'mor sifatida menga yangi kod haddan tashqari yuk sharoitida ishlashiga to'liq ishonch beradigan yagona vositadir. Bundan tashqari, menimcha, LoadRunnerni sinov guruhlari emas, balki ishlab chiqish guruhlari qabul qilish vaqti keldi.

Asosiy afzalliklari

  • Keng qamrovli hujjatlar - LoadRunner bozorda ancha vaqtdan beri mavjud, shuning uchun yuk testlarini qanday o'rnatishni tushunishga yordam beradigan ko'plab onlayn resurslar mavjud.
  • Protokolni qo'llab-quvvatlash - Load Runner ODBC dan AJAX, HTTPS va ilovangiz foydalanishi mumkin bo'lgan boshqa ahamiyatsiz protokollargacha bo'lgan hamma narsani qo'llab-quvvatlaydi. Biz yukni sinash uchun bir nechta vositalardan foydalanmaslikka harakat qilamiz, chunki bu jarayonni murakkablashtiradi.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Shunga qaramay, bu sohada juda ko'p universal vositalar mavjud emas, shuning uchun eng yaxshi yechim har qanday texnologiya bilan har qanday muhitda ishlaydi.

Joylashtirish vositalari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Joylashtirish vositalari, ehtimol, rivojlanishning eng kam tushunilgan tomonidir. Ilovaning kodi va funksionalligini chuqur tushunmagan operatsion guruh uchun bunday vositalardan foydalanish qiyin. Ishlab chiquvchilar uchun joylashtirishni boshqarish yangi mas'uliyatdir, shuning uchun ular hali bunday vositalar bilan ishlash tajribasiga ega emaslar.

Avvalo, barcha joylashtirish vositalarini uchta kichik toifaga ajratamiz:

  • artefaktni boshqarish
  • konfiguratsiyani boshqarish
  • joylashtirish.

№1 Artefaktni boshqarish vositasi

G'olib: Nexus

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Nexus artefakt ombori Java dan NPM dan Dockergacha bo'lgan deyarli barcha asosiy texnologiyalarni qo'llab-quvvatlaydi. Biz foydalanadigan barcha artefaktlarni saqlash uchun ushbu vositadan foydalanishimiz mumkin. Masofaviy paket menejerlarini proksi-xizmat qilish, shuningdek, CI qurish jarayonini sezilarli darajada tezlashtiradi va paketlarni qurish uchun qulayroq qiladi. Yana bir afzallik - bir nechta dasturiy ta'minot loyihalarida qo'llaniladigan barcha paketlarni to'liq ko'rish qobiliyati, xavfli ochiq manba paketlarini blokirovka qilish (ular hujum vektori sifatida harakat qilishi mumkin).

Asosiy afzalliklari

  • Texnik yordam - Ishonchli mahsulot; yaxshi qo'llab-quvvatlanadi.
  • Ochiq manba - Bepul versiya ishlab chiqish guruhlari uchun zarur bo'lgan asosiy funktsiyalarni cheklamaydi.

№1 Konfiguratsiyani boshqarish vositasi

G'olib: E'tirof etiladi

Ansible bitta oddiy sababga ko'ra etakchi hisoblanadi: fuqaroligi yo'q. Ilgari shunga o'xshash vositalar konfiguratsiya holatini boshqarishga qaratilgan. Ishga tushganda, kerakli konfiguratsiyani olgan bunday vosita joriy dastur konfiguratsiyasini tuzatishga harakat qiladi. Va yangi yondashuv bilan faqat fuqaroligi bo'lmagan komponentlar mavjud. Kodning yangi versiyalari mavjudlarini almashtirish uchun joylashtirilgan artefaktlardir. Buni o'ziga xos vaqtinchalik, qisqa muddatli muhit deb hisoblash mumkin.

Asosiy afzalliklari

  • Fuqaroligi yo'q - Playbook o'rnatish mashinasidan ishga tushiriladi va maqsadli serverlarda bajariladi. O'rnatish mumkin bo'lgan ob'ektlarni yaratish uchun Packer kabi vositadan foydalanib, uzoqdagi ob'ektning holati haqida tashvishlanishga hojat yo'q.
  • Ochiq manba - CentOS singari, Ansible ham RedHat tomonidan qo'llab-quvvatlanadi. Bu jamiyatni saqlashga yordam beradi va yuqori sifatli, foydalanish uchun qulay modullarni taqdim etadi.
  • Molekula bilan sinov (ansible framework) - Konfiguratsiya boshqaruvi kod bo'lgani uchun, boshqa hamma narsa kabi, sinov ham muhim. Molecule's Ansible rol test tizimi konfiguratsiyaning bir xil sifatda bo'lishini va dastur kodi bilan bir xil CI/CD quvur liniyasiga amal qilishini ta'minlab, benuqson ishlaydi.
  • YAML - Boshqa vositalar bilan solishtirganda, YAML tushunish osonroq. Konfiguratsiyani boshqarish odatda DevOps amaliyotlarini qo'llaydiganlar uchun yangi muammo bo'lganligi sababli, soddalik uning ko'zidir.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

OpsCode chef — Men DevOps kareramni pazandachilik kitoblarini ishlab chiquvchi sifatida boshladim. Ruby va Chef, albatta, mening yuragim uchun juda qadrli, ammo ular zamonaviy fuqaroligi bo'lmagan, bulutli mahalliy ilovalarning muammolarini hal qilmaydi. OpsCode Chef - an'anaviy ilovalar uchun ajoyib vosita, ammo bu maqolada biz kelajakka e'tibor qaratamiz.

Qo'g'irchoq - Qo'g'irchoq hech qachon ko'p muxlislarga ega bo'lmagan, ayniqsa Chef va Ansible bilan solishtirganda. U jihozlarni tayyorlash va ular bilan ishlash uchun juda yaxshi, lekin u veb-ilova uchun zamonaviy konfiguratsiyani boshqarish yordamiga ega emas.

Joylashtirish vositasi №1

G'olib: Terraform

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Terraform sizning infratuzilmangizni tarmoq komponentlaridan tortib to to'liq server tasvirlarigacha kod sifatida tasvirlash muammosini hal qiladi. Ushbu mahsulot dastlabki chiqarilganidan beri uzoq yo'lni bosib o'tdi, juda ko'p plaginlar yaratilgan va shunday kuchli hamjamiyat yaratilganki, siz har qanday joylashtirish stsenariysida yordam olishingizga ishonchingiz komil bo'ladi. Har qanday turdagi muhitni qo'llab-quvvatlash qobiliyati (joy ichida, bulutda yoki boshqa joylarda) tengsizdir. Va nihoyat, so'nggi versiya HCL-da boshqa an'anaviy dasturlash tillari kabi bir xil mantiqiy funktsiyalar va sinflarni taqdim etadi, bu esa Terraformni ishlab chiquvchilar uchun tez va oson tushunishni osonlashtiradi.

Asosiy afzalliklari

  • Atrof-muhit agnostik - Terraform infratuzilma provayderi bilan bog'lanish uchun Terraform kodingiz, barcha API va ichki mantiq o'rtasida interfeys vazifasini o'taydigan funksiyalardan foydalanadi. Bu shuni anglatadiki, men faqat bitta vositani o'zlashtiraman va keyin istalgan joyda ishlay olaman.
  • Ochiq manba - Bepul vositalarni engish qiyin! Jamiyatni eng yuqori darajada qo'llab-quvvatlash.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

AWS Cloud Formation — Agar siz faqat AWS bulutli muhitda ishlasangiz ham, keyingi ishingiz boshqa vositadan foydalanishi mumkin. Butun vaqt va kuchingizni faqat bitta platformaga bag'ishlash uzoqni ko'rmaydigan qarordir. Bundan tashqari, ko'plab yangi AWS xizmatlari ko'pincha CloudFormation-da mavjud bo'lgunga qadar Terraform modullari sifatida mavjud.

Ish vaqti vositalari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari

Har qanday rivojlanish loyihasining yakuniy maqsadi dasturni ishlab chiqarishga kiritishdir. DevOps dunyosida biz atrof-muhit bilan bog'liq barcha mumkin bo'lgan muammolardan to'liq xabardor bo'lishni xohlaymiz, shuningdek, qo'lda aralashuvni minimallashtirishni xohlaymiz. Ish vaqti vositalarining to'g'ri to'plamini tanlash ilovalarni ishlab chiqish nirvanasiga erishish uchun juda muhimdir.

Ish vaqti vositalarining quyi toifalari:

  • X-as-a-xizmat (XaaS)
  • orkestratsiya
  • monitoring
  • ro'yxatga olish.

X-vositasi №1 xizmat sifatida

G'olib: Amazon veb-xizmatlari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Amazon har doim bulutli texnologiyalar bo‘yicha yetakchi bo‘lib kelgan, biroq bu bilan to‘xtab qolmaydi: ishlab chiquvchilar uchun turli xil yangi xizmatlar ko‘zni ochadi. AWS-ga har qanday texnologiya va shablonni keltiring va u quriladi va ishlaydi. Asbobning narxi juda o'rinli: uni o'zingizning ma'lumotlar markazingizda jihozlarni yig'ish, boshqarish va texnik xizmat ko'rsatish bilan solishtiring. Bepul versiya pul sarflashdan oldin tajriba qilish va to'g'ri qaror qabul qilish imkonini beradi.

Asosiy afzalliklari

  • Tarqalishi - AWSda ilovalar yaratish tajribangiz bo'lsa, istalgan joyda ishlashingiz mumkin. Korxonalar AWS-ni yaxshi ko'radilar va startaplar ham uning arzonligini qadrlashadi.
  • Bepul versiya AWSni tengdoshlaridan ajratib turadigan haqiqatan ham muhim omildir. Xarid qilish haqida qaror qabul qilishdan oldin xizmatni sinab ko'ray va u qanday ishlashini ko'rib chiqaman, keraksiz narsaga minglab dollar sarflashni xohlamayman. Har qanday kontseptsiyani sinab ko'rishim uchun bepul versiya har doim etarli.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

osmon “Azure birinchi chiqarilishidan beri uzoq yo'lni bosib o'tdi va bu maqtovga sazovor. Biroq, boshqacha bo'lish istagi xizmatlar uchun g'alati nomlarga olib keldi, bu ko'pincha ishni murakkablashtiradi. "Blob saqlash" nimani anglatadi? .NET kodi Microsoft ekotizimida yaxshiroq ishlashi bilan birga, ilovangizning har bir komponenti uchun faqat .NET dan foydalana olmasligingiz dargumon.

Heroku — Ishonchlilik va oshkoralik darajasi pastligi sababli men Heroku-da shaxsiy loyihadan boshqa hech narsani boshqarmagan bo'lardim, shuning uchun kompaniyalar uni platforma sifatida ishlatmasliklari kerak. Heroku blogda biror narsani namoyish qilish uchun juda yaxshi, ammo amaliy foydalanish uchun - "Yo'q, rahmat!"

№1 Orkestratsiya vositasi

G'olib: openshift

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Ehtimol, siz ilovalar to'plamida Docker yoki boshqa konteynerlardan foydalanayotgandirsiz. Serversiz ilovalar juda yaxshi, lekin ular har bir arxitekturaga mos kelmasligi mumkin. Orkestratsiya platformasisiz konteynerlarni ishga tushirish oddiygina ishlamaydi. Kubernetes Core (K8s) xavfsizlik va asboblar jihatidan tengsizdir. OpenShift - Kubernetes-ga asoslangan yagona platforma bo'lib, u Source2Image-ni to'playdi, podkastlarga avtomatlashtirilgan joylashtirishni qo'llab-quvvatlaydi va kuzatish va monitoringni qo'llab-quvvatlaydi. OpenShift bir vaqtning o'zida kompaniyada, bulutda yoki mahalliy va bulutda ishga tushirilishi mumkin.

Asosiy afzalliklari

  • O'rnatilgan xavfsizlik - K8s xavfsizligini boshqarish yuqori darajani talab qilishi mumkin. Har bir tafsilotni diqqat bilan o'ylash va hisobga olish kerak! OpenShift bilan sukut bo'yicha o'rnatilgan xavfsizlik mexanizmlari ishlab chiquvchilarning yukini olib tashlaydi va ilovalar uchun yanada xavfsizroq platformani ta'minlaydi.
  • Hammasi in-one yechim - sukut bo'yicha yuk balanslash vositalarini o'z ichiga olmaydi, asosiy K8s farqli o'laroq, OpenShift hammasi bor. Men undan konteynerlarni yaratish va joylashtirish, CI/CD vositalarini ishga tushirish, tashqi jarayonlarni boshqarish, kalitlarni boshqarish va boshqalar uchun foydalanishim mumkin. Grafik foydalanuvchi interfeysi hali mukammallikdan uzoq bo'lsa-da, APIga asoslangan yondashuv hamma narsani skriptda tasvirlash mumkinligini anglatadi. K8 uchun boshqa grafik interfeyslardan farqli o'laroq, OpenShift Kubernetes asoslarini o'rganishni ancha osonlashtiradi. Siz diplom olishingiz shart emas!

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Docker to'dasi - Docker Swarm ko'p narsalardan xalos bo'lish orqali K8-larni soddalashtirishga harakat qildi. Bu kichik ilovalar uchun juda yaxshi, lekin korporativ ilovalar uchun u ishlamaydi. Bundan tashqari, AWS ECS kabi yechimlar shunga o'xshash yondashuvni qo'llaydi, lekin men o'zaro aloqada bo'lishim mumkin bo'lgan boshqa xizmatlar bilan ishlashni osonlashtiradi (Lambda, IAM va boshqalar).

Monitoring vositasi №1

G'olib: Yangi qoldiq

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
New Relic-ning dastlabki relizlari bitta narsani yaxshi bajardi - APM (Ilova samaradorligi monitoringi) monitoringi. Endi bu server, konteyner, ma'lumotlar bazasi ishlashi, oxirgi foydalanuvchi tajribasi monitoringi va, albatta, dastur ish faoliyatini monitoring qilish imkonini beruvchi to'liq xususiyatli monitoring vositasi.

Asosiy afzalliklari

  • Foydalanish qulayligi - Tizim muhandisi bo'lib ishlaganimda, men ko'plab monitoring vositalaridan foydalanganman, lekin men hech qachon New Relic kabi oddiy va ishlatish uchun qulay bo'lganini uchratmaganman. Bu SaaS, shuning uchun uni o'zingiz o'rnatishingiz shart emas.
  • Yakuniy ko'rinish - Boshqa vositalar ilovangizning muayyan elementini kuzatishga harakat qiladi. Masalan, protsessordan foydalanish ko'rsatkichi yoki tarmoq trafigi, ammo dastur to'g'ri ishlashi uchun bularning barchasi har tomonlama kuzatilishi kerak. New Relic sizga nima bo'layotganini har tomonlama ko'rish uchun barcha ma'lumotlarni birlashtirish imkoniyatini beradi.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Zabbix — Mening birinchi va sevimli monitoring tizimim, lekin bulutli texnologiyalar va APM ilovalari ish faoliyatini monitoring qilish sohasida ishlamasligi tufayli u oʻtmishda qoldi. Zabbix hali ham an'anaviy server infratuzilmasi monitoringini yaxshi bajaradi, ammo bu haqida.

DataDog — Kodning o'ziga emas, balki dasturning ishlab chiqarish muhitini boshqarish jarayoniga juda ko'p e'tibor qaratildi. Ishlab chiquvchilarni o'z ichiga olgan DevOps jamoalari bilan biz yuqori darajadagi yordamni ta'minlash uchun foydalanish qiyin bo'lgan vositalarga ishonishimiz shart emas.

Ro'yxatga olish vositasi №1

G'olib: Splunk

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Splunk bilan raqobat qilish qiyin! Uzoq vaqt davomida u daraxt kesish bo'yicha etakchi bo'lib qolmoqda va buni boshqalardan ko'ra yaxshiroq qilishda davom etmoqda. On-prem va SaaS takliflari bilan siz Splunk-dan istalgan joyda foydalanishingiz mumkin. Katta salbiy tomoni uning narxi: Splunk hali ham juda qimmat!

Asosiy afzalliklari

  • Keng tarqalganlik - korxonalar Splunkni yaxshi ko'radilar va kompaniyalar uni sotib olish uchun pulga ega.
  • Garchi startaplar xarajatlarni qoplashga harakat qilsalar ham, ochiq manba analoglari tufayli ko'plab funktsiyalarni hal qilish mumkin.
  • Texnik xizmat ko'rsatish - Oddiy qilib aytganda, Splunk ishlaydi va buni yaxshi bajaradi. U ko'plab standart sozlamalar va foydalanishga tayyor xususiyatlar bilan birga keladi. Hujjatlarni o'qish va Splunkni ishga tushirishga yoki biror narsani ochishga vaqt sarflashning hojati yo'q.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

ELK Stack (ElasticSearch, LogStash va Kibana) "Ushbu vositalar sevimli bo'lib tuyuladi, chunki ulardan foydalanish uchun siz hatto jigaringizni sotishingiz shart emas." Biroq, jurnallar to'plami o'sib borishi va bortdagi ilovalar sonining ko'payishi bilan ish tobora qiyinlashadi. Splunk bilan solishtirganda, ELK Stack bilan men asboblar panelini yaratishdan oldin asboblarni sozlashga ko'proq vaqt sarfladim.

Hamkorlik vositalari

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
DevOps birinchi navbatda tashkilot ichidagi madaniyatni o'zgartirishga qaratilgan. Har qanday vositani sotib olish hozirgi amaliyotni bir kechada o'zgartirmaydi, lekin bu hamkorlikni va o'zaro ta'sir qilishning yangi usullarini rag'batlantirishi mumkin.

Hamkorlik vositalarining quyi toifalari:

  • vazifani kuzatish
  • ChatOps
  • hujjatlar.

№1 Muammoni kuzatish vositasi

G'olib: JIRA

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Jira o'zining etakchilik mavqeini saqlab qoladi, garchi bu sohada raqobat kuchayib bormoqda. Jira-ning ajoyib moslashuvchanligi ishlab chiqish va texnik xizmat ko'rsatish guruhlariga loyiha ishlarini va sprint vazifalarini boshqarishga imkon beradi. Agile terminologiyasidan foydalangan holda o'rnatilgan standartlar an'anaviy ishlash usullaridan samaraliroq jarayonlarga o'tishni osonlashtiradi.

Asosiy afzalliklari

  • Mashhurlik - boshqa ko'plab vositalar singari, Jira deyarli hamma joyda qo'llaniladi. Kichik jamoalar arzonroq, qulayroq versiyadan foydalanadilar va o'zlariga kerak bo'lgan hamma narsani oladilar, yirik kompaniyalar esa qimmatroq litsenziyani sotib olishlari mumkin.
  • Integratsiyalar - Jira o'z sohasida kashshof hisoblanadi. Bu haqiqat va mahsulotning jadal rivojlanishi boshqa kompaniyalar o'zlarining integratsiyalarini yaratish uchun Jira-ni tanlashlariga olib keladi va shu bilan asbobning qiymatini oshiradi. Jira-ni ushbu maqolada keltirilgan barcha vositalar bilan bir oz konfiguratsiya bilan birlashtira olamiz.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Trello — Trello bepul Kanban vositasi tufayli tezda mashhurlikka erishdi. Biroq, jarayonlar kengayib, o'nlab vazifalardan minglab vazifalarga o'tsangiz, Trelloda harakat qilish, qidirish va hisobot berish qiyinlashadi.

Pivot kuzatuvchisi — Men startapda ishlaganimda ushbu vositaning ashaddiy muxlisi edim. Biroq, Pivotal Tracker texnik vazifalardan ko'ra ko'proq mahsulotni boshqarishga qaratilgan. Jira-da mahsulotni boshqarish biroz murakkabroq bo'lsa-da, u erda qo'shimcha vositadan foydalanmasdan amalga oshirilishi mumkin.

ChatOps vositasi №1

G'olib: MatterMost

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Izoh: Ehtimol, mening tanlovimdagi siz uchun eng katta syurpriz va bu yaxshi yangilik! MatterMost oldingi vositalardan eng yaxshisini olib, lekin ularni ishga tushirish orqali mashhurlikka erishdi. Bu kompaniyalar uchun juda muhim: MatterMost sizga ma'lumotlaringizni boshqarish imkonini beradi va shuningdek, ularni mahalliy ishlaydigan vositalar bilan integratsiyalashga yordam beradi. Ish suhbatlarini tekshirish uchun endi xavfsizlik devoridan tashqariga chiqishimiz shart emas.

Asosiy afzalliklari

  • Ochiq manba - MatterMost-ning ochiq manba versiyasi o'rta va katta jamoalar uchun juda yaxshi ishlaydi. Xabarlar tarixini o'chirib tashlaydigan Slack-ning bepul rejasidan farqli o'laroq, o'z serveringizni ishga tushirish barcha ma'lumotlaringizni saqlashingizni anglatadi.
  • Integratsiyalar - API deyarli 100% Slack API-ga asoslanganligi sababli, deyarli barcha Slack integratsiyalaridan bevosita MatterMost bilan foydalanish mumkin.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

bo'shashmasdan — Bo‘shashish zo‘r, lekin bu yigitlar shunchalik o‘sib ketishdiki, foyda izlay boshlashdi. Biznesning o'zini oqlash bosqichi yaqinlashmoqda, bu ularning asosiy qiymatini yo'qotadi: Slack bepul xizmatlar ko'rsatdi; Bepul versiyaning eng muhim kamchiligi suhbat tarixini o'chirishdir.

Microsoft guruhlari — Microsoft mahsulotini Microsoftga tegishli bo'lmagan narsa bilan birlashtirishga harakat qiling... Omad tilaymiz! Bu vosita haqida aytishim kerak bo'lgan narsa shu!

Hujjatlar vositasi №1

G'olib: Birlashuv

2020 yilda hamma o'rganishi kerak bo'lgan DevOps vositalari
Sifatli texnik hujjatlarni yaratish va saqlash, qaysi vositadan foydalanmasligingizdan qat'i nazar, murakkab jarayondir. So'nggi paytlarda ko'plab SaaS hujjatlashtirish vositalari bozorga chiqqan bo'lsa-da, men uchun muhim ilovalar bo'yicha texnik hujjatlarni saqlashni uchinchi tomonga topshirish qiyin bo'lardi. Ma'lumotlar va hujjatlarni mahalliy saqlash afzalroq va Confluence buni shunday hal qiladi.

Asosiy afzalliklari

  • Ishlash oson - Ko'pgina mustaqil asboblarni sozlash va ishlatish biroz murakkab bo'lishi mumkin va ularga xizmat ko'rsatish uchun ma'lum bilim talab etiladi. Confluence Server 10 yoki 10,000 XNUMX foydalanuvchi uchun ajoyib ishlaydi.
  • Plaginlar - Chiroyli, ishlatish uchun qulay navigatsiya va deyarli hamma narsa uchun plagin qo'shish qobiliyati Wiki-ga o'xshash potentsialni ochadi.

Qatnashuvchilar

Jangda qatnashgan, ammo g'alaba qozonmagan

Hujjatlarni o'qing — Ochiq manba uchun ajoyib, lekin bu yerda muhim bilimlarni saqlash haqida o‘ylamang ham.

Markdown - Kodni hujjatlashtirish uchun juda yaxshi, lekin MarkDownning maxsus formatlashi tufayli arxitektura, jarayonlar yoki boshqa turdagi hujjatlarni joylashtirish qiyin.

Jekyll — Texnik bilimlarni hujjatlashtirganda, men har safar o'zgarishlar bo'lganda joylashtiriladigan yangi statik sayt yaratishni xohlamayman. Confluence-ning oddiy versiya boshqaruv tizimi ichki hujjatlarni ancha soddalashtiradi.

Natijalarni jamlaylik

Bozorda tom ma'noda yuzlab DevOps vositalari mavjud bo'lib, ulardan qaysi birini ishlatish va qachon amalga oshirilishi kerakligini bilish qiyin. To'liq CI/CD quvur liniyasi uchun DevOps vositalarini tanlash bo'yicha ushbu oddiy qo'llanmaga amal qiling.

Barcha besh toifadagi vositalarni tanlaganingizga ishonch hosil qiling:

  • asboblarni ishlab chiqish va qurish
  • sinov avtomatlashtirish vositalari
  • joylashtirish vositalari
  • Ish vaqti vositalari
  • hamkorlik vositalari.

Asosiy tavsiya: Hamma narsani avtomatlashtiring!

Rahmat Zak Shapiro!

Manba: www.habr.com

a Izoh qo'shish