Kes on DevOps?

Praegu on see tĂ”enĂ€oliselt turul ĂŒks kallimaid positsioone. Ümber „DevOps“ inseneride kĂ”rvalekallet ĂŒletab kĂ”ik mĂ”eldavad piirid, eriti veel Senior DevOps inseneride osas.
Töötan integreerimise ja automatiseerimise osakonna juhina, arva Ă€ra ingliskeelne lĂŒhend — DevOps Manager. Kas see ingliskeelne lĂŒhend peegeldab meie igapĂ€evaseid tegevusi — kahtlemata mitte, kuid venekeelne variant on antud juhul tĂ€psem. Minu töö iseloomust tulenevalt on loomulik, et pean kĂŒsitlema oma tulevasi meeskonnaliikmeid, ja viimase aasta jooksul on mul olnud umbes 50 kandidaati, lisaks nendele, kes tehti elimineerituks mu töötajate eelintervjuudel.

Otsime endiselt kolleege, kuna DevOps sildi all peitub vÀga suur erinevate inseneride kiht.

Allpool esitatud on minu isiklik arvamus, te ei pea sellega nÔustuma, kuid ma arvan, et see vÔib mÔjutada teie suhtumist teemasse. Hoolimata riskist kaotada populaarsus, avaldan oma arvamuse, kuna usun, et sellel on vÀÀrtus.

EttevĂ”tted mĂ”istavad DevOps insenere erinevalt ning kiireks vĂ€rbamiseks nimetavad nad neid kĂ”iki niimoodi. Situatsioon on ĂŒsna kummaline, sest ettevĂ”tted on valmis nendele inimestele maksma uskumatuid tasusid, saades enamikul juhtudel administreerijat vĂ”i tööriistade spetsialisti.

Aga kes need DevOps insenerid siis on?

Alustame ajaloost – Development Operations sĂŒndis jĂ€rgmiseks sammuks vĂ€ikeste meeskondade koostöö optimeerimisel, et suurendada toote tootmiskiirus, mis oli oodatav tulemus. Idee oli tugevdada arendustiimi teadmisi tootevĂ”imekuse ja -keskkonna haldamise protseduuridest ja lĂ€henemistest. TeisisĂ”nu, arendajal peab olema arusaam oma toote toimimisest erinevates tingimustes, ta peab teadma, kuidas oma toodet juurutada ning milliseid keskkonna omadusi reguleerida, et tĂ”sta jĂ”udlust. Nii hakkasid aja jooksul tekkima DevOps lĂ€henemisega arendajad. DevOps arendajad kirjutasid ehitus- ja pakkimiskĂ€sud, et lihtsustada oma tööd ja tootmisreĆŸiimis töötamist. Siiski, lahenduste arhitektuuri keerukus ja infrastruktuurikomponentide vastastikune mĂ”ju hakkas aja jooksul töösooritust halvendama, iga iteratsioon nĂ”udis sĂŒgavamate arusaamade hankimist erinevatest komponentidest, alandades arendaja tootlikkust lisakulude tĂ”ttu osade mĂ”istmiseks ja sĂŒsteemide kohandamiseks konkreetse ĂŒlesande jaoks. Arendaja enda tööjĂ”uhind kasvas, koos tootega, tĂ”usis ka nĂ”udlus uute arendajate jĂ€rele meeskonnas, kuna nende ĂŒlesannete katmiseks oli vaja ka „staar“ arendaja tĂ¶Ă¶ĂŒlesandeid, ning loomulikult muutusid „staarid“ jĂ€rjest vĂ€hem kĂ€ttesaadavaks. Samuti tasub mainida, et minu kogemuse jĂ€rgi on vĂ€hesed arendajad huvitatud operatsioonisĂŒsteemi tuuma pakettide töötlemise spetsiifikast, pakettide marsruutimise reeglitest, hosti turvalisuse aspektidest. Loogiline samm oli kaasata administraator, kes tunneb neid aspekte, ja panna sellised kohustused tema Ă”lgadele, mis tema kogemuse tĂ”ttu vĂ”imaldas saavutada samu nĂ€itajaid madalama hinnaga vĂ”rreldes „staar“ arendajaga. Sellised administraatorid viidati meeskonda ja nende peamine ĂŒlesanne oli hallata testimis- ja tootmiskeskkondi konkreetse meeskonna reeglite kohaselt, ressurssidega, mis olid sellele meeskonnale eraldatud. Nii saidki DevOps’id paljude arusaamisse.

Aja jooksul hakkasid sĂŒsteemiadministraatorid osaliselt vĂ”i tĂ€ielikult mĂ”istma selle konkreetse arendusmeeskonna vajadusi, muutes arendajate ja testijate elu lihtsamaks. Kuidas teha uuendusi nii, et ei peaks reede Ă”htul kontoris veetma, parandades juurutamisvigu? Aeg möödus ja nĂŒĂŒd tĂ”usid tĂ€htedeks sĂŒsteemiadministraatorid, kes mĂ”istsid, mida arendajad soovivad. MĂ”jude minimiseerimise eesmĂ€rgil hakati tutvustama juhtimistööriistu, kĂ”ik meenutasid vanu ja usaldusvÀÀrseid operatsioonisĂŒsteemi taseme isolatsiooni meetodeid, mis vĂ€hendasid turvanĂ”udeid, vĂ”rguhalduse ja hosti konfiguratsiooni laiemalt, ning seetĂ”ttu vĂ€henesid ka uutele „tĂ€htedele” esitatavad nĂ”udmised.

Ilmus «ime» — docker. Miks ime? Sest ĂŒhelt poolt nĂ”udis isolatsiooni loomine chroot vĂ”i jail, samuti OpenVZ, mĂ€rkimisvÀÀrseid teadmisi opsĂŒsteemist; teiselt poolt on meil nĂŒĂŒd tööriist, mis vĂ”imaldab lihtsalt luua isoleeritud rakenduskeskkonda ĂŒhe hosti sees, kus kĂ”ik vajalik on olemas, ja anda samuti arendajatele juhtimisĂ”igus tagasi, samas kui sĂŒsteemiadministraator peab haldama ainult ĂŒhte hosti, tagades selle turvalisuse ja kĂ”rge kĂ€ttesaadavuse — loogiline lihtsustus. Kuid progress ei seisa paigal ning sĂŒsteemid muutuvad jĂ€rjest keerulisemaks, komponente tuleb ĂŒha rohkem ja rohkem, ĂŒks host ei rahulda enam sĂŒsteemi vajadusi ning on vajalik klastrite ehitamine. Me naaseme taas sĂŒsteemiadministraatorite juurde, kes suudavad neid sĂŒsteeme ehitada.

Aasta aastalt tekivad erinevad sĂŒsteemid, mis lihtsustavad arendust ja/vĂ”i haldamist, ilmuvad orkestreerimissĂŒsteemid, mis on kasutajasĂ”bralikud kuni hetkeni, mil on vaja standardprotsessist kĂ”rvale kalduda. Mikroteenuste arhitektuur ilmus samuti eesmĂ€rgiga lihtsustada kĂ”ike eelmainitut — vĂ€hem seoseid, lihtsam haldamine. Oma kogemuses ei ole ma tĂ€ielikult mikroteenuste arhitektuuri kogenud, ĂŒtleksin, et see on 50–50 — 50 protsenti mikroteenuseid, mustad kastid, sisend tuli, töötlemine vĂ€lja, teised 50 — purustatud monoliit, teenused ei suuda teiste komponentidega eraldi töötada. See kĂ”ik seab taas piirangud nii arendajate kui ka administraatorite teadmistasemele.

Sellised „kiiged“ ekspertteadmiste tasemes sellele vĂ”i sellele ressursile jĂ€tkuvad siiani. Kuid me oleme veidi kĂ”rvale kaldunud, on palju aspekte, mida tasub arutada.

Build Engineer/Release Engineer

VĂ€ga kitsalt spetsialiseeritud insenerid, kes on tekkinud tarkvara ja selle vĂ€ljaannete koostamise protsesside standardiseerimise vahendina. Tundus, et nende nĂ”udlus langes pĂ€rast laialdaselt rakendatud Agile'i meetodite tulekut, kuid see ei vasta tĂ”ele. See spetsialiseerumine tekkis eesmĂ€rgiga standardiseerida tarkvara koostamine ja tarnimine tööstuslikus mastaabis, kasutades kĂ”igi ettevĂ”tte toodete jaoks standardseid tehnikaid. DevOps’i arendajate tulekuga kaotasid nad osaliselt oma ĂŒlesanded, kuna just arendajad hakkasid toodet tarnimiseks ette valmistama. Arvestades muutuvaid infrastruktuuri ja lĂ€henemisviise kiirele tarnimisele, mis sageli ei arvesta kvaliteeti, on nad ajaga muutunud tĂ”kkeks muutustele, kuna kvaliteedistandardite jĂ€rgimine aeglustab paratamatult tarnet. Nii on jĂ€rk-jĂ€rgult osa Build/Release inseneride funktsionaalsusest ĂŒle lĂ€inud sĂŒsteemiadministraatorite Ă”lgadele.

Ops’id on nii erinevad

Liigume edasi ja jÀlle suur hulk kohustusi ning kvalifitseeritud töötajate puudus sunnib meid ranget spetsialiseerumist otsima; nagu seened pÀrast vihma, ilmuvad erinevad Operations:

  • TechOps — sĂŒsteemihaldurid, tuntud ka kui HelpDesk insenerid
  • LiveOps — sĂŒsteemihaldurid, kes peamiselt vastutavad tootmiskeskkondade eest
  • CloudOps — sĂŒsteemihaldurid, kes on spetsialiseerunud avalikele pilvedele nagu Azure, AWS, GCP jne.
  • PlatOps/InfraOps/SysOps — infrastruktuuri sĂŒsteemihaldurid.
  • NetOps — vĂ”rguadministraatorid
  • SecOps — sĂŒsteemihaldurid, kes on spetsialiseerunud infosĂŒsteemide turvalisusele — PCI vastavus, CIS vastavus, patĆĄimise jne.

DevOps — (teoorias) isik, kes mĂ”istab pĂ”hjalikult kĂ”iki arendusprotsessi etappe — arendust, testimist, toote arhitektuuri, suudab hinnata turvariske, tunneb automatiseerimise meetodeid ja vahendeid vĂ€hemalt kĂ”rgemal tasemel, lisaks sellele mĂ”istab ka toote eelnĂ”u ja jĂ€relnĂ”u toetust. Isik, kes suudab tegutseda nii Operations'i kui ka Development'i huvides, mis vĂ”imaldab luua head koostööd nende kahe sammaste vahel. MĂ”istab, kuidas meeskondade tööplaane koostada ja kliendi ootusi juhtida.

Sarnaste tööde ja kohustuste tĂ€itmiseks peab isikul olema oskused mitte ainult arendus- ja testimisprotsesside, vaid ka toote infrastruktuuri haldamise ja ressursside planeerimise alal. DevOps ei saa olla piiratud ei IT, ei R&D ega isegi PMO-ga; tal peab olema mĂ”ju kĂ”igis nendes valdkondades — ettevĂ”tte tehniline direktor, Chief Technical Officer.

Kas see kehtib teie ettevĂ”tte kohta? — Kahtlen. Enamasti on see kas IT vĂ”i R&D.

Raha ja vĂ”imaluste puudumine mĂ”jutada vĂ€hemalt ĂŒhte neist kolmest tegevusvaldkonnast muudab probleemide tasakaalu suunas, kus neid muudatusi on lihtsam rakendada, nĂ€iteks tehniliste piirangute kohaldamine vĂ€ljaannetele "mustade" koodide korral vastavalt staatilise analĂŒĂŒsi sĂŒsteemide andmetele. See tĂ€hendab, et kui PMO seab rangelt ajakava funktsionaalsuse vabastamiseks, ei suuda R&D selle ajakava raames kvaliteetset tulemust esitada ja teeb seda, mis on vĂ”imalik, jĂ€ttes refaktoreerimise hilisemaks. IT-sse kuuluv DevOps blokeerib vĂ€ljaande tehniliste vahenditega. Puudulikkus Ă”igustes olukorda muuta, juhul, kui vastutavad töötajad, toob kaasa ĂŒlemÀÀrase vastutustunde selle eest, millele nad ei saa mĂ”jutada, eriti kui need töötajad mĂ”istavad ja nĂ€evad vigu ning kuidas neid parandada — "Õnn on teadmatuses", mis omakorda viib töötajate lĂ€bipĂ”lemiseni ja kaotamiseni.

DevOps ressursside turg

Vaadakem mitmeid DevOps ametikohti erinevatest ettevÔtetest.

Oleme valmis Teiega kohtuma, kui Te:

  1. Valdate Zabbixit ja tead, mis on Prometheus;
  2. Iptables;
  3. BASH aspirant;
  4. Ansible professor;
  5. Linux guru;
  6. Kas oskate kasutada debug'it ja leida koos arendajatega rakenduste (php/java/python) probleeme;
  7. Routing ei tekita teile paanikat;
  8. Pöörate suurt tĂ€helepanu sĂŒsteemi turvalisusele;
  9. Teete varukoopiaid "kÔigest ja kÔigest", samuti taastate selle "kÔige ja kÔigest" edukalt;
  10. Oska seadistada sĂŒsteemi maksimaalse vĂ€ljundi saavutamiseks minimaalse kasutamise korral;
  11. Seadistate replikatsioonid enne magamaminekut Postgresi ja MySQL jaoks;
  12. CI/CD seadistamine ja kohandamine on teie jaoks sama vajalik kui hommiku-/lÔuna-/Ôhtusöök.
  13. Teil on kogemus AWS-iga;
  14. Olete valmis koos ettevÔttega arenema;

Nii et:

  • 1 kuni 6 — sĂŒsteemiadministraator
  • 7 — veidi vĂ”rgu haldamist, mis ka kuulub sĂŒsteemiadministraatori, keskmise taseme alla
  • 8 — veidi turvalisust, mis on kindlasti vajalik keskmise taseme sĂŒsteemiadministraatori jaoks
  • 9-11 — Keskmine sĂŒsteemiadministraator
  • 12 — sĂ”ltuvalt ĂŒlesannetest kas keskmine sĂŒsteemiadministraator vĂ”i Build Engineer
  • 13 — virtualiseerimine — keskmine sĂŒsteemiadministraator vĂ”i CloudOps, laiendatud teadmised konkreetse teenuse kasutamisest hĂ”bustamise. rahade tĂ”husaks kasutamiseks ja hoolduse koormuse vĂ€hendamiseks

KokkuvĂ”tteks selle vaba töökoha kohta vĂ”ib öelda, et kandidaat peab olema vĂ€hemalt keskastme/seniorklassi sĂŒsteemiadministraator.

Muide, ei tohiks administreerimist liiga palju jagada Linuxi ja Windowsi vahel. Ma mĂ”istan, et nende kahe maailma teenused ja sĂŒsteemid erinevad, kuid alus on kĂ”igil sama ja iga endast lugupidav admin on tuttav mĂ”lema sĂŒsteemiga. Isegi kui pole tuttav, ei tohiks kogenud administraatoril olla raskusi selle valdkonnaga tutvuda.

Vaatame teist tööpakkumist:

  1. Kogemus kĂ”rge koormusega sĂŒsteemide loomisel;
  2. SuurepĂ€rased teadmised operatsioonisĂŒsteemist Linux, sĂŒsteemitehnoloogiast ja veebist (Nginx, PHP/Python, HAProxy, MySQL/PostgreSQL, Memcached, Redis, RabbitMQ, ELK);
  3. Kogemus virtualiseerimistehnoloogiatega (KVM, VMWare, LXC/Docker);
  4. Oskus skriptimiskeeltega;
  5. Arusaamine vÔrguprotokollide toimimisest;
  6. Arusaamine talitlushĂ€irete eest kaitstud sĂŒsteemide ehitamise pĂ”himĂ”tetest;
  7. Iseseisvus ja algatusvÔime;

AnalĂŒĂŒsime:

  • 1 — Senior System Administrator
  • 2 — SĂ”ltuvalt mĂ”istest, mis sellele virnale pannakse — Middle/Senior System Administrator
  • 3 — Töö kogemus vĂ”ib tĂ€hendada ka — 'Kluster ei olnud tĂ”stetud, kuid loomise ja virtuaalmasinate haldamisega tegeles, oli ĂŒks Docker host, konteinerite juurde pÀÀsemine oli seadistatud' — Middle System Administrator
  • 4 — Noorem sĂŒsteemiadministraator — jah, admin, kes ei oska kirjutada elementaarseid automatiseerimisskripte, olenemata keelest, ei ole admin — lihtsalt tehnik.
  • 5 — Keskmine sĂŒsteemiadministraator
  • 6 — Vanem sĂŒsteemiadministraator

KokkuvĂ”ttes — Keskmine/Vanem sĂŒsteemiadministraator

Veel ĂŒks:

  1. DevOps-i kogemus;
  2. Kogemus ĂŒhe vĂ”i mitme toote kasutamisel CI/CD protsesside kujundamiseks. Gitlab CI on eelis;
  3. Töötamine konteinerite ja virtualiseerimisega; Kui olete kasutanud Dockerit – tore, aga kui ka Kuberneteset – suurepĂ€rane!
  4. Kogemus agiilmeeskonnas;
  5. Mingisuguse programmeerimiskeele tundmine;

Vaadake:

  • 1 — Hmm
 Mida poisid silmas peavad? =) TĂ”enĂ€oliselt ei tea nad isegi, mis selle taga peidus on
  • 2 — Ehitusinsener
  • 3 — Keskmine sĂŒsteemiadministraator
  • 4 — Pehmed oskused, sellega seni ei tegeleme, kuigi agiil on veel ĂŒks asi, mida tĂ”lgendatakse vastavalt mugavusele.
  • 5 — Liialt laialivalguv — see vĂ”ib olla skriptikeel vĂ”i kompileeritav. Huvi, kas Pascal ja Basic, millega koolis kirjutati, sobivad neile? =)

Sooviksin ka mĂ€rkida 3. punkti osas, et tugevdada arusaamist, miks seda punkti katab sĂŒsteemiadministraator. Kubernetes on vaid orkestreerimise tööriist, mis ĂŒmbritseb otse kĂ€ske vĂ”rgukaartidele ja virtualiseerimise/se isolatsiooni hostidele paariks kĂ€skuks ning vĂ”imaldab suhtlemise nendega abstraktseks teha, ja ongi kĂ”ik. NĂ€iteks vĂ”tame ehitusraamistiku Make, mida ma muide raamistiks ei pea. Jah, ma tean, et on hirmus populaarsed neid panna Make'isse, kus on vaja ja kus ei ole — nĂ€iteks Maven'i ĂŒmber Make'i panna, tĂ”siselt?
Tegelikult on Make lihtsalt ĂŒmbritseja shell'i kohal, mis lihtsustab just kompileerimise, lingimise ja kompileerimise keskkonnakĂ€ske, tĂ€pselt nagu k8s.

Kord intervjueerisin poissi, kes kasutas k8s oma töös OpenStack'i peal, ja ta rÀÀkis, kuidas ta teenuseid seal rakendas, kuid kui kĂŒsisin just OpenStack'i kohta, selgus, et seda haldavad sĂŒsteemiadministraatorid. Kas te tĂ”esti arvate, et inimene, kes on OpenStack'i ĂŒles seadnud, olenemata sellest, millist platvormi ta taga kasutab, ei suuda kasutada k8s?=)
See kandidaat ei ole tegelikult DevOps, vaid hoopis SĂŒsteemi Administraator ja, et olla tĂ€psem, Kubernetes Administrator.

KokkuvĂ”ttes on Middle/Seniori SĂŒsteemi Administratiivne positsioon talle piisav.

Kui palju grammi peaks kaaluma.

Pakutavate palkade hajumine sellel positsioonil on 90k-200k.
NĂŒĂŒd tahaksin tuua paralleeli SĂŒsteemi Administratiivsete ja DevOps Engineeride rahalistest hĂŒvedest.

PÔhimÔtteliselt vÔib kogemuste pÔhjal gradi jagada, ehkki see ei ole tÀpne, aga artikli eesmÀrkide jaoks piisab.

Kogemus:

  1. kuni 3 aastat — Junior
  2. kuni 6 aastat — Middle
  3. ĂŒle 6 aasta — Senior

Töötajate otsimise sait pakub:
SĂŒsteemi administraatorid:

  1. Junior — 2 aastat — 50k rubla.
  2. Middle — 5 aastat — 70k rubla.
  3. Senior — 11 aastat — 100k rubla.

DevOps Engineerid:

  1. Junior — 2 aastat — 100k rubla.
  2. Middle — 3 aastat — 160k rubla.
  3. Senior — 6 aastat — 220k rubla.

DevOps'i kogemuse puhul kasutati staaĆŸi, mis mingil moel puudutas SDLC-d.

Ülaltoodust tuleneb, et ettevĂ”tted ei vajagi tegelikult DevOps'i ning nad vĂ”iksid sÀÀsta vĂ€hemalt 50% algselt planeeritud kuludest, kui palkaksid hoopis administraatori. Veelgi enam, nad vĂ”iksid selgemini mÀÀratleda soovitud isiku kohustused ja kiiremini rahuldada vajaduse. Samuti ei tohiks unustada, et kohustuste selge jaotus vĂ€hendab personali nĂ”udmisi ning loob kollektiivis soodsama Ă”hkkonna, tĂ€nu segaduse puudumisele. Enamiku töökuulutuste puhul on tĂ€idetud utiliitide ja DevOps'i siltidega, kuigi need ei pĂ”hine tĂ”eliselt DevOps Engineer'i nĂ”udmisel, vaid hoopis tööriista administraatori soovidel.

DevOps insenerite koolitusprotsess on samuti piiratud vaid spetsiifiliste tööde ja utiliitide komplektiga, mis ei anna ĂŒldist arusaama protsessidest ja nende seostest. See on kindlasti hea, kui inimene suudab kasutada Terraformi, et 10 minutiga AWS EKS-i vĂ€lja tuua koos Fluentd kĂŒlgkariga selles klastris ja AWS ELK stiilis logimisĂŒsteemiga, kasutades vaid ĂŒhte kĂ€sku konsoolis. Kuid kui ta ei saa aru logide töötlemise pĂ”himĂ”ttest ja nende vajalikkusest, ei tea, kuidas neid metoodikaid koguda ning teenuse degradatsiooni jĂ€lgida, jÀÀb ta lihtsalt utiliite kasutavaks tehnikuks.

KĂŒll aga toob nĂ”udlus endaga kaasa pakkumise ning nĂ€eme ÀÀrmiselt ĂŒlekuumenenud DevOps positsioonide turgu, kus nĂ”udmised ei vasta tegelikele rollidele ja vĂ”imaldavad sĂŒsteemi administreerijatel rohkem teenida.

Nii kes need siis on? DevOps’id vĂ”i ahned sĂŒsteemi administreerijad? =)

Kuidas edasi elada?

Tööandjatele — tĂ€psustage nĂ”udmisi ja otsige just neid, kellel on tegelikult vajalikud oskused, mitte Ă€rge pillake silte. Kui te ei tea, millega DevOps tegeleb, ei ole nad teile siis vajalikud.

Töötajad — Õppige. JĂ€tkuvalt tĂ€iustage oma teadmisi, vaadake protsesside ĂŒldpilti ja jĂ€lgige teed seatud eesmĂ€rgini. VĂ”ite saada kelleks iganes, tuleb vaid pingutada.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster