Чаму сістэмныя адміністратары павінны станавіцца DevOps-інжынерамі

Чаму сістэмныя адміністратары павінны станавіцца DevOps-інжынерамі

Для навучаньня ў жыцьці няма лепшага часу, чым сёньня.


На двары 2019 год, і тэма DevOps зараз актуальная, як ніколі. Гавораць, што дні сістэмных адміністратараў прайшлі, як абмінула эпоха мэйнфрэймаў. Але ці так гэта на самой справе?
Як гэта часта бывае ў ІТ, сітуацыя змянілася. З`явілася метадалогія DevOps, але яна не можа існаваць без чалавека з навыкамі сістэмнага адміністратара, гэта значыць без Ops.

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

Чаму сістэмныя адміністратары павінны станавіцца DevOps-інжынерамі

Але ці сапраўды ўсё так страшна? Я б сказаў, што ня трэба ўспрымаць недахоп ведаў як нейкую вялікую праблему. Гэта хутчэй прафесійны выклік.

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

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

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

У першую чаргу важна зразумець, што DevOps – гэта не канкрэтная пасада ў кампаніі, а набор пэўных практык. Гэтыя практыкі маюць на ўвазе размеркаванне ізаляваных сістэм, зніжэнне шкоды ад багаў і памылак, частае і своечасовае абнаўленне ПЗ, наладжанае ўзаемадзеянне паміж распрацоўшчыкамі (Dev) і адміністратарамі (Ops), а таксама пастаяннае тэсціраванне не толькі кода, але і ўсёй структуры ў рамках працэсу бесперапыннай інтэграцыі і дастаўкі (CI/CD).

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

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

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

Што рабіць? Каб заставацца запатрабаваным спецыялістам, трэба набыць актуальныя навыкі - асвоіць як мінімум адну мову праграмавання, напрыклад Python. Чалавеку, які прафесійна займаецца адміністраваннем, гэта можа падацца складаным, паколькі ён абвык думаць, што праграмуюць толькі распрацоўнікі. Зусім неабавязкова станавіцца экспертам, аднак веданне адной з моў праграмавання (гэта можа быць Python, Bash ці нават Powershell), безумоўна, стане перавагай.

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

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

Але наколькі дакладна гэтае сцвярджэнне?

Сістэмны адміністратар: адзін у полі воін

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

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

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

Ён таксама будзе адказваць за абнаўленне апаратнага забеспячэння, праверку і аналіз часопісаў, аўдыт бяспекі, усталёўку патчаў на серверы, ухіленне непаладак, аналіз першапрычын і аўтаматызацыю – як правіла, пасродкам сцэнараў PowerShell, Python або Bash. Адзін з прыкладаў выкарыстання сцэнарыяў - гэта кіраванне ўліковымі запісамі карыстальнікаў і груп. Стварэнне ўліковых запісаў карыстальнікаў і прызначэнне дазволаў – задача надзвычай стомная, паколькі карыстачы з'яўляюцца і знікаюць амаль кожны дзень. Аўтаматызацыя пасродкам сцэнараў дазваляе вызваліць час для рашэння важнейшых інфраструктурных задач, напрыклад для абнаўлення камутатараў і сервераў і выкананні іншых праектаў, якія ўплываюць на прыбытковасць кампаніі, у якой адміністратар працуе (хоць і прынята лічыць, што IT-аддзел не прыносіць прыбытак напроста).

Задача сістэмнага адміністратара - не марнаваць час марна і эканоміць грошы кампаніі любымі магчымымі спосабамі. Часам сістэмныя адміністратары працуюць як чальцы вялікай каманды, якая аб'ядноўвае, да прыкладу, адміністратараў Linux, Windows, баз дадзеных, сховішчаў і гэтак далей. Рабочы графік таксама бывае розным. Напрыклад, змена ў адной часовай зоне ў канцы дня перадае справы наступнай змене ў іншай часовай зоне, каб працэсы не спыняліся (follow-the-sun); ці ў супрацоўнікаў звычайны працоўны дзень з 9 раніцы да 5-й вечара; ці ж гэта праца ў кругласутачным дата-цэнтры.

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

DevOps: распрацоўка і абслугоўванне адзіныя

DevOps - Гэта свайго роду філасофія працэсаў распрацоўкі і абслугоўвання. Такі падыход у свеце IT стаў сапраўды наватарскім.

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

У аснове DevOps - кантроль за распрацоўкай і функцыянаваннем ПЗ на працягу ўсяго жыццёвага цыклу. Спецыялісты па абслугоўванні павінны падтрымліваць распрацоўшчыкаў, а перад распрацоўшчыкамі стаіць задача разбірацца не толькі ў API, якія выкарыстоўваюцца ў сістэмах. Яны павінны разумець, што знаходзіцца "пад капотам" (гэта значыць як функцыянуе апаратнае забеспячэнне і аперацыйныя сістэмы), каб лепш спраўляцца з памылкамі, вырашаць праблемы і ўзаемадзейнічаць са спецыялістамі па абслугоўванні.

Сістэмныя адміністратары могуць перайсці ў каманду DevOps, калі яны жадаюць вывучаць найноўшыя тэхналогіі і адчыненыя для інавацыйных ідэй і рашэнняў. Як я ўжо казаў, ім неабавязкова станавіцца паўнавартаснымі праграмістамі, але засваенне моў праграмавання, такіх як Ruby, Python ці Go, дапаможа ім стаць вельмі карыснымі чальцамі каманды. Хоць сістэмныя адміністратары традыцыйна выконваюць усю працу самастойна і часта ўспрымаюцца як адзіночкі, у DevOps іх чакае зусім супрацьлеглы досвед, калі ўсе ўдзельнікі працэсу ўзаемадзейнічаюць сябар з сябрам.

Тэма аўтаматызацыі становіцца ўсё больш актуальнай. Як сістэмныя адміністратары, так і адмыслоўцы DevOps зацікаўлены ў аператыўным маштабаванні, зніжэнні колькасці памылак, а таксама ў хуткім пошуку і ўхіленні існых памылак. Такім чынам, аўтаматызацыя - гэта паняцце, дзе дзве вобласці сыходзяцца. Сістэмныя адміністратары адказваюць за такія хмарныя сэрвісы, як AWS, Azure і Google Cloud Platform. Яны павінны разумець прынцыпы бесперапыннай інтэграцыі і дастаўкі і тое, як выкарыстоўваць у працы інструменты тыпу Джэнкінс.

Акрамя таго, сістэмныя адміністратары павінны прымяняць такія сродкі наладкі і кіравання, як анзибль, неабходныя для паралельнага разгортвання дзесяці ці дваццаці сервераў.

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

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

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

Калі вы сістэмны адміністратар, то вам трэба лепш вывучыць Git, зразумець, як будуецца кіраванне версіямі і запомніць распаўсюджаныя каманды: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff і іншыя. Існуе мноства анлайн-курсаў і кніг, якія дапамогуць вывучыць гэтую тэму з нуля і стаць прафесіяналам з канкрэтнымі навыкамі. Ёсць таксама выдатныя шпаргалкі з камандамі Git, таму зубрыць іх усё неабавязкова, але чым больш вы карыстаецеся Git, тым прасцей вам будзе.

Заключэнне

У канчатковым рахунку вы самі вырашаеце, ці трэба вам станавіцца адмыслоўцам DevOps ці лепш застацца сістэмным адміністратарам. Як бачыце, для пераходу патрабуецца навучанне, але чым раней вы пачнеце, тым лепш. Абярыце мову праграмавання і раўналежна вывучайце такія прылады, як ісці (кантроль версій), Джэнкінс (CI/CD, бесперапынная інтэграцыя) і анзибль (канфігураванне і аўтаматызацыя). На якім бы варыянце вы ні спыніліся, не забывайце, што трэба ўвесь час вучыцца і ўдасканальваць свае навыкі.

Крыніца: habr.com

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