Kas ir DevOps un kad tas nav vajadzīgs?

Kas ir DevOps un kad tas nav vajadzīgs?

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ļā Video. Vispirms no tā izcelÅ”u galvenos punktus, un tad dalÄ«Å”os savos novērojumos un pārdomās.

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.

Kas ir DevOps un kad tas nav vajadzīgs?
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 - tehnoloÄ£iju filozofija.

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.

Kas ir DevOps un kad tas nav vajadzīgs?

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 Å”eit.

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

Pievieno komentāru