Што такое метадалогія DevOps і каму яна патрэбна

Разбіраемся, у чым сутнасць метадалогіі і каму яна можа прынесці карысць.

Таксама пагаворым аб DevOps-спецыялістах: іх задачах, заробках і навыках.

Што такое метадалогія DevOps і каму яна патрэбна
Фота Matt Moor / Flickr / CC BY-SA

Што такое DevOps

DevOps – гэта метадалогія распрацоўкі ПЗ, задача якой наладзіць узаемадзеянне праграмістаў і сісадмінаў у кампаніі. Калі ІТ-адмыслоўцы з розных аддзелаў недастаткова разумеюць сутнасць задач адзін аднаго, выпуск новых прыкладанняў і абнаўленняў для іх зацягваецца.

DevOps фармуе "бясшвоўны" цыкл распрацоўкі, тым самым дапамагаючы паскорыць выпуск праграмнага прадукта. Паскарэнне дасягаецца за кошт укаранення сістэм аўтаматызацыі. Плюс праграмісты пачынаюць удзельнічаць у наладзе сервераў і пошуку багаў, напрыклад, яны могуць пісаць аўтаматызаваныя тэсты.

Такім чынам наладжваецца ўзаемадзеянне паміж аддзеламі. Супрацоўнікі пачынаюць лепш разумець, якія этапы праходзіць праграмны прадукт перад тым, як патрапіць у рукі карыстальніка.

Калі распрацоўнік разумее, з чым сутыкаецца адміністратар пры наладзе сервера, ён паспрабуе згладзіць магчымыя "вострыя куты" у кодзе. Гэта скарачае колькасць багаў пры разгортцы прыкладання - па статыстыцы яно памяншаецца прыкладна ў пяць разоў.

Каму патрэбна і не патрэбна метадалогія

Шматлікія ІТ-эксперты лічаць, што DevOps прынясе карысць любой арганізацыі, якая займаецца распрацоўкай ПЗ. Гэта справядліва нават у тым выпадку, калі кампанія з'яўляецца простым спажыўцы ІТ-сэрвісаў і не распрацоўвае ўласныя прыкладанні. У гэтым выпадку ўкараненне DevOps-культуры дапаможа сканцэнтравацца на інавацыях.

выключэнне складаюць стартапы, але і тут усё залежыць ад маштабаў праекту. Калі ваша мэта - запусціць мінімальна жыццяздольны прадукт (minimum viable product, MVP), каб пратэставаць новую ідэю, то можна абысціся і без DevOps. Напрыклад, заснавальнік Groupon у пачатку працы над сэрвісам сам уручную размяшчаў усе прапановы на сайце і збіраў замовы. Ніякіх інструментаў аўтаматызацыі ён не выкарыстоўваў.

Укараняць метадалогію і інструменты аўтаматызацыі мае сэнс толькі тады, калі праграма пачынае набіраць папулярнасць. Гэта дапаможа наладзіць бізнес-працэсы і паскорыць выхад абнаўленняў.

Як укараніць DevOps

Далей - некалькі рэкамендацый для пераходу на новую метадалогію.

Выявіце праблемы ў бізнес-працэсах. Перад укараненнем метадалогіі вылучыце мэты і праблемы арганізацыі. Ад іх будзе залежаць стратэгія пераходу на DevOps. Для гэтага складзіце спіс пытанняў, напрыклад:

  • На што сыходзіць больш за ўсё часу пры абнаўленні ПЗ?
  • Ці можна аўтаматызаваць гэты працэс?
  • Ці ўплывае на гэта структура арганізацыі?

Падрабязна аб выяўленні праблем у арганізацыі можна пачытаць у кнігах «Праект „Фенікс“»І«Кіраўніцтва па DevOps» ад аўтараў метадалогіі.

Памяняйце культуру ў кампаніі. Важна пераканаць усіх супрацоўнікаў змяніць звыклыя спосабы працы і пашырыць свой спектр кампетэнцый. Напрыклад, у Facebook усе праграмісты адказваюць за жыццёвы цыкл прыкладання цалкам: ад напісання кода да ўкаранення. Таксама ў Facebook няма асобнага аддзела тэсціравання - тэсты пішуць самі распрацоўшчыкі.

Пачніце з малога. Абярыце працэс, які адымае больш за ўсё часу і сіл пры выпуску абнаўленняў, і аўтаматызуйце яго. Гэта можа быць тэсціраванне або працэс разгортвання прыкладанняў. Эксперты раяць перш за ўсё ўкараніць інструменты размеркаванага кантролю версій. З імі прасцей кіраваць зыходнікамі. Сярод такіх рашэнняў найболей вядомыя Git, Mercurial, Subversion (SVN) і CVS.

Таксама варта звярнуць увагу на сістэмы бесперапыннай інтэграцыі, адказныя за зборку і тэсціраванне канчатковага прадукту. Прыклады такіх прылад: Jenkins, TeamCity і Bamboo.

Ацэньвайце паляпшэнні. Распрацуйце метрыкі эфектыўнасці ўкаранёных рашэнняў і складзіце чэк-ліст. Метрыкамі могуць служыць частата рэлізаў, час працы над праграмнымі функцыямі, колькасць багаў у кодзе. Абмяркоўвайце вынікі не толькі з мэнэджэрамі, але і з астатняй камандай, занятай на праекце. Пытайце, якіх інструментаў не хапае. Улічвайце гэтыя запыты пры далейшай аптымізацыі працэсаў.

Крытыка DevOps

Хаця метадалогія дапамагае арганізацыям хутчэй прымаць рашэнні, якія датычацца распрацоўкі дадаткаў, скарачае колькасць памылак у ПЗ і заахвочвае супрацоўнікаў вучыцца новаму, у яе ёсць і крытыкі.

Ёсць меркаванне, Што праграмісты не павінны разбірацца ў дэталях працы сістэмных адміністратараў. Нібыта DevOps прыводзіць да таго, што ў кампаніі замест адмыслоўцаў па распрацоўцы ці адміністраванню з'яўляюцца людзі, якія разбіраюцца ва ўсім, але павярхоўна.

Таксама лічыцца, што DevOps не працуе пры дрэнным менеджменце. Калі ў каманд распрацоўшчыкаў і адміністратараў няма агульных мэт, у гэтым вінаватыя мэнэджары, якія не арганізуюць узаемадзеянне паміж камандамі. Каб вырашыць гэтую праблему, патрэбна не новая метадалогія, а сістэма адзнакі мэнэджараў на аснове водгукаў ад падпарадкаваных. Вось тут можна пачытаць, якія пытанні варта ўключаць у формы апытанняў для супрацоўнікаў.

Што такое метадалогія DevOps і каму яна патрэбна
Фота Ed Ivanushkin / Flickr / CC BY-SA

Хто такі DevOps-інжынер

DevOps-інжынер займаецца ўкараненнем метадалогіі DevOps. Ён сінхранізуе ўсе этапы стварэння праграмнага прадукта: ад напісання кода да тэставання і выпуску прыкладання. Такі спецыяліст кантралюе аддзелы распрацоўкі і адміністравання плюс аўтаматызуе выкананне іх задач, укараняючы розныя праграмныя інструменты.

Фішка DevOps-інжынера ў тым, што ён сумяшчае мноства прафесій: адміна, распрацоўніка, тэстыравальніка і мэнэджара.

Джо Санчэс, DevOps-евангеліст з VMware, кампаніі-распрацоўніка праграмнага забеспячэння для віртуалізацыі, вылучыў шэраг навыкаў, якімі абавязаны валодаць DevOps-інжынер. Акрамя відавочных ведаў метадалогіі DevOps, гэты чалавек павінен мець досвед адміністравання АС Windows і Linux і досвед працы з прыладамі аўтаматызацыі накшталт Шэф-поварЛялечныанзибль. Яшчэ ён павінен умець пісаць скрыпты і код на пары-тройцы моў і разбірацца ў сеткавых тэхналогіях.

DevOps-інжынер адказвае за любую аўтаматызацыю задач, звязаных з наладай і разгортваннем прыкладанняў. На яго плечы кладзецца і маніторынг праграмнага забесьпячэньня. Для рашэння гэтых задач ён ужывае розныя сістэмы кіравання канфігурацыямі, рашэнні віртуалізацыі і хмарныя прылады для балансавання рэсурсаў.

Хто наймае

DevOps-інжынеры могуць прынесці карысць любой арганізацыі, чыя дзейнасць звязана з распрацоўкай прыкладанняў або кіраваннем вялікай колькасцю сервераў. DevOps-інжынераў наймаюць ІТ-гіганты накшталт Amazon, Adobe і Facebook. Яшчэ яны працуюць на Netflix, Walmart і Etsy.

Не наймаюць DevOps-інжынераў толькі стартапы. Іх задача - выпусціць мінімальна жыццяздольны прадукт, каб праверыць новую ідэю. У большасці выпадкаў стартапы могуць абысціся без DevOps.

Колькі плацяць

DevOps-інжынеры зарабляюць больш за ўсіх у галіны. Сярэдні заробак такіх спецыялістаў па свеце складае ад 100 да 125 тыс. долараў за год.

У ЗША яны атрымліваюць 90 тыс. долараў за год (500 тыс. рублёў за месяц). У Канадзе ім плацяць 122 тыс. даляраў у год (670 тыс. рублёў у месяц), а ў UK - 67,5 тыс. фунтаў стэрлінгаў у год (490 тыс. рублёў у месяц).

Што тычыцца Расіі, то маскоўскія кампаніі гатовы плаціць DevOps-спецыялістам ад 100 да 200 тыс. рублёў у месяц. У Санкт-Пецярбургу працадаўцы крыху больш шчодрыя - прапануюць 160-360 тыс. рублёў у месяц. У рэгіёнах паказваюць заробак 100-120 тыс. рублёў у месяц.

Як стаць спецыялістам па DevOps

DevOps - гэта адносна новы кірунак у IT, таму ўстоянага пераліку патрабаванняў да DevOps-інжынерам няма. У вакансіях сярод патрабаванняў на гэтую пасаду можна сустрэць як навыкі адміністравання Debian і CentOS, так і ўменне працаваць з дыскавымі RAID-масівамі.

На падставе гэтага можна зрабіць выснову, што першым чынам DevOps-інжынер павінен мець добры тэхнічны кругагляд. Такому чалавеку важна стала вывучаць новыя прылады і тэхналогіі.

Прасцей за ўсё стаць DevOps-інжынерам будзе сісадміну або распрацоўшчыку. У іх ужо ёсць шэраг навыкаў, якія трэба проста развіць. Галоўная задача - падцягнуць мінімальны набор ведаў па DevOps, зразумець, як працаваць з інструментамі аўтаматызацыі і запоўніць прабелы ў навыках адміністравання, праграмавання і віртуалізацыі.

Каб зразумець, дзе ведаў пакуль не хапае, можна скарыстацца міні-вікіпедыяй на GitHub або ментальнай картай. Рэзідэнты Hacker News таксама рэкамендуюць пачытаць кнігі «Праект „Фенікс“»І«Кіраўніцтва па DevOps» (якія мы згадвалі вышэй) і «Філасофія DevOps. Мастацтва кіравання IT» пад грыфам O'Reilly Media.

Яшчэ можна падпісацца на рассылку Devops Weekly, пачытаць артыкулы тэматычнага партала DZone і пачаць мець зносіны з DevOps-інжынерамі ў Slack-чаце. Яшчэ варта вывучыць бясплатныя курсы на Udacity або EDX.

Пасты з нашага блога:



Крыніца: habr.com

Дадаць каментар