Bakit Dapat Maging DevOps Engineer ang Mga Administrator ng System

Bakit Dapat Maging DevOps Engineer ang Mga Administrator ng System

Walang mas magandang panahon para matuto sa buhay kaysa ngayon.


2019 na, at mas may kaugnayan ang DevOps kaysa dati. Sabi nila, tapos na ang mga araw ng mga system administrator, tulad na lang ng panahon ng mainframe. Pero ganito ba talaga?
Tulad ng madalas na nangyayari sa IT, nagbago ang sitwasyon. Ang pamamaraan ng DevOps ay lumitaw, ngunit hindi ito maaaring umiral nang walang isang taong may mga kasanayan sa administrator ng system, iyon ay, walang Ops.

Bago ang diskarte ng DevOps ay nagkaroon ng modernong anyo, inuri ko ang aking sarili bilang isang Ops. At alam na alam ko kung ano ang nararanasan ng isang tagapangasiwa ng system kapag napagtanto niya kung gaano karami ang hindi pa niya magagawa at kung gaano kaunting oras ang mayroon siya upang matutunan ito.

Bakit Dapat Maging DevOps Engineer ang Mga Administrator ng System

Pero ganun ba talaga katakot? Sasabihin ko na ang kakulangan ng kaalaman ay hindi dapat ituring bilang isang uri ng malaking problema. Ito ay higit pa sa isang propesyonal na hamon.

Nakabatay ang mga produkto sa web-scale sa Linux o iba pang open source na software, at paunti-unti ang mga tao sa merkado na may kakayahang mapanatili ang mga ito. Lumampas na ang demand sa bilang ng mga propesyonal sa larangang ito. Ang isang system administrator ay hindi na makakapagpatuloy lamang sa pagtatrabaho nang hindi pinapahusay ang kanyang antas ng kasanayan. Dapat ay mayroon siyang mga kasanayan sa pag-automate upang pamahalaan ang maramihang mga server/node at magkaroon ng isang mahusay na pag-unawa sa kung paano gumagana ang mga ito upang malutas ang mga problema na lumitaw.

Bago ka maging miyembro ng DevOps team, kailangan mong dumaan sa medyo mahaba ngunit kawili-wiling paglalakbay, pag-aaral ng mga bagong teknolohiya at iba't ibang tool na kinakailangan upang mapanatili ang system ayon sa mga pamantayan ng DevOps.

Kaya, paano lumipat ang isang system administrator mula sa karaniwang diskarte upang gumana sa bagong konsepto ng DevOps? Ang lahat ay tulad ng dati: kailangan mo munang baguhin ang iyong pag-iisip. Hindi madaling talikuran ang diskarte na iyong sinusunod sa nakalipas na sampu o dalawampung taon at simulan ang paggawa ng mga bagay sa ibang paraan, ngunit ito ay kinakailangan.

Una sa lahat, mahalagang maunawaan na ang DevOps ay hindi isang partikular na posisyon sa isang kumpanya, ngunit isang hanay ng mga partikular na kasanayan. Ipinahihiwatig ng mga kasanayang ito ang pamamahagi ng mga nakahiwalay na system, binabawasan ang pinsala mula sa mga bug at error, madalas at napapanahong pag-update ng software, maayos na pakikipag-ugnayan sa pagitan ng mga developer (Dev) at mga administrator (Ops), pati na rin ang patuloy na pagsubok ng hindi lamang sa code, ngunit gayundin ang buong istraktura sa loob ng proseso patuloy na pagsasama at paghahatid (CI/CD).

Kasabay ng pagbabago ng paraan ng pag-iisip, kailangan mong matutunan kung paano mapanatili ang imprastraktura at tiyakin ang matatag na operasyon nito, pagiging maaasahan at kakayahang magamit para sa patuloy na pagsasama at paghahatid ng mga application, serbisyo at software.

Ang maaaring kulang sa iyo bilang isang propesyonal sa Ops ay ang mga kasanayan sa programming. Ngayon, ang pagsulat ng mga script (script), na ginagamit ng mga system administrator upang awtomatikong mag-install ng mga patch sa isang server, pamahalaan ang mga file at account, i-troubleshoot ang mga problema at i-compile ang dokumentasyon, ay itinuturing na hindi na ginagamit. Nalalapat pa rin ang pag-script sa medyo simpleng mga kaso, ngunit ang DevOps ay tungkol sa paglutas ng mga malalaking problema, ito man ay pagpapatupad, pagsubok, pagbuo, o pag-deploy.

Kaya, kung gusto mong matuto ng automation, kailangan mong makabisado ng kahit kaunting programming, kahit na hindi ka developer, dahil sa yugtong ito ng iyong pag-unlad automation ng imprastraktura sa DevOps ay nangangailangan ng kasanayang ito.

Anong gagawin? Upang manatiling in demand bilang isang espesyalista, kailangan mong kumuha ng mga nauugnay na kasanayan - master ang hindi bababa sa isang programming language, halimbawa Python. Ito ay maaaring mukhang mahirap sa isang tao na propesyonal na kasangkot sa pangangasiwa, dahil siya ay ginagamit upang isipin na ang mga developer lamang ang program. Hindi kinakailangan na maging isang dalubhasa, ngunit ang kaalaman sa isa sa mga programming language (maaaring Python, Bash o kahit na Powershell), ay tiyak na magiging isang kalamangan.

Ang pag-aaral sa programa ay tumatagal ng ilang oras. Ang pagiging maalalahanin at matiyaga ay makakatulong sa iyong manatili sa mga bagay-bagay kapag nakikipag-ugnayan sa mga miyembro ng team at customer ng DevOps. Kalahating oras sa isang araw, isang oras o higit pa, ang pag-aaral ng programming language ay dapat ang iyong pangunahing layunin.

Ang mga administrator ng system at mga espesyalista sa DevOps ay nilulutas ang mga katulad na problema, gayunpaman, may mga makabuluhang pagkakaiba. Ito ay pinaniniwalaan na hindi magagawa ng isang system administrator ang lahat ng magagawa ng isang DevOps engineer. Sinasabi nila na ang tagapangasiwa ng system ay mas nakatutok sa pag-configure, pagpapanatili at pagtiyak ng pagganap ng mga sistema ng server, ngunit hinila ng engineer ng DevOps ang lahat ng cart na ito at isa pang maliit na cart.

Ngunit gaano katotoo ang pahayag na ito?

System administrator: isang mandirigma sa field

Sa kabila ng mga pagkakaiba at pagkakatulad na nabanggit sa artikulong ito, naniniwala pa rin ako na walang makabuluhang pagkakaiba sa pagitan ng mga system administration at DevOps. Ang mga tagapangasiwa ng system ay palaging gumaganap ng parehong mga pag-andar tulad ng mga espesyalista sa DevOps, kaya lang walang tumawag dito na DevOps dati. Naniniwala ako na walang punto sa partikular na paghahanap ng mga pagkakaiba, lalo na kung hindi ito nauugnay sa anumang gawain. Huwag kalimutan na, hindi tulad ng isang administrator ng system, ang DevOps ay hindi isang posisyon, ngunit isang konsepto.

Ang isa pang mahalagang bagay ay dapat tandaan, kung wala ang isang pag-uusap tungkol sa parehong administrasyon at DevOps ay hindi kumpleto. Ang pangangasiwa ng system sa karaniwang kahulugan ay ipinapalagay na ang isang espesyalista ay may isang tiyak na hanay ng mga kasanayan at nakatuon sa paglilingkod sa iba't ibang uri ng mga imprastraktura. Hindi sa kahulugan na ito ay isang unibersal na empleyado, ngunit sa kahulugan na mayroong isang bilang ng mga gawain na ginagawa ng lahat ng mga administrador.

Halimbawa, paminsan-minsan kailangan nilang kumilos bilang isang uri ng teknikal na tagapag-ayos, iyon ay, gawin nang literal ang lahat. At kung mayroon lamang isang tulad na tagapangasiwa para sa buong organisasyon, sa pangkalahatan ay gagawin niya ang lahat ng gawaing teknikal. Ito ay maaaring anuman mula sa pagpapanatili ng mga printer at copier hanggang sa pagsasagawa ng mga gawaing nauugnay sa network tulad ng pag-set up at pamamahala ng mga router at switch o pag-configure ng firewall.

Pananagutan din niya ang mga pag-upgrade ng hardware, inspeksyon at pagsusuri ng log, pag-audit sa seguridad, pag-patch ng server, pag-troubleshoot, pagsusuri sa ugat, at automationβ€”karaniwang sa pamamagitan ng PowerShell, Python, o Bash script. Isang halimbawa ng paggamit mga senaryo ay ang pamamahala ng mga account ng user at grupo. Ang paglikha ng mga account ng gumagamit at pagtatalaga ng mga pahintulot ay isang lubhang nakakapagod na gawain habang lumilitaw at nawawala ang mga user halos araw-araw. Ang pag-automate sa pamamagitan ng mga script ay nagpapalaya ng oras para sa mas mahahalagang gawain sa imprastraktura, tulad ng pag-upgrade ng mga switch at server at iba pang mga proyekto na nakakaapekto sa kakayahang kumita ng kumpanya kung saan nagtatrabaho ang administrator (kahit na karaniwang tinatanggap na ang departamento ng IT ay hindi direktang nakakakuha ng kita).

Ang gawain ng administrator ng system ay hindi mag-aksaya ng oras at i-save ang pera ng kumpanya sa anumang posibleng paraan. Minsan ang mga tagapangasiwa ng system ay nagtatrabaho bilang mga miyembro ng isang malaking koponan, na nagkakaisa, halimbawa, mga administrador ng Linux, Windows, mga database, imbakan, at iba pa. Iba-iba rin ang mga iskedyul ng trabaho. Halimbawa, ang paglilipat sa isang time zone sa pagtatapos ng araw ay naglilipat ng mga kaso sa susunod na shift sa ibang time zone upang hindi huminto ang mga proseso (follow-the-sun); o ang mga empleyado ay may normal na araw ng trabaho mula 9 a.m. hanggang 5 p.m.; o ito ay gumagana sa isang XNUMX/XNUMX data center.

Sa paglipas ng panahon, natutunan ng mga tagapangasiwa ng system na mag-isip nang madiskarteng at pagsamahin ang mga mahahalagang bagay sa mga karaniwang gawain. Ang mga koponan at departamento kung saan sila nagtatrabaho ay karaniwang kapos sa mga mapagkukunan, ngunit sa parehong oras ang lahat ay nagsisikap na kumpletuhin ang mga pang-araw-araw na gawain hanggang sa ganap na lawak.

DevOps: pag-unlad at pagpapanatili bilang isa

DevOps ay isang uri ng pilosopiya para sa mga proseso ng pag-unlad at pagpapanatili. Ang diskarte na ito sa mundo ng IT ay naging tunay na makabago.

Sa ilalim ng payong ng DevOps, mayroong isang software development team sa isang panig at isang maintenance team sa kabilang panig. Madalas silang kasama ng mga espesyalista sa pamamahala ng produkto, mga tagasubok at mga taga-disenyo ng user interface. Sama-sama, pina-streamline ng mga ekspertong ito ang mga operasyon para mabilis na mailunsad ang mga bagong application at mga update sa code para suportahan at pahusayin ang kahusayan ng buong kumpanya.

Ang DevOps ay batay sa kontrol sa pagbuo at pagpapatakbo ng software sa buong ikot ng buhay nito. Dapat suportahan ng mga tao sa pagpapanatili ang mga developer, at ang mga developer ay naatasang umunawa ng higit pa sa mga API na ginagamit sa mga system. Kailangan nilang maunawaan kung ano ang nasa ilalim ng hood (iyon ay, kung paano gumagana ang hardware at operating system) para mas mahusay nilang mahawakan ang mga bug, malutas ang mga problema, at makipag-ugnayan sa mga service technician.

Maaaring lumipat ang mga system administrator sa isang DevOps team kung gusto nilang matutunan ang mga pinakabagong teknolohiya at bukas sila sa mga makabagong ideya at solusyon. Gaya ng sinabi ko noon, hindi nila kailangang maging ganap na mga programmer, ngunit ang pag-master ng isang programming language tulad ng Ruby, Python o Go ay makakatulong sa kanila na maging lubhang kapaki-pakinabang na mga miyembro ng koponan. Bagama't tradisyunal na ginagawa ng mga system administrator ang lahat ng gawain sa kanilang sarili at madalas na itinuturing na mga nag-iisa, sa DevOps mayroon silang ganap na kabaligtaran na karanasan, kung saan lahat ng nasa proseso ay nakikipag-ugnayan sa isa't isa.

Ang paksa ng automation ay nagiging mas nauugnay. Parehong interesado ang mga system administrator at DevOps specialist sa mabilis na pag-scale, pagbabawas ng mga error, at mabilis na paghahanap at pag-aayos ng mga kasalukuyang error. Kaya, ang automation ay isang konsepto kung saan ang dalawang lugar ay nagtatagpo. Responsable ang mga system administrator para sa mga serbisyo sa cloud gaya ng AWS, Azure, at Google Cloud Platform. Dapat nilang maunawaan ang mga prinsipyo ng patuloy na pagsasama at paghahatid at kung paano gumamit ng mga tool tulad ng Jenkins.

Bilang karagdagan, ang mga administrator ng system ay dapat gumamit ng mga tool sa pagsasaayos at pamamahala tulad ng Ansible, kinakailangan para sa parallel na pag-deploy ng sampu o dalawampung server.

Ang pangunahing konsepto ay imprastraktura bilang code. Ang software ay lahat. Sa katunayan, upang ang propesyon ng isang tagapangasiwa ng system ay hindi mawalan ng kaugnayan, kailangan mo lamang na baguhin ang diin. Ang mga tagapangasiwa ng system ay nasa negosyo ng serbisyo at dapat na epektibong makipag-usap sa mga developer, at kabaliktaran. Tulad ng sinasabi nila, ang isang ulo ay mabuti, ngunit ang dalawa ay mas mahusay.

At ang huling detalye sa mekanismong ito ay pumunta. Ang pagtatrabaho sa Git ay isa sa mga tradisyunal na pang-araw-araw na responsibilidad ng isang system administrator. Ang version control system na ito ay malawakang ginagamit ng mga developer, DevOps specialist, Agile team at marami pang iba. Kung ang iyong trabaho ay nauugnay sa ikot ng buhay ng software, tiyak na gagana ka sa Git.

Ang Git ay may maraming mga tampok. Malamang na hindi mo malalaman ang lahat ng mga utos ng Git, ngunit mauunawaan mo nang eksakto kung bakit ito ay isang pangunahing bagay sa komunikasyon at pakikipagtulungan ng software. Napakahalaga ng masusing kaalaman sa Git kung nagtatrabaho ka sa isang DevOps team.

Kung isa kang administrator ng system, kailangan mong mas pag-aralan ang Git, maunawaan kung paano binuo ang kontrol ng bersyon at tandaan ang mga karaniwang utos: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff at iba pa. Maraming online na kurso at aklat na makakatulong sa iyong matutunan ang paksang ito mula sa simula at maging isang propesyonal na may mga partikular na kasanayan. Mayroon ding mga kahanga-hanga mga cheat sheet na may mga utos ng Git, kaya hindi mo na kailangang isiksik lahat, ngunit kapag mas ginagamit mo ang Git, mas magiging madali ito.

Konklusyon

Sa huli, magpapasya ka kung kailangan mong maging isang espesyalista sa DevOps o kung mas mabuting manatiling isang administrator ng system. Tulad ng nakikita mo, mayroong isang curve sa pag-aaral upang gawin ang paglipat, ngunit mas maaga kang magsimula, mas mabuti. Pumili ng programming language at sabay na matutunan ang mga tool gaya ng pumunta (kontrol sa bersyon), Jenkins (CI/CD, tuluy-tuloy na pagsasama) at Ansible (configuration at automation). Anuman ang pagpipiliang pipiliin mo, huwag kalimutan na kailangan mong patuloy na matuto at pagbutihin ang iyong mga kasanayan.

Pinagmulan: www.habr.com

Magdagdag ng komento