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:
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.