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