Temelji i koncepti DevOpsa

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

Pokrivat ćemo sljedeće:

  • Kultura - Kultura suradnje između Deva i Opsa
  • Vježbe - Praksa koja podržava ciljeve DevOps kulture
  • Alati - Alati koji pomažu u implementaciji DevOps praksi
  • Oblak - Bliski odnos između DevOps-a i oblaka


Što je DevOps

DevOps = Dev (Razvoj) + Ops (Operacije)


Ova definicija s Wikipedije dobro je polazište:

'DevOps je kultura i praksa softverskog inženjerstva koja ima za cilj objedinjavanje razvoja softvera (Dev) i rada softvera (Ops) ... DevOps ima za cilj kraće razvojne cikluse, povećanu učestalost implementacije, pouzdanija izdanja, usko usklađena s poslovnim ciljevima.'


DevOps je

  • DevOps je prvo kultura suradnje između programera i operativnih ljudi
  • Ova je kultura iznjedrila niz 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

DevOps kultura je oko suradnja između Deva i Opsa. Tradicionalno su njih dvoje radili odvojeno i imali su drugačiji i suprotstavljajući se ciljevi.

Pod kulturom DevOps, Dev i Ops rade zajedno i dijele isti cilj . To je da razvojni sustavi brinu o stabilnosti kao i o brzini, a opskrbe brinu o brzini kao i o stabilnosti.

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

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


Uz DevOps:

  • Dev i Ops igraju u istoj momčadi

  • Dev i Ops dijele iste ciljeve



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

    • Malo propusta u proizvodnji

    • Neposredni oporavak od kvarova



Tradicionalni silosi

Što nije bilo u redu s tradicionalnim silosima?

Pod tradicionalnim silosima:


  • Razvojnici napišu neki kod
  • 'Baci preko zida' u QA
  • Kôd se odbija naprijed-natrag između Dev-a i QA-a jer QA otkriva probleme i Devs ih rješava
  • Napokon je spreman za proizvodnju
  • QA / Dev 'baca kôd preko zida' na Operations
  • Ako postoji problem, Ops ga baci natrag preko zida Dev
  • Domena svake grupe je 'crni okvir' za ostale grupe
  • Ops bi rekao: „Naši su sustavi u redu; to je vaš kod! '
  • Dev bi rekao: 'Ali kod djeluje na mom stroju!'

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

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

Čak i ako ŽELE surađivati ​​- Dev se mjeri pružanjem značajki, š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
  • Kad je spreman, pokrenite automatizirano postavljanje u proizvodnju
  • Budući da je sve automatizirano, puno je lakše implementirati, a stvari održavati stabilnima
  • Uvođenje se može dogoditi mnogo češće, brže dobivanje značajki u rukama kupaca
  • Ako najnovija implementacija prekine nešto u proizvodnji, automatizirano praćenje odmah obavještava tim
  • Tim izvršava povratni postupak postavljanjem prethodne radne verzije, brzo rješavajući problem
  • Sat vremena kasnije, razvojni tim je u mogućnosti primijeniti fiksnu verziju novog koda

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

Automatizacija je dovela do dosljednosti - izrada, testiranje i postavljanje događali su se svaki put na isti način, puno brže i češće

Dobar nadzor, plus brzi postupak 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 DevOpsa

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