Temelji i koncepti DevOps

U ovom postu ćemo pokriti temelje, koncepte i prakse koji su od ključne važnosti za svakoga ko radi u DevOps okruženju.

Pokrivat ćemo sljedeće:

  • Kultura - Kultura suradnje između Dev-a i Ops-a
  • Vježbe - Praksa koja podržava ciljeve DevOps kulture
  • Alati - Alati koji pomažu u implementaciji DevOps praksi
  • Cloud - Bliska veza između DevOps-a i oblaka


Šta je DevOps

DevOps = Dev (Razvoj) + Ops (Operacije)


Ova definicija iz Wikipedije je dobra polazna osnova:

„DevOps je kultura i praksa softverskog inženjerstva koja ima za cilj objedinjavanje razvoja softvera (Dev) i rada softvera (Ops) ... DevOps teži kraćim razvojnim ciklusima, povećanoj učestalosti postavljanja, pouzdanijim izdanjima, u bliskoj usklađenosti sa poslovnim ciljevima.“


DevOps je

  • DevOps je prvo kultura suradnje između programera i operativnih ljudi
  • Ova je kultura iznjedrila set praksi
  • DevOps je način rada
  • DevOps je pokret praktičara za praktičare

DevOps nije

  • DevOps NIJE skup alata, ali Alati su ključni za uspjeh u DevOpsu
  • DevOps NIJE standard
  • DevOps NIJE proizvod
  • DevOps NIJE naziv radnog mjesta


Kultura DevOps

Kultura DevOps je u znaku suradnja između Deva i Opsa. Tradicionalno su njih dvoje radili odvojeno i imali su drugačiji i suprotstavljanje ciljevi.

Pod kulturom DevOps, Dev i Ops rade zajedno i dijele ih isti cilj . To je da razvojni računari brinu o stabilnosti kao i o brzini, a opskrbitelji brinu o brzini kao i o stabilnosti.

Tradicionalne uloge programera i operativnih inženjera postaju zamagljene u DevOpsu.

Umjesto da 'bacaju kod preko zida', razvojni i operativni programi zajedno rade na stvaranju i korištenju alata i procesa koji podržavaju brzinu i stabilnost.


Sa DevOps:

  • Dev i Ops igraju u istom timu

  • Dev i Ops dijele iste ciljeve



    • Brzo stavljanje na tržište (TTM)

    • Malo propusta u proizvodnji

    • Neposredni oporavak od kvarova



Tradicionalni silosi

Šta nije bilo u redu sa tradicionalnim silosima?

Pod tradicionalnim silosima:


  • Razvojnici napišu neki kod
  • 'Baci preko zida' u QA
  • Kod se prebacuje naprijed-natrag između Dev i QA dok QA otkriva probleme, a Devs ih rješava
  • Konačno, spreman je za proizvodnju
  • QA / Dev “baca kôd preko zida” na Operations
  • Ako postoji problem, Ops ga baca natrag preko zida Dev
  • Domen svake grupe je 'crni okvir' za ostale grupe
  • Ops bi rekao: „Naši su sistemi u redu; to je vaš kod! '
  • Dev bi rekao: 'Ali kod djeluje na mojoj mašini!'

Ovakav način rada dovodi do puno upiranja prstom - Ops su crna kutija, programeri im zapravo ne vjeruju, a Ops zapravo ne vjeruju programerima.

Dev i Ops imaju različite prioritete - Ops gleda na Devs kao na lomljenje stabilnosti, a na Devs operativni sistemi predstavljaju prepreku u isporuci njihovog koda.

Čak i ako ŽELE surađivati ​​- Dev se mjeri pružanjem karakteristika, što znači da se primjena promjena i Ops mjere produženjem rada, ali promjene su loše za stabilnost.

Loše strane tradicionalnih silosa

  • „Crne kutije“ vode ka upiranju prstom
  • Dugotrajni postupak znači sporo vrijeme izlaska na tržište
  • Nedostatak automatizacije znači da su stvari poput izrade i postavljanja nedosljedne
  • Potrebno je puno vremena za otkrivanje i rješavanje problema


Spajanje programa Dev i Ops (DevOps)

Kako DevOps rješava tradicionalne probleme sa silosima?


Pod modelom DevOps:

  • Razvojni programeri pišu kod
  • Pokretanje koda pokreće automatiziranu izgradnju, integraciju i testove
  • QA može doći do njih gotovo odmah
  • Jednom kad je spreman, pokrenite automatizirano postavljanje u proizvodnju
  • Budući da je sve automatizirano, mnogo je lakše implementirati, a stvari održavati stabilnima
  • Uvođenje se može dogoditi mnogo češće, brže dobivanje funkcija u ruke kupaca
  • Ako najnovija implementacija prekine nešto u proizvodnji, automatizirano nadgledanje odmah obavještava tim
  • Tim vrši povrat unazad postavljanjem prethodne radne verzije, brzo rješavajući problem
  • Sat vremena kasnije, razvojni tim je u mogućnosti da postavi fiksnu verziju novog koda

Dev i Ops su zajedno radili na tome da daju prednost brzini isporuke i stabilnosti.

Automatizacija je dovela do dosljednosti - izgradnja, testiranje i postavljanje događalo se svaki put na isti način, mnogo brže i češće

Dobar nadzor, plus brz proces implementacije, osigurali su da se problemi mogu riješiti čak i prije nego što su ih korisnici primijetili. Iako je promjena koda stvorila problem, korisnici su imali malo ili nimalo zastoja.


Prednosti DevOps-a

  • Tehnički timovi imaju tendenciju da sretnije rade DevOps nego da su u tradicionalnim silosima
  • Više vremena za inovacije i manje za gašenje požara
  • Devs i Ops imaju isti cilj, a to je brzina isporuke i stabilan sistem.
  • DevOps način rada pruža kupcima funkcije koje žele brzo i pouzdano.