Ultimativni vodič za DevOps početnike

Za koga je ovaj vodič namenjen?

Programerima koji žele da prošire svoje znanje sa operativnim delom ekspertize koja se odnosi na implementaciju, konfigurisanje, održavanje i nadgledanje infrastrukture.

Sistem administratorima koji žele da unaprede svoje veštine sa poznavanjem celokupnog životnog ciklusa proizvodnje aplikacije, sa znanjem jednog programskog jezika.

Osobe koje ne spadaju u prethodne dve grupe ali se bave tehnologijom u drugim oblastima u karijeri sa znanjem pisanja koda ili drugih srodnih tehnologija.

Osobe koje žele da započnu razvoj svoje karijere u pravcu modernih zanimanja danas kao što su DevOps, AIOps i MLOps.

Šta je DevOps?

Patrick Debois, konsultant za razvoj softvera, zaslužan je za stvaranje termina DevOps kada je 2009. godine, nazvao konferenciju DevOps Days, gde se pozabavio nedostatkom Agile metodologije u načinu razvoja softvera. Reč DevOps je kombinacija izraza Development i Operations, koji predstavljaju zajednički ili deljeni pristup operativnim zadacima u procesu razvoja softvera koje obavljaju timovi za razvoj softvera i IT operativni timovi zaduženi za infrastrukturu (server, storage, networking) na kojoj se softver pokreće – izvršava.

U svom najširem značenju, DevOps je filozofija koja promoviše bolju komunikaciju i saradnju između timova – i drugih – u organizaciji. U svom najužem tumačenju, DevOps opisuje usvajanje iterativnog pristupa razvoju softvera, automatizaciju u implementaciji i održavanju infrastrukture. Termin takođe obuhvata i promene u kulturi, poput izgradnje poverenja i kohezije između programera i administratora sistema radi usklađivanja tehnologije projekata sa poslovnim zahtevima.

Kako je nastao DevOps?

U tradicionalnom razvoju softvera postojala je jasna podela posla između tima operacija i tima za razvoja softvera. Programeri su bili samo delimično uključeni u rad softvera na kome su radili i znali su vrlo malo o tome gde i kako se pokreće. U međuvremenu, operacije (administratori) su znale vrlo malo o tome šta softver zapravo radi ili o tome kako je kreiran, pa su se samo nadali da će raditi kako se očekuje.

Ova ideja je suprotstavlja dva tima jedan protiv drugog, jedan sa krajnjim ciljem stabilnosti, drugi sa krajnjim ciljem promena. Izbegavanje konflikata je dovelo do smanjenih unapredjenja aplikacija kroz kreiranje novih verzija i funkcionalnosti kako bi se izbegli prekidi i osigurala stabilnost.

Ciklusi puštanja novih verzija aplikacija bili su dugi zato što ni operacije ni programeri nisu razumeli jasno podelu odgovornosti prilikom puštanje nove verzije koda. To je značilo da je potrebno mnogo nedjelja i mnogo prekovremenog rada da bi se implementacije uradile pravilno i često je uzrokovalo značajne zastoje. DevOps ima za cilj da to reši uvođenjem kohezivnije saradnje između programera i operativnih inženjera, sa modelom preklapanja odgovornosti u celom procesu.

Ideja je da se promene u kodu rade često, idealno i više puta dnevno, sa primenom temeljne automatizacije i testiranja kako bi se smanjili zastoji. U slučajevima bilo kakvih problema omogućen je vrlo brz i lak povratak na prethodnu i stabilnu verziju.