Kas ir DevOps un kad tas nav vajadzīgs

Kas ir DevOps un kad tas nav vajadzīgs

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ā video. 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.

Kas ir DevOps un kad tas nav vajadzīgs
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 — tehniskā filozofija.

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.

Kas ir DevOps un kad tas nav 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. Å”eit.

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

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster