Для навучаньня ў жыцьці няма лепшага часу, чым сёньня.
На двары 2019 год, і тэма DevOps зараз актуальная, як ніколі. Гавораць, што дні сістэмных адміністратараў прайшлі, як абмінула эпоха мэйнфрэймаў. Але ці так гэта на самой справе?
Як гэта часта бывае ў ІТ, сітуацыя змянілася. З`явілася метадалогія DevOps, але яна не можа існаваць без чалавека з навыкамі сістэмнага адміністратара, гэта значыць без Ops.
Да таго як DevOps-падыход набыў сваё сучаснае аблічча, я адносіў сябе да катэгорыі Ops. І я добра ведаю, што адчувае сісадмін, калі разумее, колькі ж усяго ён пакуль не ўмее і як мала часу ў яго на тое, каб гэтаму навучыцца.
Але ці сапраўды ўсё так страшна? Я б сказаў, што ня трэба ўспрымаць недахоп ведаў як нейкую вялікую праблему. Гэта хутчэй прафесійны выклік.
Web-scale-прадукты заснаваныя на Linux ці іншым праграмным забеспячэнні з адчыненым зыходным кодам, а на рынку можна знайсці ўсё менш адмыслоўцаў, здольных іх абслугоўваць. Попыт ужо перавысіў колькасць прафесіяналаў у гэтай галіне. У сістэмнага адміністратара ўжо не атрымаецца проста працягваць працаваць, не падвышаючы свой узровень кваліфікацыі. Ён павінен мець навыкі аўтаматызацыі, каб кіраваць мноствам сервераў/вузлоў, і добра разумець прынцыпы іх працы, каб вырашаць праблемы, якія ўзнікаюць.
Перш чым стаць чальцом каманды DevOps, вам маецца быць прарабіць даволі доўгі, але цікавы шлях, вывучаючы новыя тэхналогіі і разнастайныя прылады, неабходныя для таго, каб абслугоўваць сістэму паводле стандартаў DevOps.
Дык вось, як жа сістэмнаму адміністратару перайсці ад звыклага падыходу ў працы да новай канцэпцыі DevOps? Усё як звычайна: спачатку неабходна змяніць мысленне. Зусім няпроста адмовіцца ад падыходу, якому вы прытрымліваліся апошнія дзесяць ці дваццаць гадоў, і пачаць усё рабіць па-новаму, але гэта неабходна.
У першую чаргу важна зразумець, што DevOps – гэта не канкрэтная пасада ў кампаніі, а набор пэўных практык. Гэтыя практыкі маюць на ўвазе размеркаванне ізаляваных сістэм, зніжэнне шкоды ад багаў і памылак, частае і своечасовае абнаўленне ПЗ, наладжанае ўзаемадзеянне паміж распрацоўшчыкамі (Dev) і адміністратарамі (Ops), а таксама пастаяннае тэсціраванне не толькі кода, але і ўсёй структуры ў рамках працэсу
Нараўне са зменай выявы мыслення трэба навучыцца падтрымліваць інфраструктуру і забяспечваць яе стабільную працу, надзейнасць і даступнасць для бесперапыннай інтэграцыі і дастаўкі прыкладанняў, сэрвісаў і ПЗ.
Чаго вам можа не хапаць як спецыялісту па Ops, дык гэта навыкаў праграмавання. Цяпер напісанне сцэнарыяў (скрыптоў), якімі сістэмныя адміністратары карыстаюцца для аўтаматызаванай усталёўкі патчаў на серверы, кіраванні файламі і ўліковымі запісамі, для ўхілення непаладак і складанні дакументацыі, ужо лічыцца састарэлым. У адносна простых выпадках сцэнары па-ранейшаму прымяняюцца, але канцэпцыя DevOps мае на ўвазе рашэнне буйнамаштабных задач, няхай гэта будзе ўкараненне, тэсціраванне, праца са зборкамі або разгортванне.
Такім чынам, калі вы хочаце навучыцца аўтаматызацыі, трэба хаця б крыху асвоіць праграмаванне, хай вы і не распрацоўшчык, паколькі на дадзеным этапе свайго развіцця
Што рабіць? Каб заставацца запатрабаваным спецыялістам, трэба набыць актуальныя навыкі - асвоіць як мінімум адну мову праграмавання, напрыклад Python. Чалавеку, які прафесійна займаецца адміністраваннем, гэта можа падацца складаным, паколькі ён абвык думаць, што праграмуюць толькі распрацоўнікі. Зусім неабавязкова станавіцца экспертам, аднак веданне адной з моў праграмавання (гэта можа быць Python, Bash ці нават
Каб навучыцца праграмаваць, трэба нейкі час. Будзьце ўважлівыя і цярплівыя - гэта дапаможа вам захоўваць разуменне сітуацыі пры зносінах з распрацоўшчыкамі з каманды DevOps і заказчыкамі. Паўгадзіны ў дзень, гадзіну ці больш - вывучэнне мовы праграмавання павінна стаць вашай галоўнай мэтай.
Сістэмныя адміністратары і адмыслоўцы DevOps вырашаюць падобныя задачы, аднак, ёсць і істотнае адрозненне. Лічыцца, што сістэмны адміністратар не можа рабіць усё, што можа інжынер DevOps. Маўляў, сісадмін больш засяроджаны на канфігураванні, абслугоўванні і забеспячэнні працаздольнасці серверных сістэм, а вось інжынер DevOps цягне ўвесь гэты воз і яшчэ маленькую каляску.
Але наколькі дакладна гэтае сцвярджэнне?
Сістэмны адміністратар: адзін у полі воін
Нягледзячы на адзначаныя ў гэтым артыкуле адрозненні і падабенствы, я ўсё ж лічу, што паміж сістэмным адміністраваннем і DevOps істотнай розніцы няма. Сістэмныя адміністратары заўсёды выконвалі тыя ж функцыі, што і адмыслоўцы DevOps, проста раней ніхто не зваў гэта DevOps. Лічу, што няма сэнсу спецыяльна вышукваць адрозненні, асабліва калі гэта не звязана з нейкай задачай. Не варта забываць і пра тое, што, у адрозненне ад сістэмнага адміністратара, DevOps – гэта не пасада, а канцэпцыя.
Трэба адзначыць яшчэ адну важную рэч, без якой размова і аб адміністраванні, і аб DevOps будзе няпоўным. Сістэмнае адміністраванне ў звыклым разуменні мяркуе наяўнасць у адмыслоўца пэўнага набору навыкаў і арыентацыю на абслугоўванне розных тыпаў інфраструктур. Не ў тым сэнсе, што гэта ўніверсальны супрацоўнік, а ў тым, што ёсць шэраг задач, якія выконваюцца ўсімі адміністратарамі.
Напрыклад, ім даводзіцца час ад часу выступаць у ролі гэтакага тэхнічнага рознарабочага, гэта значыць рабіць літаральна ўсё запар. І калі такі адміністратар адзін на ўсю арганізацыю, то ён будзе выконваць увогуле ўсю тэхнічную працу. Гэта можа быць што заўгодна: ад абслугоўвання друкарак і капіявальных машын да выканання задач, злучаных з сеткай, такіх як налада маршрутызатараў і камутатараў і кіраванне імі ці налада брандмаўэра.
Ён таксама будзе адказваць за абнаўленне апаратнага забеспячэння, праверку і аналіз часопісаў, аўдыт бяспекі, усталёўку патчаў на серверы, ухіленне непаладак, аналіз першапрычын і аўтаматызацыю – як правіла, пасродкам сцэнараў PowerShell, Python або Bash. Адзін з прыкладаў выкарыстання
Задача сістэмнага адміністратара - не марнаваць час марна і эканоміць грошы кампаніі любымі магчымымі спосабамі. Часам сістэмныя адміністратары працуюць як чальцы вялікай каманды, якая аб'ядноўвае, да прыкладу, адміністратараў Linux, Windows, баз дадзеных, сховішчаў і гэтак далей. Рабочы графік таксама бывае розным. Напрыклад, змена ў адной часовай зоне ў канцы дня перадае справы наступнай змене ў іншай часовай зоне, каб працэсы не спыняліся (follow-the-sun); ці ў супрацоўнікаў звычайны працоўны дзень з 9 раніцы да 5-й вечара; ці ж гэта праца ў кругласутачным дата-цэнтры.
Сістэмныя адміністратары з часам навучыліся думаць стратэгічна і спалучаць важныя справы з руціннымі задачамі. У каманд і аддзелаў, у якіх яны працуюць, звычайна не хапае рэсурсаў, але пры гэтым усе стараюцца выконваць штодзённыя задачы ў поўным аб'ёме.
DevOps: распрацоўка і абслугоўванне адзіныя
Пад эгідай DevOps на адным боку працуе каманда распрацоўнікаў праграмнага забеспячэння, а на іншы – каманда адмыслоўцаў па абслугоўванні. Часцяком да іх далучаюцца адмыслоўцы па кіраванні прадуктам, тэстыравальнікі і праекціроўшчыкі карыстацкага інтэрфейсу. Аб'яднаўшы намаганні, гэтыя спецыялісты аптымізуюць працоўныя аперацыі, каб хутка выкочваць новыя прыкладанні і абнаўляць код з мэтай падтрымкі і паляпшэння эфектыўнасці працы ўсёй кампаніі.
У аснове DevOps - кантроль за распрацоўкай і функцыянаваннем ПЗ на працягу ўсяго жыццёвага цыклу. Спецыялісты па абслугоўванні павінны падтрымліваць распрацоўшчыкаў, а перад распрацоўшчыкамі стаіць задача разбірацца не толькі ў API, якія выкарыстоўваюцца ў сістэмах. Яны павінны разумець, што знаходзіцца "пад капотам" (гэта значыць як функцыянуе апаратнае забеспячэнне і аперацыйныя сістэмы), каб лепш спраўляцца з памылкамі, вырашаць праблемы і ўзаемадзейнічаць са спецыялістамі па абслугоўванні.
Сістэмныя адміністратары могуць перайсці ў каманду DevOps, калі яны жадаюць вывучаць найноўшыя тэхналогіі і адчыненыя для інавацыйных ідэй і рашэнняў. Як я ўжо казаў, ім неабавязкова станавіцца паўнавартаснымі праграмістамі, але засваенне моў праграмавання, такіх як Ruby, Python ці Go, дапаможа ім стаць вельмі карыснымі чальцамі каманды. Хоць сістэмныя адміністратары традыцыйна выконваюць усю працу самастойна і часта ўспрымаюцца як адзіночкі, у DevOps іх чакае зусім супрацьлеглы досвед, калі ўсе ўдзельнікі працэсу ўзаемадзейнічаюць сябар з сябрам.
Тэма аўтаматызацыі становіцца ўсё больш актуальнай. Як сістэмныя адміністратары, так і адмыслоўцы DevOps зацікаўлены ў аператыўным маштабаванні, зніжэнні колькасці памылак, а таксама ў хуткім пошуку і ўхіленні існых памылак. Такім чынам, аўтаматызацыя - гэта паняцце, дзе дзве вобласці сыходзяцца. Сістэмныя адміністратары адказваюць за такія хмарныя сэрвісы, як AWS, Azure і Google Cloud Platform. Яны павінны разумець прынцыпы бесперапыннай інтэграцыі і дастаўкі і тое, як выкарыстоўваць у працы інструменты тыпу
Акрамя таго, сістэмныя адміністратары павінны прымяняць такія сродкі наладкі і кіравання, як
Асноўнае паняцце -
І апошняя дэталь у гэтым механізме - гэта
Git утрымоўвае ў сабе масу магчымасцяў. Хутчэй за ўсё, вы ніколі не вывучыце ўсе каманды Git, але дакладна зразумееце, чаму гэтая прылада лічыцца галоўным у камунікацыі і сумеснай працы над праграмным забеспячэннем. Грунтоўнае веданне Git вельмі важна, калі вы працуеце ў камандзе DevOps.
Калі вы сістэмны адміністратар, то вам трэба лепш вывучыць Git, зразумець, як будуецца кіраванне версіямі і запомніць распаўсюджаныя каманды: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff і іншыя. Існуе мноства анлайн-курсаў і кніг, якія дапамогуць вывучыць гэтую тэму з нуля і стаць прафесіяналам з канкрэтнымі навыкамі. Ёсць таксама выдатныя
Заключэнне
У канчатковым рахунку вы самі вырашаеце, ці трэба вам станавіцца адмыслоўцам DevOps ці лепш застацца сістэмным адміністратарам. Як бачыце, для пераходу патрабуецца навучанне, але чым раней вы пачнеце, тым лепш. Абярыце мову праграмавання і раўналежна вывучайце такія прылады, як
Крыніца: habr.com