DevOps: Ce este și de ce contează
Publicat: 2022-03-11Deși nu există metode sigure, „glonț de argint” pentru îmbunătățirea eficienței IT, DevOps a dat rezultate greu de ignorat. După cum sugerează și numele, DevOps combină principiile dezvoltării software și operațiunilor software cu scopul de a ajuta organizațiile să dezvolte produse cu o viteză și eficiență mai mari. TIAA-CREF, de exemplu, și-a văzut afacerea de 40 de miliarde de dolari făcând îmbunătățiri semnificative prin utilizarea principiilor DevOps. Un interviu acordat de TechBeacon cu directorul digital al TIAA, Scott Blandford, explică modul în care TIAA s-a mutat de la software-ul și sistemele vechi la „o abordare DevOps bazată pe agilitate” care a generat o creștere de patru ori a productivității dezvoltării. Actualizările sunt lansate mult mai repede și „IT-ul a recâștigat încrederea care s-a erodat de-a lungul anilor, pe măsură ce a început să răspundă așteptărilor utilizatorilor”.
Rezultatele din Raportul privind starea DevOps din 2017 sugerează diferențe izbitoare între organizațiile de înaltă performanță care folosesc principiile DevOps și organizațiile care nu le folosesc. Potrivit raportului, organizațiile de înaltă performanță au frecvențe de implementare a software-ului mult mai mari (de 46 de ori mai frecvente), timp de livrare mult mai rapid pentru modificări (de 440 de ori mai rapid) și o rată de eșec semnificativ mai mică a modificărilor software (de cinci ori mai mică) decât performanța lor mai scăzută. omologii.
În ciuda acestor beneficii semnificative, DevOps este un exemplu clasic de concept tehnic important, relativ nou, care a fost folosit greșit sau înțeles greșit prea des. Pentru mulți, ideea rămâne neclară și chiar și o definiție de bază a DevOps se poate dovedi evazivă.
Această lipsă de claritate ar putea avea efecte negative asupra organizațiilor și echipelor care încearcă să implementeze principiile DevOps, provocând confuzie strategică și împiedicând viteza și eficiența pe care DevOps ar trebui să le promoveze. Așa cum a spus un inginer DevOps la IBM într-un articol publicat de InfoWorld, „Trebuia să răspundem la câteva întrebări de bază și să stabilim problemele pe care încercam să le rezolvăm... Dacă nu știi cum se realizează munca, nu știi. care probleme merită rezolvate.”
Pe măsură ce dezvoltarea software-ului și operațiunile devin mai strâns legate și pe măsură ce companiile devin din ce în ce mai dependente de infrastructura cloud, directorii și managerii de proiect trebuie să dezvolte fluență în DevOps pentru a rămâne competitive și pentru a se asigura că echipele lor își desfășoară performanța maximă.
DevOps nu ar trebui să fie considerat un alt cuvânt la mod vag, ci mai degrabă ca un concept important cu potențialul de a îmbunătăți în mod dramatic produsele și afacerile. Acest articol, destinat unui public relativ non-tehnic, își propune în primul rând să clarifice exact ce este DevOps. Folosind exemple specifice, acest articol va explora apoi cum arată principiile DevOps atunci când sunt făcute bine și de ce DevOps este important pentru tine și organizația ta.
DevOps ca tip de inginer, cultură și practică
Ce este DevOps? Într-un articol anterior publicat de Toptal, Demir Selmanovic scrie că „DevOps este o cultură, o mentalitate și face parte din IT ca (a) întreg”. El mai scrie că DevOps este o practică care permite organizațiilor să optimizeze viteza și eficiența funcțiilor IT.
Amazon Web Services, care este cel mai mare jucător în infrastructura cloud și, în consecință, a dezvoltat o expertiză semnificativă în DevOps, folosește o definiție similară, spunând că „DevOps este o combinație de filozofii culturale, practici și instrumente care crește capacitatea unei organizații de a furniza aplicații și servicii. cu viteză mare: evoluția și îmbunătățirea produselor într-un ritm mai rapid decât organizațiile care folosesc procesele tradiționale de dezvoltare a software-ului și de gestionare a infrastructurii.”
„Oamenii DevOps sunt practic cei care și-au găsit interes atât pentru administrarea sistemelor, cât și pentru dezvoltarea de software și au decis să-și combine abilitățile pentru a crea o abordare unificată și mai bună pentru ambele.”
Acestea sunt ambele definiții utile pentru un public deja bine versat în domenii conexe, dar pot fi prea abstracte pentru directorii cu experiențe tehnice mai puțin extinse. Într-adevăr, poate că o parte din confuzia din jurul definiției DevOps provine din faptul că este adesea menționat simultan ca tip de inginer, set de practici și cultură. Deși DevOps cuprinde fiecare dintre aceste elemente, este util să începem prin a le lua în considerare separat.
Pentru a începe cu cum arată un inginer DevOps, Martin Chikilian, un dezvoltator de software anterior pentru IBM și Hewlett Packard, cu peste un deceniu de experiență în utilizarea principiilor DevOps, spune în termeni simpli și concreti: „Oamenii DevOps sunt, în principiu, cei care și-au găsit interesul. atât în administrarea sistemelor, cât și în dezvoltarea de software și au decis să-și combine abilitățile pentru a crea o abordare unificată și mai bună pentru ambele.”
Ei sunt capabili să întrețină serverele, rețelele și alte tipuri de sisteme de infrastructură pe care le are o companie, precum și să repete și să îmbunătățească în mod activ acele sisteme prin dezvoltarea de software. După cum spunea Chikilian în alt mod, „O persoană DevOps este cineva care poate valorifica bazele dezvoltării software pentru a se ajuta pe ei înșiși și companiile să construiască instrumente mai bune pentru a gestiona infrastructura.”
„Combinația de filozofii culturale”, așa cum spune Amazon, se referă la combinația de abordări utilizate de dezvoltatorii de software și cei cu experiență în infrastructură sau operațiuni software. În distrugerea barierei tradiționale dintre aceste practici, o cultură DevOps încearcă să împuternicească organizațiile să beneficieze de punctele forte distincte pe care dezvoltatorii și experții în infrastructură le aduc la masă. Implementarea cu succes a principiilor DevOps „necesită o schimbare a culturii și a modului de gândire” pentru companiile care izolează aceste diferite tipuri de ingineri. După cum descrie Emily Dowdle la Nordic API Platform Summit din 2016, eliminarea barierelor ajută, de asemenea, la atenuarea frecării naturale care poate exista uneori între dezvoltatori și experți în infrastructură și promovează un mediu de lucru mai convenabil și cooperant.
Simplu spus, DevOps se referă la traducerea proceselor manuale complexe care implică interacțiune umană predispusă la erori într-o abordare instrumentată care poate fi testată, măsurată și ușor de scalat.
Înarmat cu o înțelegere a modului în care arată un practician și o cultură DevOps, ceea ce înseamnă DevOps ca practică devine mai evident. Simplu spus, DevOps se referă la traducerea proceselor manuale complexe care implică interacțiune umană predispusă la erori într-o abordare instrumentată care poate fi testată, măsurată și ușor de scalat. De exemplu, dacă un dezvoltator dorește să creeze un mediu care să permită utilizatorilor de afaceri să ofere feedback, el sau ea poate iniția un proces automat în care dezvoltatorul poate lansa o comandă creată de echipa DevOps (în loc să transmită o bucată de cod). către echipa de infrastructură), care îndeplinește sarcina relevantă într-un mod consistent și testat, ajungând rapid la rezultatele așteptate și permițând colaborarea.
O definiție cuprinzătoare a DevOps necesită înțelegerea a ceea ce înseamnă ca tip de inginer, cultură și practică. După ce am explorat ce înseamnă DevOps din aceste perspective, acum este important să analizăm cum arată DevOps atunci când este implementat cu succes.
Setul dvs. de instrumente DevOps
Pe lângă schimbarea culturală menționată mai sus – trecând de la o companie care izola dezvoltatorii de software și experții în infrastructură la una care îmbrățișează colaborarea lor – companiile trebuie să înțeleagă o serie de practici și instrumente specifice esențiale pentru DevOps. Mai jos sunt trei dintre cele mai importante (deși cu siguranță nu singurele) dintre astfel de practici:
Automatizare: creșterea eficienței este esențială pentru DevOps, iar acest lucru se realizează în mod semnificativ prin automatizarea unei game de procese relativ lente și oneroase în dezvoltarea de software și întreținerea infrastructurii. Un exemplu specific pe care îl citează Amazon este practica de a trimite automat actualizări de software relativ mici, dar frecvente. Această practică elimină sarcina administratorilor de sisteme, care altfel ar putea fi nevoiți să efectueze aceste actualizări manual. După cum observă Amazon, această practică are, de asemenea, avantajul de a reduce riscul implementării software-ului, permițând administratorilor să detecteze și să remedieze mai ușor erorile care pot apărea. Automatizarea este o piatră de temelie a DevOps și este crucială pentru celelalte practici DevOps discutate mai jos.

Integrare continuă: La un nivel fundamental, DevOps se referă la o colaborare strânsă între ingineri și, mai departe, echipe întregi. Integrarea continuă se referă la practica inginerilor de a partaja și de a îmbina codul într-o locație centrală. După cum explică Amazon, „În trecut, dezvoltatorii dintr-o echipă puteau să lucreze izolat pentru o perioadă lungă de timp și să încerce doar să-și îmbine modificările... odată ce munca lor a fost finalizată.” Prin integrarea continuă, inginerii pot colabora mai eficient și pot evita blocajele asociate cu dezvoltarea și integrarea codului lor într-un mod mai fragmentat.
Livrare continuă: Livrarea continuă se referă la practica livrării și implementării automate a modificărilor produselor software pe măsură ce sunt efectuate. Cu alte cuvinte, Livrarea continuă este activată de Integrarea continuă, având în vedere că modificările aduse codului pot fi transmise efectiv în întregul sistem numai dacă codul este deja găzduit într-un loc central. Automatizarea este, de asemenea, crucială pentru livrarea continuă. Într-adevăr, exemplul menționat mai sus de trimitere a actualizărilor de sisteme mici și frecvente poate fi considerat și ca un exemplu de livrare continuă. Livrarea continuă permite organizațiilor să implementeze rapid schimbări și îmbunătățiri și le permite inginerilor să-și concentreze timpul mai eficient asupra altor probleme complexe.
Angajarea oamenilor potriviți
Desigur, companiile trebuie să angajeze inginerii potriviți pentru ca practicile de mai sus să fie implementate cu succes. Inginerii DevOps trebuie să aibă un set de abilități care combină dezvoltarea de software și expertiza în infrastructura sistemelor, iar această combinație poate fi dificil de găsit.
„Este important ca aceștia să fie capabili să reducă decalajul dintre codul brut și provocările cu care afacerea trebuie să le facă față în fiecare zi – cum ar fi reducerea fricțiunilor dintre idei, livrare și consumatori.”
Andrea Villa, fost inginer DevOps la Atlassian și arhitect de sistem la CloudReach, cu 15 ani de experiență în administrarea sistemelor, securitatea informațiilor și rețele, consideră că inginerii DevOps au nevoie de o gamă largă de experiență și cunoștințe pentru a avea succes.
„Pentru a fi eficient, inginerul DevOps de astăzi trebuie să aibă experiență de dezvoltator și să posede cunoștințe vaste de administrare a sistemului și cunoștințe de rețea”, a spus Villa. „Este important ca aceștia să fie capabili să reducă decalajul dintre codul brut și provocările cu care afacerea trebuie să le facă față în fiecare zi – cum ar fi reducerea fricțiunilor dintre idei, livrare și consumatori.”
Calificarea ca un inginer DevOps puternic este în mod clar mai ușor de spus decât de făcut, iar găsirea unor astfel de ingineri poate fi la fel de dificilă. Cu toate acestea, înțelegerea instrumentelor care stau la baza practicilor DevOps vă poate ajuta organizația să personalizeze mai precis practicile de angajare în ceea ce privește găsirea talentului potrivit și implementarea cu succes a acestor practici.
De ce DevOps contează cu adevărat
Utilizarea practicilor DevOps vine cu o serie de beneficii, dintre care unele – inclusiv o mai mare eficiență, securitate și colaborare organizațională – au fost deja articulate. Raportul privind starea DevOps din 2017 cuantifică această creștere a eficienței, raportând că organizațiile cu performanțe înalte care folosesc practici DevOps petrec cu 21% mai puțin timp pentru lucrări neplanificate și reprelucrare și cu 44% mai mult timp pentru munca nouă.
Cu toate acestea, în general, implementarea cu succes a practicilor DevOps poate avea un impact profund asupra companiei dvs. prin îmbunătățirea eficienței și execuției în domenii care sunt atât esențiale, cât și categoric lipsite de farmec.
Fredrik Haard, un inginer cu peste 12 ani de experiență în DevOps, care a lucrat ca arhitect senior cloud la McKinsey și la Wondersign, articulează acest punct mai pe deplin.
„Inginerii buni DevOps trebuie să fie un campion și să-și asume responsabilitatea pentru toate domeniile care ar putea să nu fie prioritizate de organizație, cum ar fi securitatea datelor, recuperarea în caz de dezastru, atenuarea și auditurile”, a spus Haard. „Alegerile pe care le faci în DevOps pot avea efecte de lungă durată la o companie.”
Microsoft a observat și aceste efecte pozitive prin implementarea practicilor DevOps în grupul său de inginerie Cloud + Enterprise. Pentru a oferi cele mai bune rezultate, explică Microsoft, „aveam nevoie de inginerie și operațiuni pentru a lucra strâns împreună pe întreg ciclul de viață al dezvoltării, de la proiectare la implementare în producție”. Prin trecerea la o cultură DevOps și prin utilizarea practicilor DevOps, Microsoft a reușit să extindă și să ofere clienților săi servicii de înaltă calitate mult mai rapid decât a făcut-o anterior.
Rezolvarea acestor probleme și îmbunătățirea eficienței sunt grozave în sine, dar în cele din urmă reprezintă un mijloc pentru un scop mai fundamental: producerea de produse uimitoare și obținerea de profituri mai mari și satisfacție pentru clienți.
Inginerii DevOps pot acționa eficient ca o echipă de comando internă a unei companii, ajutând la rezolvarea unei game variate de probleme care, deși poate lipsite de farmec sau nu sunt vizibile, sunt absolut cruciale pentru funcționarea corectă a unei companii.
Rezolvarea acestor probleme și îmbunătățirea eficienței sunt grozave în sine, dar în cele din urmă reprezintă un mijloc pentru un scop mai fundamental: producerea de produse uimitoare și obținerea de profituri mai mari și satisfacție pentru clienți. Poate cel mai important motiv pentru care DevOps contează cu adevărat este că poate permite organizațiilor să maximizeze fiecare dintre aceste valori.
Înfruntând viitorul cu DevOps
În 2015, partenerul Andreessen Horowitz, Scott Weiss, a spus că DevOps este „mai mult decât o simplă metodologie. Este un set de abilități obligatorii pentru programatorul modern – și devine din ce în ce mai mult propriul său departament.”
Acest lucru s-a dovedit adevărat, deoarece o serie de companii tehnologice, inclusiv Amazon, Microsoft și Google, au construit echipe DevOps și au dedicat resurse semnificative pentru a construi expertiza în spațiu. Weiss și alți jucători importanți din tehnologie văd DevOps nu doar ca un mod trecător, ci mai degrabă o componentă cheie în viitorul software-ului.
DevOps va continua să fie deosebit de esențial pe măsură ce industriile devin tot mai dependente de infrastructura cloud. Într-un raport din 2017, Gartner Research a estimat că piața serviciilor cloud va crește cu peste 15% pe an până în 2020. Pentru a pune această creștere în termeni de dolari, un articol recent publicat de Forbes indică faptul că piața de cloud computing va crește de la aproximativ 260 de miliarde de dolari. în 2017, la aproximativ 411 miliarde USD în 2020. DevOps poate face o diferență enormă în ceea ce privește rapiditatea cu care compania dvs. migrează cu succes sistemele în cloud. La Toptal, am folosit DevOps de la început – și a fost parte integrantă a succesului nostru ca companie de cloud cu hipercreștere.
Așa cum piața serviciilor cloud crește într-un ritm rapid, la fel crește și importanța DevOps. Fie în domeniul energiei, al sănătății sau al învățământului superior, compania dumneavoastră va trebui să dezvolte expertiza DevOps. Înțelegerea ce este DevOps, cum este implementat și de ce este atât de important, reprezintă un prim pas esențial atunci când vă gândiți la utilizarea acestei practici cheie în viitor.