DevOps pÄdÄjos gados ir kļuvusi par ļoti populÄru tÄmu. Daudzi cilvÄki sapÅo par iestÄÅ”anos tajÄ, taÄu, kÄ liecina prakse, bieži vien tikai algu lÄ«meÅa dÄļ.
Daži cilvÄki savÄ CV uzskaita DevOps, lai gan viÅi ne vienmÄr zina vai saprot Ŕī termina bÅ«tÄ«bu. Dažiem Ŕķiet, ka pÄc Ansible, GitLab, Jenkins, Terraform un tamlÄ«dzÄ«gÄm studijÄm (sarakstu var turpinÄt pÄc jÅ«su gaumes), jÅ«s uzreiz kļūsiet par ādevopsistuā. TÄ, protams, nav taisnÄ«ba.
PÄdÄjos gadus esmu galvenokÄrt iesaistÄ«ts DevOps ievieÅ”anÄ dažÄdos uzÅÄmumos. Pirms tam viÅÅ” vairÄk nekÄ 20 gadus strÄdÄja amatos, sÄkot no sistÄmas administratora lÄ«dz IT direktoram. PaÅ”laik DevOps vadoÅ”ais inženieris uzÅÄmumÄ Playgendary.
Kas ir DevOps
Ideja rakstÄ«t rakstu radÄs pÄc cita jautÄjuma: "Kas ir DevOps?" JoprojÄm nav noteikts termiÅÅ”, kas un kas tas ir. Dažas atbildes jau ir Å”ajÄ sadaļÄ
DevOps nav nolÄ«gts speciÄlists, nevis komunÄlo pakalpojumu komplekts, ne izstrÄdÄtÄju nodaļa ar inženieriem.
DevOps ir filozofija un metodoloģija.
Citiem vÄrdiem sakot, tas ir prakÅ”u kopums, kas palÄ«dz izstrÄdÄtÄjiem aktÄ«vi sadarboties ar sistÄmas administratoriem. Tas ir, savienot un integrÄt darba procesus savÄ starpÄ.
LÄ«dz ar DevOps parÄdÄ«Å”anos speciÄlistu struktÅ«ra un lomas palika nemainÄ«gas (ir izstrÄdÄtÄji, ir inženieri), taÄu ir mainÄ«juÅ”ies mijiedarbÄ«bas noteikumi. Robežas starp departamentiem ir izplÅ«duÅ”as.
DevOps mÄrÄ·us var raksturot trÄ«s punktos:
- ProgrammatÅ«ra ir regulÄri jÄatjaunina.
- ProgrammatÅ«ra ir jÄizveido Ätri.
- ProgrammatÅ«ra ir jÄizvieto Ärti un Ä«sÄ laikÄ.
DevOps nav viena rÄ«ka. VairÄku produktu konfigurÄÅ”ana, piegÄde un izpÄte nenozÄ«mÄ, ka uzÅÄmumÄ ir parÄdÄ«jies DevOps. Ir daudz rÄ«ku, un tie visi tiek izmantoti dažÄdos posmos, taÄu tiem ir viens kopÄ«gs mÄrÄ·is.
Un Ŕī ir tikai daļa no DevOps rīkiem
Es jau vairÄk nekÄ 2 gadus intervÄju cilvÄkus DevOps inženiera amatam un esmu sapratis, cik svarÄ«gi ir skaidri saprast Ŕī termina bÅ«tÄ«bu. Man ir uzkrÄta konkrÄta pieredze, novÄrojumi un pÄrdomas, ar kurÄm vÄlos padalÄ«ties.
No intervijas pieredzes es redzu Å”Ädu attÄlu: speciÄlistiem, kuri uzskata DevOps par amata nosaukumu, parasti ir nesapraÅ”anÄs ar kolÄÄ£iem.
Bija spilgts piemÄrs. KÄds jauns vÄ«rietis ieradÄs uz interviju ar daudz gudru vÄrdu savÄ CV. PÄdÄjos trÄ«s darbos viÅam bija 5-6 mÄneÅ”u pieredze. Es pametu divus jaunuzÅÄmumus, jo tie "nepacÄlÄs". Bet par treÅ”o uzÅÄmumu viÅÅ” teica, ka tur viÅu neviens nesaprot: izstrÄdÄtÄji raksta kodu uz Windows, un direktors piespiež Å”o kodu āietÄ«tā parastajÄ Docker un iebÅ«vÄt CI/CD konveijerÄ. Puisis teica daudz negatÄ«vu lietu par savu paÅ”reizÄjo darba vietu un saviem kolÄÄ£iem - es tikai gribÄju atbildÄt: "TÄtad jÅ«s nepÄrdosit ziloni."
PÄc tam es viÅam uzdevu jautÄjumu, kas manÄ sarakstÄ ir augsts katram kandidÄtam.
ā Ko DevOps nozÄ«mÄ jums personÄ«gi?
ā VispÄr vai kÄ es to uztveru?
Mani interesÄja viÅa personÄ«gais viedoklis. ViÅÅ” zinÄja Ŕī termina teoriju un izcelsmi, taÄu kategoriski nepiekrita tiem. ViÅÅ” uzskatÄ«ja, ka DevOps ir amata nosaukums. Å eit slÄpjas viÅa problÄmu sakne. KÄ arÄ« citi speciÄlisti ar tÄdu paÅ”u viedokli.
Darba devÄji, daudz dzirdÄjuÅ”i par āDevOps burvÄ«buā, vÄlas atrast cilvÄku, kurÅ” atnÄks un radÄ«s Å”o āmaÄ£ijuā. Un pretendenti no kategorijas āDevOps ir darbsā nesaprot, ka ar Å”o pieeju viÅi nespÄs attaisnot cerÄ«bas. Un kopumÄ viÅi savÄ CV ierakstÄ«ja DevOps, jo tÄ ir tendence, un viÅi par to maksÄ daudz.
DevOps metodoloģija un filozofija
MetodoloÄ£ija var bÅ«t teorÄtiska un praktiska. MÅ«su gadÄ«jumÄ tas ir otrais. KÄ jau minÄju iepriekÅ”, DevOps ir prakÅ”u un stratÄÄ£iju kopums, ko izmanto, lai sasniegtu izvirzÄ«tos mÄrÄ·us. Un katrÄ gadÄ«jumÄ, atkarÄ«bÄ no uzÅÄmuma biznesa procesiem, tas var bÅ«tiski atŔķirties. Kas to nepadara ne labÄku, ne sliktÄku.
DevOps metodoloÄ£ija ir tikai lÄ«dzeklis mÄrÄ·u sasniegÅ”anai.
Tagad par to, kas ir DevOps filozofija. Un tas, iespÄjams, ir visgrÅ«tÄkais jautÄjums.
Ir diezgan grÅ«ti formulÄt Ä«su un kodolÄ«gu atbildi, jo tÄ vÄl nav formalizÄta. Un tÄ kÄ DevOps filozofijas piekritÄji ir vairÄk iesaistÄ«ti praksÄ, filozofÄÅ”anai vienkÄrÅ”i nav laika. TomÄr tas ir ļoti svarÄ«gs process. TurklÄt tas ir tieÅ”i saistÄ«ts ar inženiertehniskajÄm darbÄ«bÄm. Ir pat specializÄta zinÄÅ”anu joma -
ManÄ augstskolÄ tÄda priekÅ”meta nebija, viss bija jÄmÄcÄs paÅ”am, izmantojot tos materiÄlus, ko varÄju atrast 90. gados. TÄma nav obligÄta inženierzinÄtÅu izglÄ«tÄ«bai, lÄ«dz ar to atbildes trÅ«kums nav formalizÄts. Bet tie cilvÄki, kuri ir nopietni iegrimuÅ”i DevOps, sÄk izjust zinÄmu visu uzÅÄmuma procesu "garu" vai "bezapziÅu".
Izmantojot savu pieredzi, es mÄÄ£inÄju formalizÄt dažus Ŕīs filozofijas āpostulÄtusā. RezultÄts ir Å”Äds:
- DevOps nav kaut kas neatkarÄ«gs, ko var iedalÄ«t atseviÅ”Ä·Ä zinÄÅ”anu vai darbÄ«bas jomÄ.
- Visiem uzÅÄmuma darbiniekiem, plÄnojot savu darbÄ«bu, jÄvadÄs pÄc DevOps metodoloÄ£ijas.
- DevOps ietekmÄ visus procesus uzÅÄmumÄ.
- DevOps pastÄv, lai samazinÄtu laika izmaksas jebkuriem procesiem uzÅÄmumÄ, lai nodroÅ”inÄtu tÄ pakalpojumu attÄ«stÄ«bu un maksimÄlu klientu komfortu.
- DevOps, mÅ«sdienu valodÄ runÄjot, ir ikviena uzÅÄmuma darbinieka proaktÄ«va pozÄ«cija, kuras mÄrÄ·is ir samazinÄt laika izmaksas un uzlabot apkÄrtÄjo IT produktu kvalitÄti.
DomÄju, ka mani āpostulÄtiā ir atseviŔķa diskusijas tÄma. Bet tagad ir uz ko balstÄ«ties.
Ko dara DevOps
AtslÄgas vÄrds Å”eit ir komunikÄcija. Ir daudz sakaru, kuru iniciatoram vajadzÄtu bÅ«t tieÅ”i tam paÅ”am DevOps inženierim. KÄpÄc ir tÄ, ka? Jo tÄ ir filozofija un metodoloÄ£ija, un tikai tad inženierzinÄtnes.
Es nevaru runÄt ar 100% pÄrliecÄ«bu par Rietumu darba tirgu. Bet es zinu diezgan daudz par DevOps tirgu KrievijÄ. Papildus simtiem interviju pÄdÄjÄ pusotra gada laikÄ esmu piedalÄ«jies simtiem tehnisko priekÅ”pÄrdoÅ”anÄ pakalpojuma āDevOps ievieÅ”anaā lielajiem Krievijas uzÅÄmumiem un bankÄm.
KrievijÄ DevOps joprojÄm ir ļoti jauna, bet jau aktuÄla tÄma. Cik man zinÄms, MaskavÄ vien 2019. gadÄ Å”Ädu speciÄlistu trÅ«kums bija vairÄk nekÄ 1000 cilvÄku. Un vÄrds Kubernetes darba devÄjiem ir gandrÄ«z kÄ sarkana lupata vÄrsim. Å Ä« rÄ«ka piekritÄji ir gatavi to izmantot arÄ« tur, kur tas nav nepiecieÅ”ams un ekonomiski izdevÄ«gi. Darba devÄjs ne vienmÄr saprot, kÄdos gadÄ«jumos ir lietderÄ«gÄk izmantot, un ar pareizu izvietoÅ”anu Kubernetes klastera uzturÄÅ”ana izmaksÄ 2-3 reizes vairÄk nekÄ lietojumprogrammas izvietoÅ”ana, izmantojot parasto klasteru shÄmu. Izmantojiet to tur, kur jums tas patieÅ”Äm ir nepiecieÅ”ams.
DevOps ievieÅ”ana ir dÄrga naudas izteiksmÄ. Un tas ir attaisnojams tikai tad, ja tas nes ekonomisku labumu citÄs jomÄs, nevis pats par sevi.
DevOps inženieri patiesÄ«bÄ ir pionieri ā tieÅ”i viÅiem vajadzÄtu pirmajiem ieviest Å”o metodiku uzÅÄmumÄ un veidot procesus. Lai tas izdotos, speciÄlistam pastÄvÄ«gi jÄsadarbojas ar darbiniekiem un kolÄÄ£iem visos lÄ«meÅos. KÄ es parasti saku, DevOps ievieÅ”anas procesÄ jÄiesaista visi uzÅÄmuma darbinieki: no apkopÄjas lÄ«dz izpilddirektoram. Un tas ir priekÅ”noteikums. Ja komandas jaunÄkais dalÄ«bnieks nezina un nesaprot, kas ir DevOps un kÄpÄc tiek veiktas noteiktas organizatoriskas darbÄ«bas, tad veiksmÄ«ga ievieÅ”ana nedarbosies.
TurklÄt DevOps inženierim laiku pa laikam ir jÄizmanto administratÄ«vais resurss. PiemÄram, lai pÄrvarÄtu āvides pretestÄ«buā ā kad komanda nav gatava pieÅemt DevOps rÄ«kus un metodiku.
IzstrÄdÄtÄjam ir jÄraksta tikai kods un testi. Lai to izdarÄ«tu, viÅam nav nepiecieÅ”ams Ä«paÅ”i jaudÄ«gs klÄpjdators, kurÄ viÅÅ” izvietos un lokÄli atbalstÄ«s visu projekta infrastruktÅ«ru. PiemÄram, priekÅ”gala izstrÄdÄtÄjs savÄ klÄpjdatorÄ glabÄ visus lietojumprogrammas elementus, tostarp datu bÄzi, S3 emulatoru (minio) utt. Tas ir, viÅÅ” pavada daudz laika, lai uzturÄtu Å”o vietÄjo infrastruktÅ«ru un viens pats cÄ«nÄs ar visÄm Å”Äda risinÄjuma problÄmÄm. TÄ vietÄ, lai izstrÄdÄtu kodu priekÅ”pusei. Å Ädi cilvÄki var bÅ«t ļoti izturÄ«gi pret jebkÄdÄm izmaiÅÄm.
Bet ir komandas, kuras, gluži pretÄji, labprÄt ievieÅ” jaunus rÄ«kus un metodes, un aktÄ«vi piedalÄs Å”ajÄ procesÄ. Lai gan arÄ« Å”ajÄ gadÄ«jumÄ komunikÄcija starp DevOps inženieri un komandu netika atcelta.
Kad DevOps nav nepiecieŔams
Ir situÄcijas, kad DevOps nav nepiecieÅ”ams. Tas ir fakts ā tas ir jÄsaprot un jÄpieÅem.
PirmkÄrt, tas attiecas uz jebkuriem uzÅÄmumiem (Ä«paÅ”i mazajiem uzÅÄmumiem), kuru peļÅa nav tieÅ”i atkarÄ«ga no IT produktu esamÄ«bas vai neesamÄ«bas, kas sniedz informÄcijas pakalpojumus klientiem. Un Å”eit mÄs nerunÄjam par uzÅÄmuma vietni, vai tÄ bÅ«tu statiska āvizÄ«tkarteā, vai ar dinamiskiem ziÅu blokiem utt.
DevOps ir nepiecieÅ”ams, ja jÅ«su klienta apmierinÄtÄ«ba un viÅa vÄlme atgriezties pie jums ir atkarÄ«ga no Å”o informÄcijas pakalpojumu pieejamÄ«bas mijiedarbÄ«bai ar klientu, to kvalitÄtes un mÄrÄ·auditorijas atlases.
Spilgts piemÄrs ir viena labi zinÄma banka. UzÅÄmumam nav tradicionÄlu klientu biroju, dokumentu aprite notiek ar pasta vai kurjeru starpniecÄ«bu, un daudzi darbinieki strÄdÄ no mÄjÄm. UzÅÄmums ir pÄrstÄjis bÅ«t tikai banka un, manuprÄt, ir pÄrtapis par IT uzÅÄmumu ar attÄ«stÄ«tÄm DevOps tehnoloÄ£ijÄm.
Tematisko tikÅ”anos un konferenÄu ierakstos atrodami arÄ« daudzi citi piemÄri un lekcijas. Dažus no tiem apmeklÄju personÄ«gi ā tÄ ir ļoti noderÄ«ga pieredze tiem, kas vÄlas attÄ«stÄ«ties Å”ajÄ virzienÄ. Å eit ir saites uz YouTube kanÄliem ar labÄm lekcijÄm un materiÄliem par DevOps:
Tagad apskatiet savu biznesu un padomÄjiet par Å”o: cik lielÄ mÄrÄ jÅ«su uzÅÄmums un tÄ peļÅa ir atkarÄ«ga no IT produktiem, lai nodroÅ”inÄtu klientu mijiedarbÄ«bu?
Ja jÅ«su uzÅÄmums pÄrdod zivis nelielÄ veikalÄ un vienÄ«gais IT produkts ir divas 1C: Enterprise konfigurÄcijas (Accounting un UNF), tad diez vai ir jÄga runÄt par DevOps.
Ja strÄdÄjat lielÄ tirdzniecÄ«bas un ražoÅ”anas uzÅÄmumÄ (piemÄram, ražojat medÄ«bu bises), tad par to ir jÄdomÄ. JÅ«s varat uzÅemties iniciatÄ«vu un darÄ«t zinÄmu savai vadÄ«bai DevOps ievieÅ”anas perspektÄ«vas. Nu, un tajÄ paÅ”Ä laikÄ vadiet Å”o procesu. ProaktÄ«va pozÄ«cija ir viens no svarÄ«gÄkajiem DevOps filozofijas principiem.
Gada finanÅ”u apgrozÄ«juma lielums un apjoms nav galvenais kritÄrijs, lai noteiktu, vai jÅ«su uzÅÄmumam ir nepiecieÅ”ams DevOps.
IedomÄsimies lielu rÅ«pniecÄ«bas uzÅÄmumu, kas tieÅ”i nesadarbojas ar klientiem. PiemÄram, daži autoražotÄji un automobiļu ražoÅ”anas uzÅÄmumi. Tagad neesmu pÄrliecinÄts, bet, Åemot vÄrÄ manu iepriekÅ”Äjo pieredzi, daudzus gadus visa mijiedarbÄ«ba ar klientiem tika veikta, izmantojot e-pastu un tÄlruni.
ViÅu klienti ir ierobežots automaŔīnu tirgotÄju saraksts. Un katram no ražotÄja tiek pieŔķirts speciÄlists. Visa iekÅ”ÄjÄ dokumentu plÅ«sma notiek caur SAP ERP. IekÅ”Äjie darbinieki bÅ«tÄ«bÄ ir informÄcijas sistÄmas klienti. TaÄu Å”o IS kontrolÄ klasiskie klasteru sistÄmu pÄrvaldÄ«bas lÄ«dzekļi. Kas izslÄdz iespÄju izmantot DevOps praksi.
No tÄ izriet secinÄjums: Å”Ädiem uzÅÄmumiem DevOps ievieÅ”ana nav kaut kas kritiski svarÄ«gs, ja atceramies metodoloÄ£ijas mÄrÄ·us no raksta sÄkuma. Bet es neizslÄdzu, ka viÅi Å”odien izmanto dažus DevOps rÄ«kus.
No otras puses, ir daudz mazu uzÅÄmumu, kas izstrÄdÄ programmatÅ«ru, izmantojot DevOps metodoloÄ£iju, filozofiju, praksi un rÄ«kus. Un viÅi uzskata, ka DevOps ievieÅ”anas izmaksas ir izmaksas, kas ļauj viÅiem efektÄ«vi konkurÄt programmatÅ«ras tirgÅ«. Å Ädu uzÅÄmumu piemÄrus var redzÄt
Galvenais kritÄrijs, lai saprastu, vai DevOps ir nepiecieÅ”ams: kÄda ir jÅ«su IT produktu vÄrtÄ«ba uzÅÄmumam un klientiem.
Ja uzÅÄmuma galvenais produkts, kas rada peļÅu, ir programmatÅ«ra, jums ir nepiecieÅ”ams DevOps. Un tas nav tik svarÄ«gi, ja jÅ«s nopelnÄt reÄlu naudu, izmantojot citus produktus. Tas ietver arÄ« tieÅ”saistes veikalus vai mobilÄs lietojumprogrammas ar spÄlÄm.
Jebkuras spÄles pastÄv, pateicoties finansÄjumam: tieÅ”am vai netieÅ”am no spÄlÄtÄjiem. VietnÄ Playgendary mÄs izstrÄdÄjam bezmaksas mobilÄs spÄles, kuru izveidÄ ir tieÅ”i iesaistÄ«ti vairÄk nekÄ 200 cilvÄku. KÄ mÄs izmantojam DevOps?
JÄ, tieÅ”i tas pats, kas aprakstÄ«ts iepriekÅ”. Es pastÄvÄ«gi sazinos ar izstrÄdÄtÄjiem un testÄtÄjiem, kÄ arÄ« vadu iekÅ”ÄjÄs apmÄcÄ«bas darbiniekiem par DevOps metodoloÄ£iju un rÄ«kiem.
Tagad mÄs aktÄ«vi izmantojam Jenkins kÄ CI/CD konveijera rÄ«ku visu montÄžas konveijera izpildei ar Unity un turpmÄkai izvietoÅ”anai App Store un Play tirgÅ«. VairÄk no klasiskÄ rÄ«ku komplekta:
- Asana - projektu vadÄ«bai. IntegrÄcija ar Jenkins ir konfigurÄta.
- Google Meet ā video sapulcÄm.
- Slack - saziÅai un dažÄdiem brÄ«dinÄjumiem, tostarp Jenkins paziÅojumiem.
- Atlassian Confluence - dokumentÄcijai un grupu darbam.
MÅ«su tuvÄkajos plÄnos ietilpst statiskÄs koda analÄ«zes ievieÅ”ana, izmantojot SonarQube, un automÄtiskas lietotÄja interfeisa testÄÅ”anas veikÅ”ana, izmantojot Selenium nepÄrtrauktÄs integrÄcijas posmÄ.
TÄ vietÄ, lai noslÄgtu
NobeigumÄ vÄlos ar Å”Ädu domu: lai kļūtu par augsti kvalificÄtu DevOps inženieri, ir ļoti svarÄ«gi iemÄcÄ«ties tieÅ”raidÄ komunicÄt ar cilvÄkiem.
DevOps inženieris ir komandas spÄlÄtÄjs. Un nekas cits. IniciatÄ«vai saziÅÄ ar kolÄÄ£iem jÄnÄk no viÅa, nevis kÄdu apstÄkļu ietekmÄ. DevOps speciÄlistam ir jÄredz un jÄierosina komandai labÄkais risinÄjums.
Un jÄ, jebkura risinÄjuma ievieÅ”ana prasÄ«s daudz diskusiju, un lÄ«dz beigÄm tas var mainÄ«ties vispÄr. PatstÄvÄ«gi attÄ«stoties, ierosinot un Ä«stenojot savas idejas, Å”Äds cilvÄks ir arvien vÄrtÄ«gÄks gan kolektÄ«vam, gan darba devÄjam. Kas galu galÄ atspoguļojas viÅa ikmÄneÅ”a atalgojuma apjomÄ vai papildu prÄmiju veidÄ.
Avots: www.habr.com