Kto je DevOps a kedy nie je potrebný?

Kto je DevOps a kedy nie je potrebný?

DevOps sa v posledných rokoch stala veľmi populárnou témou. Mnoho ľudí sníva o vstupe do nej, no ako ukazuje prax, často len kvôli výške platov.

Niektorí ľudia uvádzajú DevOps vo svojom životopise, hoci nie vždy vedia alebo nechápu podstatu tohto termínu. Niektorí si myslia, že po preštudovaní Ansible, GitLab, Jenkins, Terraform a podobne (v zozname možno pokračovať podľa chuti) sa okamžite stanete “devopsistom”. To, samozrejme, nie je pravda.

Posledných pár rokov sa venujem najmä implementácii DevOps v rôznych spoločnostiach. Predtým pracoval viac ako 20 rokov na pozíciách od systémového administrátora až po IT riaditeľa. V súčasnosti vedúci inžinier DevOps v Playgendary.

Kto je DevOps

Nápad napísať článok vznikol po ďalšej otázke: “kto je DevOps?” Dodnes neexistuje zavedený výraz pre to, čo alebo kto to je. Niektoré z odpovedí sú už v tomto video. Najprv z nej vyzdvihnem hlavné body a potom sa podelím o svoje postrehy a myšlienky.

DevOps nie je špecialista, ktorého si možno najať, nie je to súbor nástrojov a nie oddelenie vývojárov s inžiniermi.

DevOps je filozofia a metodológia.

Inými slovami, je to súbor postupov, ktoré pomáhajú vývojárom aktívne komunikovať so správcami systému. Teda prepájať a integrovať pracovné procesy do seba.

S príchodom DevOps zostala štruktúra a úlohy špecialistov rovnaké (sú vývojári, existujú inžinieri), ale zmenili sa pravidlá interakcie. Hranice medzi oddeleniami sa zotreli.

Ciele DevOps možno opísať v troch bodoch:

  • Softvér je potrebné pravidelne aktualizovať.
  • Softvér sa musí robiť rýchlo.
  • Softvér by mal byť nasadený pohodlne a v krátkom čase.

Neexistuje jediný nástroj pre DevOps. Konfigurácia, dodávka a naštudovanie niekoľkých produktov neznamená, že sa v spoločnosti objavil DevOps. Existuje veľa nástrojov a všetky sa používajú v rôznych fázach, ale slúžia na jeden spoločný účel.

Kto je DevOps a kedy nie je potrebný?
A to je len časť nástrojov DevOps

Už viac ako 2 roky robím rozhovory s ľuďmi na pozíciu DevOps inžinier a uvedomil som si, aké dôležité je jasne pochopiť podstatu tohto pojmu. Nahromadili sa mi konkrétne skúsenosti, postrehy a myšlienky, o ktoré sa chcem podeliť.

Zo skúseností s pohovorom vidím nasledujúci obrázok: špecialisti, ktorí považujú DevOps za pracovnú pozíciu, majú zvyčajne nedorozumenia s kolegami.

Bol tam nápadný príklad. Mladý muž prišiel na pohovor s množstvom šikovných slov vo svojom životopise. V posledných troch zamestnaniach mal prax 5-6 mesiacov. Opustil som dva startupy, pretože sa „nerozbehli“. Ale o tretej spoločnosti povedal, že mu tam nikto nerozumie: vývojári píšu kód na Windows a riaditeľ núti tento kód „zabaliť“ do bežného Dockera a integrovať ho do potrubia CI/CD. Ten chlap povedal veľa negatívnych vecí o svojom súčasnom pracovisku a jeho kolegoch - chcel som len odpovedať: "Takže nepredáte slona."

Potom som mu položil otázku, ktorá je vysoko na mojom zozname pre každého kandidáta.

— Čo pre vás osobne znamená DevOps?
- Všeobecne alebo ako to vnímam?

Zaujímal ma jeho osobný názor. Poznal teóriu a pôvod tohto pojmu, ale ostro s nimi nesúhlasil. Veril, že DevOps je pracovný názov. Tu je koreň jeho problémov. Rovnako ako ďalší špecialisti s rovnakým názorom.

Zamestnávatelia, ktorí veľa počuli o „kúzli DevOps“, chcú nájsť osobu, ktorá príde a vytvorí toto „kúzlo“. A uchádzači z kategórie “DevOps is a job” nechápu, že s týmto prístupom nedokážu naplniť očakávania. A vo všeobecnosti si DevOps napísali do životopisu, pretože je to trend a veľa za to platia.

Metodológia a filozofia DevOps

Metodika môže byť teoretická a praktická. V našom prípade je to to druhé. Ako som spomenul vyššie, DevOps je súbor postupov a stratégií používaných na dosiahnutie stanovených cieľov. A v každom prípade, v závislosti od obchodných procesov spoločnosti, sa môže výrazne líšiť. Čo to nezlepší ani nezhorší.

Metodika DevOps je len prostriedkom na dosiahnutie cieľov.

Teraz o tom, čo je filozofia DevOps. A toto je asi najťažšia otázka.

Je dosť ťažké sformulovať krátku a výstižnú odpoveď, pretože ešte nie je formalizovaná. A keďže vyznávači filozofie DevOps sa viac venujú praxi, na filozofovanie jednoducho nie je čas. Ide však o veľmi dôležitý proces. Navyše priamo súvisí s inžinierskou činnosťou. Existuje dokonca aj špecializovaná oblasť vedomostí - filozofia technológie.

Na mojej univerzite taký predmet nebol, všetko som si musel naštudovať sám pomocou materiálov, ktoré som našiel v 90. rokoch. Téma je voliteľná pre inžinierske vzdelanie, preto chýba formalizácia odpovede. Ale tí ľudia, ktorí sú vážne ponorení do DevOps, začínajú pociťovať určitú „ducha“ alebo „nevedomú komplexnosť“ všetkých procesov spoločnosti.

Pomocou vlastných skúseností som sa pokúsil formalizovať niektoré „postuláty“ tejto filozofie. Výsledok je nasledujúci:

  • DevOps nie je niečo nezávislé, čo možno rozdeliť do samostatnej oblasti vedomostí alebo činnosti.
  • Všetci zamestnanci spoločnosti by sa pri plánovaní svojich aktivít mali riadiť metodikou DevOps.
  • DevOps ovplyvňuje všetky procesy v rámci spoločnosti.
  • DevOps existuje na zníženie časových nákladov na akékoľvek procesy v rámci spoločnosti s cieľom zabezpečiť rozvoj jej služieb a maximálny zákaznícky komfort.
  • DevOps, moderne povedané, je proaktívna pozícia každého zamestnanca spoločnosti zameraná na znižovanie časových nákladov a zvyšovanie kvality IT produktov okolo nás.

Myslím si, že moje „postuláty“ sú samostatnou témou na diskusiu. Teraz je však na čom stavať.

Čo robí DevOps

Kľúčovým slovom je tu komunikácia. Existuje veľa komunikácií, ktorých iniciátorom by mal byť presne ten istý inžinier DevOps. prečo je to tak? Pretože toto je filozofia a metodológia a až potom inžinierske znalosti.

O západnom trhu práce nemôžem hovoriť so 100% istotou. Ale o trhu DevOps v Rusku viem dosť veľa. Okrem stoviek rozhovorov som sa za posledný rok a pol zúčastnil na stovkách technických predpredajov služby „Implementácia DevOps“ pre veľké ruské spoločnosti a banky.

V Rusku je DevOps stále veľmi mladá, no už trendová téma. Pokiaľ viem, len v Moskve bol nedostatok takýchto odborníkov v roku 2019 viac ako 1000 2 ľudí. A slovo Kubernetes pre zamestnávateľov je skoro ako červená handra na býka. Prívrženci tohto nástroja sú pripravení ho použiť aj tam, kde to nie je potrebné a ekonomicky výhodné. Zamestnávateľ nie vždy chápe, v akých prípadoch je vhodnejšie použiť a pri správnom nasadení stojí údržba klastra Kubernetes 3-XNUMX krát viac ako nasadenie aplikácie pomocou konvenčnej klastrovej schémy. Použite ho tam, kde ho naozaj potrebujete.

Kto je DevOps a kedy nie je potrebný?

Implementácia DevOps je z hľadiska peňazí nákladná. A má opodstatnenie len tam, kde prináša ekonomické výhody v iných oblastiach, a nie samostatne.

Inžinieri DevOps sú v skutočnosti priekopníci – práve oni by mali byť prví, ktorí túto metodiku implementujú do firmy a budujú procesy. Aby to bolo úspešné, špecialista musí neustále komunikovať so zamestnancami a kolegami na všetkých úrovniach. Ako zvyčajne hovorím, do procesu implementácie DevOps by mali byť zapojení všetci zamestnanci spoločnosti: od upratovačky až po generálneho riaditeľa. A to je predpoklad. Ak najmenší člen tímu nevie a nerozumie tomu, čo je DevOps a prečo sa vykonávajú určité organizačné akcie, potom úspešná implementácia nebude fungovať.

Inžinier DevOps tiež potrebuje z času na čas použiť administratívny zdroj. Napríklad na prekonanie „environmentálneho odporu“ – keď tím nie je pripravený prijať nástroje a metodiku DevOps.

Vývojár by mal písať iba kód a testy. Nepotrebuje k tomu supervýkonný notebook, na ktorom nasadí a lokálne bude podporovať celú infraštruktúru projektu. Napríklad vývojár front-endu uchováva všetky prvky aplikácie na svojom notebooku vrátane databázy, emulátora S3 (minio) atď. To znamená, že trávi veľa času udržiavaním tejto miestnej infraštruktúry a sám zápasí so všetkými problémami takéhoto riešenia. Namiesto vývoja kódu pre front. Takíto ľudia vedia byť veľmi odolní voči akejkoľvek zmene.

Sú však tímy, ktoré naopak rady zavádzajú nové nástroje a metódy a aktívne sa podieľajú na tomto procese. Aj keď ani v tomto prípade nebola komunikácia medzi inžinierom DevOps a tímom zrušená.

Keď DevOps nie je potrebný

Sú situácie, keď DevOps nie je potrebný. To je fakt – treba to pochopiť a prijať.

V prvom rade sa to týka akýchkoľvek firiem (najmä malých podnikov), kedy ich zisk priamo nezávisí od prítomnosti alebo absencie IT produktov, ktoré poskytujú klientom informačné služby. A tu nehovoríme o webovej stránke spoločnosti, či už ide o statickú „vizitku“ alebo o dynamické bloky správ atď.

DevOps je potrebný, keď spokojnosť vášho klienta a jeho túžba vrátiť sa k vám opäť závisí od dostupnosti týchto informačných služieb pre interakciu s klientom, ich kvalitu a zacielenie.

Pozoruhodným príkladom je jedna známa banka. Spoločnosť nemá obvyklé kancelárie pre klientov, tok dokumentov sa uskutočňuje prostredníctvom pošty alebo kuriérov a veľa zamestnancov pracuje z domu. Firma prestala byť len bankou a podľa mňa sa zmenila na IT firmu s rozvinutými technológiami DevOps.

Mnoho ďalších príkladov a prednášok nájdete v záznamoch z tematických stretnutí a konferencií. Niektoré z nich som osobne navštívil – je to veľmi užitočná skúsenosť pre tých, ktorí sa chcú týmto smerom rozvíjať. Tu sú odkazy na kanály YouTube s dobrými prednáškami a materiálmi o DevOps:

Teraz sa pozrite na svoje podnikanie a zamyslite sa nad týmto: Do ​​akej miery závisí vaša spoločnosť a jej zisky od produktov IT, aby umožnili interakciu so zákazníkmi?

Ak vaša spoločnosť predáva ryby v malom obchode a jediným IT produktom sú dve konfigurácie 1C: Enterprise (účtovníctvo a UNF), potom sotva má zmysel hovoriť o DevOps.

Ak pracujete vo veľkom obchodnom a výrobnom podniku (napríklad vyrábate lovecké pušky), mali by ste o tom premýšľať. Môžete prevziať iniciatívu a oznámiť svojmu manažmentu vyhliadky na implementáciu DevOps. No a zároveň viesť tento proces. Proaktívna pozícia je jednou z dôležitých zásad filozofie DevOps.

Veľkosť a objem ročného finančného obratu nie je hlavným kritériom na určenie, či vaša spoločnosť potrebuje DevOps.

Predstavme si veľký priemyselný podnik, ktorý neinteraguje priamo so zákazníkmi. Napríklad niektoré automobilky a spoločnosti vyrábajúce automobily. Teraz si nie som istý, ale podľa mojich skúseností z minulosti sa mnoho rokov všetka komunikácia so zákazníkmi uskutočňovala prostredníctvom e-mailu a telefónu.

Ich klientmi je obmedzený zoznam predajcov áut. A každému je pridelený špecialista od výrobcu. Celý tok interných dokumentov prebieha cez SAP ERP. Interní zamestnanci sú v podstate klientmi informačného systému. Tento IS je však riadený klasickými prostriedkami riadenia klastrových systémov. Čo vylučuje možnosť použitia postupov DevOps.

Z toho vyplýva záver: pre takéto podniky nie je implementácia DevOps niečo kriticky dôležité, ak si pripomenieme ciele metodiky zo začiatku článku. Ale nevylučujem, že dnes používajú nejaké nástroje DevOps.

Na druhej strane existuje veľa malých spoločností, ktoré vyvíjajú softvér pomocou metodológie, filozofie, postupov a nástrojov DevOps. A veria, že náklady na implementáciu DevOps sú náklady, ktoré im umožňujú efektívne konkurovať na softvérovom trhu. Príklady takýchto spoločností možno vidieť tu.

Hlavné kritérium na pochopenie, či je DevOps potrebný: akú hodnotu majú vaše IT produkty pre spoločnosť a zákazníkov.

Ak je hlavným produktom spoločnosti, ktorý generuje zisk, softvér, potrebujete DevOps. A nie je také dôležité, či zarábate skutočné peniaze pomocou iných produktov. Patria sem aj internetové obchody či mobilné aplikácie s hrami.

Akékoľvek hry existujú vďaka financovaniu: priamemu alebo nepriamemu od hráčov. V Playgendary vyvíjame bezplatné mobilné hry s viac ako 200 ľuďmi, ktorí sa priamo podieľajú na ich tvorbe. Ako používame DevOps?

Áno, presne tak, ako je popísané vyššie. Neustále komunikujem s vývojármi a testermi a vediem interné školenia pre zamestnancov o metodike a nástrojoch DevOps.

Teraz aktívne používame Jenkins ako CI/CD pipelines nástroj na vykonávanie všetkých montážnych potrubí s Unity a následné nasadenie do App Store a Play Market. Viac z klasickej sady nástrojov:

  • Asana - pre riadenie projektov. Integrácia s Jenkinsom bola nakonfigurovaná.
  • Google Meet – pre videostretnutia.
  • Slack – pre komunikáciu a rôzne upozornenia, vrátane upozornení od Jenkinsa.
  • Atlassian Confluence – pre dokumentáciu a skupinovú prácu.

Naše bezprostredné plány zahŕňajú zavedenie analýzy statického kódu pomocou SonarQube a vykonávanie automatizovaného testovania používateľského rozhrania pomocou Selenium vo fáze kontinuálnej integrácie.

namiesto záveru

Rád by som skončil nasledujúcou myšlienkou: ak sa chcete stať vysokokvalifikovaným inžinierom DevOps, je nevyhnutné naučiť sa komunikovať naživo s ľuďmi.

Inžinier DevOps je tímový hráč. A nič iné. Iniciatíva v komunikácii s kolegami by mala vychádzať od neho, a nie pod vplyvom nejakých okolností. Špecialista DevOps musí vidieť a navrhnúť najlepšie riešenie pre tím.

A áno, implementácia akéhokoľvek riešenia si bude vyžadovať veľa diskusií a nakoniec sa to môže úplne zmeniť. Takýto človek, ktorý sa samostatne rozvíja, navrhuje a realizuje svoje nápady, má čoraz väčšiu hodnotu pre tím aj pre zamestnávateľa. Čo sa v konečnom dôsledku odzrkadlí na výške jeho mesačnej odmeny či vo forme ďalších odmien.

Zdroj: hab.com

Pridať komentár