
DevOps tÄma pÄdÄjo gadu laikÄ ir kļuvusi ļoti populÄra. Daudzi vÄlas tajÄ iekļauties, taÄu, kÄ pierÄda prakse, bieži vien tas notiek tikai algu lÄ«meÅa dÄļ.
Daži savos CV norÄda DevOps, lai gan ne vienmÄr zina un saprot termina bÅ«tÄ«bu. KÄds uzskata, ka, apgÅ«stot Ansible, GitLab, Jenkins, Terraform un tamlÄ«dzÄ«gas programmas (sarakstu var turpinÄt pÄc patikas), viÅÅ” uzreiz kļūs par ādevopsā. Tas, protams, tÄ nav.
PÄris pÄdÄjo gadu es galvenokÄrt strÄdÄju pie DevOps ievieÅ”anas dažÄdÄs uzÅÄmumos. Pirms tam vairÄk nekÄ 20 gadus strÄdÄju amata pozÄ«cijÄs no sistÄmu administratora lÄ«dz IT direktoram. Å obrÄ«d esmu DevOps Lead Engineer uzÅÄmumÄ Playgendary.
Kas ir DevOps
Ideja uzrakstÄ«t rakstu radÄs pÄc kÄrtÄjÄ jautÄjuma: ākas ir DevOps?ā. JoprojÄm nav nostiprinÄjuÅ”Äs definÄ«cijas par to, kas tas ir vai kas tas ir. Daļa atbilžu jau ir Å”ajÄ . Vispirms izceltu galvenos punktus no tÄ, bet pÄc tam dalīŔos ar saviem novÄrojumiem un domÄm.
DevOps nav speciÄlists, kuru varÄtu pieÅemt darbÄ, nav utilÄ«tu komplekts un ne arÄ« attÄ«stÄ«tÄju nodaļa ar inženieriem.
DevOps ir filozofija un metodoloģija.
Citiem vÄrdiem sakot, tÄ ir prakses kopums, kas palÄ«dz aktÄ«vi sadarboties izstrÄdÄtÄjiem ar sistÄmu administratoriem. Tas nozÄ«mÄ saistÄ«t un integrÄt darba procesus savÄ starpÄ.
Ar DevOps parÄdīŔanos speciÄlistu struktÅ«ra un lomas palika tÄdas paÅ”as (ir izstrÄdÄtÄji, ir inženieri), bet mainÄ«jÄs mijiedarbÄ«bas noteikumi. Robežas starp nodaļÄm kļuva izplÅ«duÅ”as.
DevOps mÄrÄ·us var aprakstÄ«t trÄ«s punktos:
- ProgrammatÅ«rai jÄatjaunojas regulÄri.
- ProgrammatÅ«ra jÄsagatavo Ätri.
- ProgrammatÅ«rai jÄbÅ«t viegli ievieÅ”amai un Ä«sÄ laikÄ.
DevOps nav viena universÄla rÄ«ka. IestatÄ«t, instalÄt un apgÅ«t vairÄkus produktus nenozÄ«mÄ, ka uzÅÄmumÄ ir parÄdÄ«jies DevOps. RÄ«ku ir ļoti daudz, un tie visi tiek izmantoti dažÄdos posmos, bet tie kalpo vienam kopÄ«gam mÄrÄ·im.

Un tas ir tikai daļa no DevOps rīkiem
VairÄk nekÄ divus gadus esmu veicis intervijas cilvÄkiem uz DevOps inženiera amatu un man ir pazÄ«stams apziÅa, cik svarÄ«gi ir skaidri saprast termina bÅ«tÄ«bu. Ir sakrÄjies specifisks pieredzes, novÄrojumu un domas kopums, ko vÄlos dalÄ«ties.
No interviju pieredzes es redzu tÄdu ainu: speciÄlistiem, kuri uzskata DevOps par amatu, parasti ir nesapraÅ”ana ar kolÄÄ£iem.
Bija spilgts piemÄrs. Uz interviju ieradÄs jauns cilvÄks ar daudz gudriem vÄrdiem CV. PÄdÄjos trÄ«s darba vietÄs viÅam bija pieredze 5-6 mÄneÅ”i. No diviem start-up uzÅÄmumiem aizgÄja, jo "neizdevÄs". Bet par treÅ”o kompÄniju viÅÅ” teica, ka tur neviens viÅu nesaprot: izstrÄdÄtÄji raksta kodu Windows, bet direktors liek Å”o kodu "iesaiÅot" parastajÄ Docker un iekļaut CI/CD cauruļvadÄ. Puisis daudz negatÄ«va pastÄstÄ«ja par savu paÅ”reizÄjo darba vietu un kolÄÄ£iem ā tÄ tik gribÄjÄs atbildÄt: "TÄ tu ziloÅu nepÄrdosi."
PÄc tam es viÅam uzdevu jautÄjumu, kurÅ” manÄ sarakstÄ ir viens no pirmajiem katram kandidÄtam.
ā Ko personÄ«gi tev nozÄ«mÄ DevOps?
ā VispÄr vai kÄ es to uztveru?
Man interesÄja viÅa personÄ«gÄ viedoklis. ViÅÅ” zinÄja teoriju un termina izcelÅ”anos, bet kategoriski ar to nepiekrÄ«t. ViÅÅ” uzskatÄ«ja, ka DevOps ā ir amats. Å eit slÄpjas viÅa problÄmu sakne. TÄpat kÄ citiem speciÄlistiem ar tÄdu paÅ”u uzskatu.
Darba devÄji, noklausÄ«juÅ”ies par "DevOps burvÄ«bu", vÄlas atrast cilvÄku, kurÅ” nÄks un Å”o "burvÄ«bu" radÄ«s. Bet pretendenti no kategorijas "DevOps ā tas ir amats" nesaprot, ka ar tÄdu pieeju viÅi nevarÄs attaisnot cerÄ«bas. Un vispÄr, viÅi savÄ CV uzrakstÄ«juÅ”i DevOps, jo tas ir trends un par to maksÄ daudz.
DevOps metodoloģija un filozofija
MetodoloÄ£ija var bÅ«t teorÄtiska un praktiska. MÅ«su gadÄ«jumÄ ā otrÄ. KÄ jau iepriekÅ” minÄju, 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, tÄ var ievÄrojami atŔķirties. Tas to padara ne labÄku, ne sliktÄku.
DevOps metodoloÄ£ija ā tas ir tikai instruments mÄrÄ·u sasniegÅ”anai.
Tagad par to, kas ir DevOps filozofija. Un tas, iespÄjams, ir visgrÅ«tÄkais jautÄjums.
FormulÄt Ä«su un kodolÄ«gu atbildi ir diezgan grÅ«ti, jo tas vÄl nav formalizÄts. Un tÄ kÄ DevOps filozofijas piekritÄji vairÄk nodarbojas ar praksi ā filozofÄÅ”anai vienkÄrÅ”i nav laika. TomÄr tas ir ļoti svarÄ«gs process. Un tieÅ”i saistÄ«ts ar inženierzinÄtnÄm. Ir pat specializÄta zinÄÅ”anu joma ā .
ManÄ augstskolÄ Å”Äds priekÅ”mets nebija, tÄdÄļ nÄcÄs visu apgÅ«t patstÄvÄ«gi, izmantojot dažus materiÄlus, ko izdevÄs atrast 90. gados. Å Ä« tÄma nav obligÄta inženieru izglÄ«tÄ«bÄ, tÄpÄc arÄ« atbildes formalizÄcija trÅ«kst. TaÄu tie cilvÄki, kuri nopietni iegremdÄjas DevOps pasaulÄ, sÄk sajust kaut kÄdu "garu" vai "neapzinÄtu visaptveramÄ«bu" visiem uzÅÄmuma procesiem.
SavÄ pieredzÄ es mÄÄ£inÄju formalizÄt dažus Ŕīs filozofijas "postulÄtus". IeguvÄs Å”Äds rezultÄts:
- DevOps nav kaut kas patstÄvÄ«gs, ko varÄtu izdalÄ«t atseviÅ”Ä·Ä zinÄÅ”anu vai darbÄ«bas virzienÄ.
- Visiem uzÅÄmuma darbiniekiem, plÄnojot savu darbÄ«bu, jÄvadÄs pÄc DevOps metodoloÄ£ijas.
- DevOps skar visus procesus uzÅÄmumÄ.
- DevOps pastÄv, lai samazinÄtu laika izdevumus visos procesos uzÅÄmumÄ, nodroÅ”inot tÄ pakalpojumu attÄ«stÄ«bu un maksimÄlu klienta komfortu.
- DevOps, mÅ«sdienu valodÄ, ir proaktÄ«va katra uzÅÄmuma darbinieka nostÄja, kas vÄrsta uz laika izmaksu samazinÄÅ”anu un apkÄrtÄjo IT produktu kvalitÄtes uzlaboÅ”anu.
DomÄju, ka mani "postulÄti" ir atseviŔķa tÄma diskusijÄm. Bet tagad ir no kÄ atkÄpties.
Ko dara DevOps
Å eit svarÄ«gÄkÄ vÄrda ir komunikÄcija. Ä»oti daudz komunikÄciju, kuru iniciatoram jÄbÅ«t tieÅ”i tam paÅ”am DevOps inženierim. KÄpÄc tÄ? TÄpÄc, ka tÄ ir filozofija un metodoloÄ£ija, un tikai pÄc tam inženiertehniskÄs zinÄÅ”anas.
Par Rietumu darba tirgu runÄt ar 100% pÄrliecÄ«bu nevaru. Bet par DevOps tirgu KrievijÄ zinu diezgan daudz. Papildus simtiem sarunu, pÄdÄjo pusotru gadu laikÄ esmu piedalÄ«jies simtÄ tehniskajos presailos pakalpojumam "DevOps ievieÅ”ana" lieliem Krievijas uzÅÄmumiem un bankÄm.
Lai gan DevOps KrievijÄ vÄl ir jauna, bet jau aktuÄla tÄma. Cik es zinu, tikai MaskavÄ 2019. gadÄ bija vairÄk nekÄ 1000 Å”o speciÄlistu trÅ«kums. Un vÄrds Kubernetes darba devÄjiem ir gandrÄ«z tÄds pats kÄ sarkans dvielis bullim. Å Ä« instrumenta piekritÄji ir gatavi to izmantot pat tur, kur tas nav nepiecieÅ”ams un nav ekonomiski izdevÄ«gi. Darba devÄjs ne vienmÄr saprot, kad ir saprÄtÄ«gÄk izmantot ko citu, un, ja Kubernetes klasteris tiek pienÄcÄ«gi izstrÄdÄts, tÄ izmaksas ir 2-3 reizes augstÄkas nekÄ parastÄs klastera struktÅ«ras izveide. Izmantojiet to tur, kur tas patieÅ”Äm ir vajadzÄ«gs.

DevOps ievieÅ”ana no naudas viedokļa ir dÄrga. Un tÄ ir pamatota tikai tur, kur tas dod ekonomisku labumu citÄs jomÄs, nevis tikai paÅ”am par sevi.
DevOps inženieri faktiski ir pirmatklÄjÄji ā tieÅ”i viÅiem vispirms jÄsagÄdÄ Å”Ä« metodoloÄ£ija uzÅÄmumÄ un jÄizveido procesi. Lai tas bÅ«tu veiksmÄ«gi, speciÄlistam pastÄvÄ«gi jÄinteraktÄ ar darbiniekiem un kolÄÄ£iem visos lÄ«meÅos. KÄ es parasti saku, DevOps ievieÅ”anÄ jÄiesaista visi uzÅÄmuma darbinieki ā no tÄ«rÄ«tÄja lÄ«dz CEO. Un tas ir obligÄts nosacÄ«jums. Ja pat visjaunÄkais komandas dalÄ«bnieks nezina un nesaprot, kas ir DevOps un kÄpÄc tiek veiktas tÄs vai citas organizatoriskÄs darbÄ«bas, tad veiksmÄ«ga ievieÅ”ana nebÅ«s iespÄjama.
ArÄ« DevOps inženierim jÄizmanto administratÄ«vie resursi no laika uz laiku. PiemÄram, lai pÄrvarÄtu āvides pretestÄ«buā ā kad komanda nav gatava pieÅemt DevOps instrumentus un metodoloÄ£iju.
IzstrÄdÄtÄjam jÄraksta tikai kods un testi. TÄdÄļ viÅam nav nepiecieÅ”ams super jaudÄ«gs klÄpjdators, uz kura viÅÅ” izveidos un atbalstÄ«s visu projekta infrastruktÅ«ru lokÄli. PiemÄram, front-end izstrÄdÄtÄjs glabÄ savÄ klÄpjdatorÄ visus lietojumprogrammas elementus, tostarp datubÄzi, S3 emulatoru (minio) un citus. Tas nozÄ«mÄ, ka viÅÅ” tÄrÄ daudz laika, lai uzturÄtu Å”o lokÄlo infrastruktÅ«ru un vienatnÄ cÄ«nÄs ar visÄm Å”Ädas risinÄjuma problÄmÄm. TÄ vietÄ, lai izstrÄdÄtu kodu priekÅ”Ä. Å Ädi cilvÄki var izrÄdÄ«t lielu pretestÄ«bu jebkurÄm izmaiÅÄm.
TomÄr ir komandas, kuras, tieÅ”i otrÄdi, ir priecÄ«gas par jaunu rÄ«ku un metožu ievieÅ”anu un aktÄ«vi piedalÄs Å”ajÄ procesÄ. Lai arÄ« pat Å”ÄdÄ gadÄ«jumÄ saziÅa starp DevOps inženieri un komandu netiek atcelta.
Kad DevOps nav nepiecieŔams
PastÄv situÄcijas, kad DevOps nav nepiecieÅ”ams. Tas ir fakts, ko jÄizprot un jÄpieÅem.
Vispirms tas attiecas uz jebkurÄm kompÄnijÄm (Ä«paÅ”i mazo uzÅÄmumu), kad to peļÅa tieÅ”i nav atkarÄ«ga no IT produktiem, kas nodroÅ”ina informÄcijas pakalpojumus klientiem. Un Å”eit nerunÄjam par uzÅÄmuma mÄjaslapu, vai tÄ bÅ«tu statiska 'vizÄ«tkartÄ«te' vai ar dinamiskiem jaunumu blokiem utt.
DevOps ir nepiecieÅ”ams, ja no Å”iem informÄcijas pakalpojumiem, kas saistÄ«ti ar klientu, to kvalitÄtes un mÄrÄ·tiecÄ«bas ir atkarÄ«ga jÅ«su klienta apmierinÄtÄ«ba un vÄlme atgriezties pie jums.
Skaidrs piemÄrs ir viens pazÄ«stams banka. UzÅÄmumam nav ierastu klientu biroju, dokumentu apgrozÄ«jums notiek caur pastu vai kurjeriem, un daudzi darbinieki strÄdÄ no mÄjÄm. UzÅÄmums vairs nav vienkÄrÅ”i banka, un, manuprÄt, tas ir pÄrvÄrties par IT uzÅÄmumu ar attÄ«stÄ«tÄm DevOps tehnoloÄ£ijÄm.
Daudz citu piemÄru un lekciju var atrast tematisko meetup un konferenÄu ierakstos. Daļu no tiem es apmeklÄju personÄ«gi ā tas ir ļoti noderÄ«gs pieredze tiem, kas vÄlas attÄ«stÄ«ties Å”ajÄ virzienÄ. LÅ«k, saites uz YouTube kanÄliem ar labÄm lekcijÄm un materiÄliem par DevOps:
Tagad paskatieties uz savu uzÅÄmumu un padomÄjiet par to: cik stipri jÅ«su uzÅÄmums un tÄ peļÅa ir atkarÄ«ga no IT produktiem, kas nodroÅ”ina mijiedarbÄ«bu ar klientu?
Ja jÅ«su uzÅÄmums tirgo zivi mazÄ veikalÄ un vienÄ«gais IT produkts ir divas 1C konfigurÄcijas: UzÅÄmums (GrÄmatvedÄ«ba un UNF), tad maz ir jÄgas runÄt par DevOps.
Ja jÅ«s strÄdÄjat lielÄ tirdzniecÄ«bas un ražoÅ”anas uzÅÄmumÄ (piemÄram, ražojat medÄ«bu ieroÄus), tad ir vÄrts padomÄt. JÅ«s varat izgudrot iniciatÄ«vu un ziÅot savai vadÄ«bai par DevOps ievieÅ”anas perspektÄ«vÄm. Un, protams, vadÄ«t Å”o procesu. ProaktÄ«va pozÄ«cija ir viens no svarÄ«giem DevOps filozofijas postulÄtiem.
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 nesazinÄs ar klientiem. PiemÄram, dažas automobiļu ražotÄju un automaŔīnu bÅ«ves kompÄnijas. Å obrÄ«d neesmu pÄrliecinÄts, bet no savas iepriekÅ”ÄjÄs pieredzes zinu, ka daudzus gadus visa mijiedarbÄ«ba ar klientiem notika, izmantojot e-pastu un telefonu.
ViÅu klienti ir ierobežots saraksts ar automaŔīnu dÄ«leriem. Un katram pievienots speciÄlists no ražotÄja. Visi iekÅ”ÄjÄ dokumentu apgrozÄ«jums notiek, izmantojot ERP SAP. IekÅ”Äjie darbinieki bÅ«tÄ«bÄ ir informÄcijas sistÄmas klienti. TaÄu Ŕīs informÄciju sistÄmas pÄrvaldÄ«ba tiek veikta, izmantojot klasiskus klasteru sistÄmu vadÄ«bas lÄ«dzekļus. Tas izslÄdz iespÄju izmantot DevOps praksi.
SecinÄjums: lÄ«dzÄ«giem uzÅÄmumiem DevOps ievieÅ”ana nav kritiska, 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. ViÅi uzskata, ka DevOps ievieÅ”anas izdevumi 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 jums nepiecieÅ”ams DevOps: cik liela nozÄ«me ir jÅ«su IT produktiem uzÅÄmumam un klientiem.
Ja uzÅÄmuma galvenais peļÅas produkts ir programmatÅ«ra ā jums ir nepiecieÅ”ams DevOps. Un nav tik svarÄ«gi, ja reÄlas naudas pelnīŔana notiek, izmantojot citus produktus. Å eit var iekļaut arÄ« tieÅ”saistes veikalus vai mobilÄs spÄles.
Jebkurai spÄlei pastÄvÄt var tikai pateicoties finansÄjumam: tieÅ”ajam vai netieÅ”ajam no spÄlÄtÄjiem. Playgendary mÄs izstrÄdÄjam bezmaksas mobilÄs spÄles, kuru tieÅ”Ä izstrÄdÄ piedalÄs vairÄk nekÄ 200 cilvÄki. KÄ mÄs izmantojam DevOps?
TieÅ”i tÄpat, kÄ aprakstÄ«ts iepriekÅ”. Es pastÄvÄ«gi sazinÄjos ar izstrÄdÄtÄjiem un testÄtÄjiem, veicu iekÅ”Äju darbinieku apmÄcÄ«bu par metodoloÄ£iju un DevOps rÄ«kiem.
PaÅ”laik mÄs aktÄ«vi izmantojam Jenkins kÄ CI/CD pipelines rÄ«ku, lai izpildÄ«tu visus montÄžas konveijerus ar Unity un veiktu turpmÄko izvietoÅ”anu App Store un Play Market. VÄl no klasiskÄ rÄ«ku komplekta:
- Asana ā projektu pÄrvaldÄ«bai. IestatÄ«ta integrÄcija ar Jenkins.
- Google Meet ā video sapulÄu rÄ«koÅ”anai.
- Slack ā saziÅai un dažÄdiem paziÅojumiem, tostarp paziÅojumiem no Jenkins.
- Atlassian Confluence ā dokumentÄÅ”anai un grupas darbam.
NÄkotnÄ plÄnosim ieviest statisko koda analÄ«zi, izmantojot SonarQube, un veikt automatizÄtu UI testÄÅ”anu, izmantojot Selenium, Continuous Integration posmÄ.
NoslÄgumÄ
VÄlos pabeigt ar sekojoÅ”o domu: lai kļūtu par augstas kvalifikÄcijas DevOps inženieri, ir dzÄ«votspÄjÄ«gi nepiecieÅ”ams iemÄcÄ«ties dzÄ«vot saziÅu ar cilvÄkiem.
DevOps inženieris ā komandas spÄlÄtÄjs. Un nekÄdÄ citÄ veidÄ. IniciatÄ«vai saziÅÄ ar kolÄÄ£iem jÄiznÄk no paÅ”a, nevis kÄdu apstÄkļu ietekmÄ. DevOps speciÄlistam jÄspÄj saskatÄ«t un piedÄvÄt labÄko risinÄjumu komandai.
Un jÄ, jebkura risinÄjuma ievieÅ”ana prasÄ«s daudz diskusiju, un gala rezultÄts var pat mainÄ«ties. PaÅ”attÄ«stoties, piedÄvÄjot un Ä«stenojot savas idejas ā Å”Äds cilvÄks kļūst arvien vÄrtÄ«gÄks gan komandai, gan darbaDevÄjam. Tas galu galÄ atspoguļojas arÄ« viÅa mÄneÅ”a atlÄ«dzÄ«bas apjoma vai papildu prÄmiju veidÄ.
Avots: habr.com
