You are on page 1of 17

Univerzitet u Kragujevcu

Fakultet tehničkih nauka u Čačku

Seminarski rad
iz predmeta

Softversko inženjerstvo
Tema: DevOps

Profesor: Studenti:
Dr Marija Blagojević Danka Radmilac 253/2017
Asistent: Lazar Radaković 70/2017
Mr Mladen Janjić

1
Sadržaj
Uvod.........................................................................................................3
Definicija DevOps-a.................................................................................4
Poreklo DevOps-a.....................................................................................5
Problemi koji su doveli do razvoja DevOps-a..........................................6
Objasnjeni DevOps,Agil i SRE................................................................7
Kako DevOps funkcioniše........................................................................8
Kolaboracija..........................................................................................8
Automatizacija......................................................................................9
Kontinuirana integracija.......................................................................9
Kontinuirano testiranje.......................................................................10
Kontinuirana dostava..........................................................................11
Kontinuirano nadgledanja...................................................................12
Ciljevi DevOps-a....................................................................................13
Brzina..................................................................................................13
Pouzdanost..........................................................................................13
Brza dostava........................................................................................14
Prilagodljivost.....................................................................................14
Sigurnost.............................................................................................15
Saradnja..............................................................................................15
Ko je usvojio DevOps?...........................................................................16
Izvori:......................................................................................................17

2
Uvod

DevOps je pojam za grupu koncepata koji su katalizirali pokret i brzo se


proširili u tehničkoj zajednici.
Kao i svaki novi popularniji termin, teško ga je kategorisati i objasniti
krajnjim korisnicima.
Poput Agilnih metoda, DevOps je dovoljno veliki koncept da bi mogao
zahtevati dodatna objašnjenja radi njegovog potpunog razumevanja.

3
Definicija DevOps-a

Patrik Debios je realizovao pojam “DevOps” 2009. godine organizujući prve devops
dane. I on kasnije postaje jedan od njeovih vodećih vizionara. Pojam nastaje
kombinovanjem reči “development” (razvoj) i “operations” (operacija) što pruža osnovu
za njegovo početno razumevanje. DevOps nije proces,tehnologija ili standard. Vec novi
pojam koji nastaje sudarom dva uzajamno povezana koncepta. Prvi od njih se naziva
“agilna operacija”, nastao je primenom Agilnih I Leon pristupa u operatvinom radu.

Pojačanu saradnju izmedju razvojnog i operativnog tima omogućio je drugi trend tokom
svih faza razvoja softvera. DevOps nam naglašava važnost njegovh operacija u servisno
orjentisanom svetu. Objašnjava veći broj različitih tema za ljude jer pokriva više osnova.
Značenje DevOps-a se proširilo na termine i postupke, kulturu i način pristupa koji
koristimo za sužavanje zivotnog ciklusa softverskog razvoja,korišćenjem brze povratne
veze za učestalo isporučivanje funkcija, ažuriranja i promena. DevOps ne razlikuje
različite pod discipline administratora sistema. Izraz “DevOps pokret” koristimo kada
pricamo o njegovom usvajanju i budućim trendovima,a izraz “DevOps okruženje” da bi
definisali IT organizaciju koja koristi DevOps. “Ops” pokriva pojmove za inženjere
sistema,operativno osoblje, DBAs,administatore,inženjere mreže ,eksperte za bezbednost
i mnoge druge poddiscipline i poslove. DevOps ima jaku naklonost prema Agile i Lean
pristupu. U početku se kteralo prema dev strani i “stvaraocima”, dok se kasnije nisu
bazirali na “Ops” i ljude koji se bave stvaranjem nakon njegovog kreiranja.

Shvatanje stete koja je naneta dok su se ova dva termina gledala kao odvojeni pojmovi
dovodi do pojave DevOps-a. Može se tumačiti kao porast Agillog razvoja softvera koji
predstavlja kupca kao glavnog pokretača za upravljanje programerima i proizvodima.

DevOps proširuje Agilni pristup izvan granica koda. Tretita kod kao infrastrukturu i
poboljšava povezanost programera sa operacijama. Ima puno različitih objašnjenja za
različite vrste ljudi gde pokriva više osnova.

4
Poreklo DevOps-a
DevOps nije nastao u celini uprkos tome kako se govori u nekim pričama. Nastao je
davno i kontinualno razvijao tokom godina. Razvijen je od starne IT stručnjaka koji koji
su zaduzeni za različite kategorije.

Dva osnovna prethodnika DevOps-a su:

 Upravljanje sistemima preduzeća (ESM)


Administratori sisitema su bili uključeni u početnu definiciju DevOps-a i doprineli su
ključnim razvoju ESM prakse u DevOps-u,ukljucujući upravljanje
konfiguracijom,nadzor sistema,automatsko obezbedjivanje i pristup nizu raznih alata .

 Agilni razvoj

Rečima jednog posmatrača se napominje “DevOps se moze tumačiti kao porast


Agila”, u kome se usko prepisuje saradnja sa kupcima pri razvoju
softvera,kontrola proizvoda i programa da bi prevazišli nedostatke i na brži i bolji
način razvili softver.

Osnovne vrednosti u razvoju softvera korišćenjem DevOps-u su pružanje usluga i


medjusobna interakcija aplikacija. Kao ključnu stavku pri kreiranju nekog proizvoda
uvodi se misljenje klijenta.

5
Problemi koji su doveli do razvoja DevOps-a

Korisnici zahtevaju promene i konstantan razvoj novih funkcija, bolje pružanje i nove usluge,
novo strujanje prihoda i sve to što je brže moguće. Ali u skladu sa tim i sistem koji je siguran i
neće imati neočekivane probleme pri korišćenju. Programeri i administratori sistema ne uočavaju
uvek sve, ali se svi slažu sa tim da ih korisnici rastržu sa više strana. Zbog ovakvog načina
pristupanja razvoju softvera kompanije su podeljene na dve strane. Da li da se baziraju na brzoj i
učestaloj isporuci gde može doći do neuravnoteženog proizvoda ili sporije isporuke gde ce
proizvodno okruženje biti stabilno. Ova dva načina na kraju neće zadovoljiti ni jednu ni drugu
stranu. Pružaoci usluga na kraju neće biti u stanju da svojim klijentima omoguće najbolje rešenje
i oba nisu prihvatljiva od strane rukovodioca preduzeća.

Pri bržem isporučivanju softvera mogući su propusti u njegovoj zaštiti. Developeri su


angažovani da uvek budu spremni za brži razvoj softvera. Ali opeeracije sa druge strane znaju da
bi moglo da dodje do destabilizacije sistema promenom tempa rada.

Do uspešnog prevazilaženja ovih problema dolazi se uvodjenjem DevOps-a. Ujedinjuje poslovne


korisnike,programere,test inženjere ,inženjere bezbednosti ,sistemske administrator , u visoko
automatizovan tok rada sa zajedničkim ciljem. Brža isporuka softvera visokog kvaliteta koji
zadovoljava sve potrebe korisnika. Ovim se integritet sistema i stabilnost mogu oržavati.
Kako se ove ražličite grupe spajaju?

Obavezujući se na zajednički skup stavova koji prevazilaze granice i prelaze preko


tradicionalnih barijera, na primer:

 Postavljanje očekivanja i prioriteta i osnovna uverenja koja ih vode.

 Saradnja u unutrašnjosti timova i van njih u rešavanju problema.

 Automacija uobičajenih i ponavljajućih procesa kao oslobađanje vremena za rad


na višem nivou.

 Integracija povratnih informacija u posao, proveravanje svega što je uključeno u


proizvodnju.

 Deljenje podataka sa svima uključenim u negovanje mnogo efikasnije culture


zajedničkog rada kroz različite veštine i specijalizovano znanje.

6
Objasnjeni DevOps,Agil i SRE

Kako prelazak kompanije na DevOps, zapošljavanje SRE-a i


poboljšavanje svoje agilnosti može uticati jedno na drugo?

Agilne i Lean metode su nacini komunikacije izmedju timova,sa


kratkim razvojnim ciklusima i brzim povratnim informacijama. Agile se
fokusira na kulturu i sledbenik je za alate koji ce se koristiti.
DevOps je nacin na koji inženjerske organzacije saradjuju koristeci
timove koji su u medjusobnoj interakciji.DevOps zapocinje sa kulturom
i ide prema metodama.

SRE(Sistem pouzdanosti inženjeringa)je nacin na koji inženjeske


organizacije automatizuju,povećavajući visoko pokrivene operacije za
ljude sa softverskim inženjeringom. SRE započinje sa metodama i krece
se prema kulturi.
Varijante DevOps-a(kao sto su “SecDevOps”)uključuju umetanje ili
dodavanje druge organizacije/prakse u ranijem životnom ciklusu
razvoja softvera (SDLC),a preovladjivanje ovih razlicitih vrsta DevOps-
a govori o sve vecoj interakciji funkcija u modernim organizacijama

7
Kako DevOps funkcioniše
Kao I sve kulture, DevOps raspolaže mnoštvom varijacija
funkcionalnosti.
Ali gotovo svi se mogu složiti da su sledeće sposobnosti zajedničke
gotovo svim DevOps kulturama:

 Kolaboracija

 Automatizacija

 Kontinuirana integracija

 Kontinuirana isporuka

 Kontinuirano testiranje

 Kontinuirano nadgledanje

 Brzo saniranje

Kolaboracija
Jedan od kritičnih apskata uspeha DevOps-a u bilo kom okruženju a
samim tim I uzajamni rad razvojnog tima i IT operacije jesu kolaboracija
i složnost u timu.
DevOps se proteže daleko izvan IT organizacije, jer se potreba za
saradnjom proširuje na sve koji imaju udela u isporuci softvera.

8
Automatizacija
Automatizacija je jedan od glavnih faktora uspesnosti DevOps-a.
DevOps se oslanja na lanac alatki za automatizaciju velikih delova
procesa i primene softera.

Kontinuirana integracija
Pošto je DevOps kultura nastala iz agilne kulture, obično nailazimo na
kontinuiranu integraciju koja je osnovni princip Agilnog pristupa.

„Temelj DevOps-a je kontinuirana integracija, tehnika koju je


dizajnirao i nazvao Grady Booch koja kontinuirano spaja ažuriranja
izvornog koda svih programera u timu u jedno zajedničku glavnu liniju.
Ovo neprestano spajanje sprečava lokalnu kopiju razvojnog programa
da ide u više pravaca dok novi kod dodaju ostali, izbegavajući
katastrofalne sukobe spajanja.”
-Aaron Cois, “Continuous Integration in Devops,”

Princip kontinuirane integracije agilnog razvoja ima kulturološku


posledicu za razvojnu grupu.
Usklađivanje rada jednog programera sa drugim često dovodi do
problema i sukoba mnogo ranije nego što je to slučaj sa vodopadnim
razmišljanjem.
Međutim, da bi postigli ovu korist, programeri moraju međusobno
mnogo češće komunicirati – proces koji je u suprotnosti sa slikom
usamljenog genijalnog programera koji nedeljama ili mesecima radi na
modulu pre nego sto je on “spreman” da ga pošalje u svet. Ta praksa
otvorenosti i česte komunikacije cveta u DevOps-u.

9
Kontinuirano testiranje
Kontinuirano testiranje, kao tiha i pritajena sposobnost DevOps-a, pored
kontinuirane integracije i isporuke, pronalazi svoje mesto kao kritičan
deo njega.
Kontinuirano testiranje nije samo QA funkcija; u stvari, ono započinje u
razvojnom okruđenju.

Prolaze dani kada programeri mogu jednostavno baciti kod preko zida
na analizu i završiti sa njim.
U DevOps okruženju, kvalitet je svačiji posao. Programeri uključuju
kvalitet u kod i pružaju podatke vezane za testiranje.
QA inženjeri konfigurišu testne slučajeve automatizacije i okruženje za
testiranje.

Sa strane QA-a, velika potreba je brzina. Uostalom, ako njihov ciklus


traje danima i nedeljama, vraćate se pravo u dugi, po izgledu vodopada
vremenskom planu. Inženjeri za testiranje se suočavaju sa izazovom
brzog zaokreta, ne samo automatizacijom većeg dela procesa ispitivanja,
već i redefinisanjem testnih metodologija:

„Kontinuirano testiranje stvara centralni sistem odluka koji vam


pomaže da procenite poslovni rizik koji svaka aplikacija predstavlja
vašoj organizaciji. Dosledno primenjeno, vodi razvojne timove ka
ispunjenju poslovnih očekivanja i pruza menadžerima vidljivost
donošenja informisanih kompromisnih odluka u cilju optimizacije
poslovne vrednosti kandidata za izdavanje.”

-Continuous Testing for IT Leaders, Parasoft

Iako može biti iznenađujuće, operativna funkcija ima važnu ulogu u


testiranju i QA-a. Operacije mogu osigurati da su alati za praćenje
postavljeni i da su testna okruženja ispravno konfigurisana.

10
Oni mogu učestvovati u funkcionalnim testovima, opterećenju, stresu i
propuštanju i ponuditi analizu na osnovu svog iskustva sa sličnim
aplikacijama koje se pokreću u proizvodnji.

Kontinuirano testiranje doprinosi u velikom značaju samom timskom


okruženju.
Testna funkcija u DevOps okruženju pomaže programerima da
uravnoteže kvalitet i brzinu.
Upotreba automatizovanih alata smanjuje troškove testiranja i
omogućava inžinjerima da efikasnije iskoriste svoje vreme.
Takođe, kontinuirano testiranje skraćuje testne cikluse omogućavajuci
testiranje integracije ranije u procesu.

Konstantno testiranje takođe eliminiše testiranje smetnji kroz


virtuelizovane, zavisne servise i pojednostavljuje stvaranje
virtuelizovanih testnih okruženja koja se mogu lako raspoređivati, deliti
i ažurirati kako se sistemi menjaju.
Ove sposobnosti smanjuju troškove obezbeđenja i održavanja okruženja
za testiranje i skraćuju vreme testiranja omogućavajući testiranje
integracije ranije.

Kontinuirana dostava
Tim Amazona definiše kontinuiranu isporuku kao DevOps praksu
razvoja softvera u kojoj se promene koda automatski ugrađuju, testiraju i
pripremaju za puštanje u proizvodnju. Proširuje se kontinuiranom
integracijom raspoređujući sve promene kodova u okruženje za
testiranje ili proizvodno okruženje nakon faze izrade.

Kada se kontinuirana isporuka pravilno implementira, programeri će


uvek imati artefakt za igradnju koji je spreman za implementaciju i koji
je prošao kroz standardizovani testni postupak.

Stvarna učestanost izdanja može uveliko varirati u zavisnosti od ciljeva

11
kompanije. Organizacije sa visokim performansama koje koriste
DevOps postižu vižestruko raspoređivanje u toku dana u poređenju sa
srednjim performansama koji izbacuju proizvod jednom nedeljno ili
mesečno.

Kontinuirano nadgledanja
DevOps okruženje omogućava pronalaženje i uklanjanje kvarova u
stvarnom vremenu.
To se ostvaruje uz pomoć kontinuiranog nadgledanja.
Uz kontinuirano nadgledanje, timovi mere performanse i dostupnost
softvera radi poboljšanja stabilnosti. Kontinuirano nadgledanje pomaže
da se brzo pronadju osnovni uzroci problema kako bi se proaktivno
sprečili kvarovi i minimizirali problemi sa korisnicima.
Neki stručnjaci za praćenje čak govore da definicija usluge mora
uključivati i nadzor.
Kao i testiranje, praćenje počinje u razvoju.
Isti alati koji prate proizvodno okruženje se mogu koristiti u razvoju
kako bi se uočili problemi sa performansama pre nego što se to desi u
proizvodnji.
Za DevOps su potrebne dve vrste nadgledanja: nadzor servera i
nadgledanje performansi same aplikacije.
Efikasnog praćenja tj nadgledanja bez odgovarajućih alatki ne postoji,
time se diskusije i istom svode na same rasprave o alatima.

12
Ciljevi DevOps-a
Pošto se DevOps u velikoj meri može smatrati metodologijom razvoja
sofrvera, ne postoji krajnja definicija koja ga može opisati.
Umesto toga, Devops je apstraktan koncept koji je fokusiran na nekoliko
ključnih principa.

Brzina

Kao i svaka aplikacija, pa i vasa, njen proces razvoja i mogućnosti


izbacivanja krajnjeg proizvoda na tržište, moraju posedovati izuzetnu
brzinu kako bi se bolje prilagodili potrebama klijenata, promenama na
tržištu i novim poslovnim ciljevima.
Glavni zadatak DevOps-a ovde je da omogući konstantan pritisak na
delove proizvodnje koji je neophodan za savremeni razvoj.
Gore pomenute prakse, kontinuirana dostava i kontinuirana integracija
omogućavaju da se ubrza rad tokom faza razvoja i rada vašeg projekta.

Pouzdanost
Kontinuirana integracija i kontinuirana dostava poboljšavaju ukupnu
stabilnost vašeg softvera. Ovo vam garantuje da su krajnja iskustva što
se tiče produkta što je moguće optimalnija i da je vaša aplikacija robusna
u svakoj fazi njenog životnog ciklusa.
Integrisanje paketa za automatsko testiranja je veoma moćan alat koji
pomaže razvojnom timu da odmah identifikuje probleme, te su oni
odmah obavešteni o svim nepredvidljivim problemima.

13
Brza dostava
Jedna od važnih osobina DevOps-a je ta da želi povećati tempo novih
izdanja što omogućava vašem timu da vršite izmene na vašem softveru
što je češće moguće.
Prednosti ovog cilja su slične prednostima koje donosi povećanje same
brzine rada, a to je da objavljivanjem čestih i brzih izdanja vaše
aplikacije osigurava da vreme obrade bilo koje greške bude svedeno na
minimum.
Taj brzi tempo izbacivanja različitih verzija aplikacija takođe
omogućava razvojnom timu da smanji troškove razvoja i samog
testiranja.

Prilagodljivost

Da bi aplikacija bila robusna, još jedan zadatak DevOps-a je da fokusira


developere na pravljenje aplikacije i platforme koje se brzo i lako
razmeštaju sa stalno promenljivim zahtevima korisnika.
U idealnom slučaju, takvi procesi bi trebali biti automatizovani i
pouzdani, pružajući softveru mogućnost prilagođavanja u pokretu kada
dodjie do nekog iznenadnog zahteva od strane korisnika ili tržišta.
Cilj je omogučiti administratorima i programerima da brzo i lako šire
hardver i usluge koristeći programske API-e za kodiranje u cloudu, gde
su svi povezani, što je dramatično poboljšanje u odnosu na tradicionalne
prakse razmeštanja i podešavanja raznih konzoli ili računara.
Primenom svega ovoga, DevOps nastoji da poboljša stvaranje ovih
okruženja za razvoj, testiranja i proizvodnju.

14
Sigurnost

DevOps takođe podstiče snažne bezbednosne prakse automatizacijom


smernica za usklađivanje, pojednostavljivanje konfiguracionih procesa i
uvodjenjem detaljnih bezbednosnih kontrola.
Kodna infrastruktura poboljšava bezbednost tako što što više otklanja
ljudski element prilikom korišćenja novog hardvera i usluga.
Stvaranje nove infrastrukture koja odgovara postojećim konfiguracijama
umanjuje pojavljivanje grešaka.

Saradnja

Kao i kod drugih metoda razvoja softvera koje su zasnovane na agilnim


principima, DevOps snažno podstiče saradnju tokom celog razvoja
aplikacije.
Svakog člana nekog tima treba podsticati da preuzme vlasništvo i da
bude odgovoran za delove projekta za koje je zadužen.
Sve to dovodi do bolje efikasnog tima, što takođe povećava
produktivnost, smanjuje greške pa i poboljšava zadovoljstvo radnika
samim poslom.
Čak i administratori datog projekta bi trebali sarađivati tokom celog
perioda kreiranja produkta deljenjem odgovornosti tokom rada.

15
Ko je usvojio DevOps?
DevOps, nebitno da li je u ranim fazama ili da li je već primenjen u
preduzećima starim preko 100 godina, uvek poseduje značajne IT
procese.
Stari primeri DevOps-a, kao što su Facebook, Amazon i Netflix, su često
citirani primeri vođa.
Danas se svaka vrsta posla vodi kao neka branža DevOps-a.
Glavna mediska kompanija Sony Pictures,finansiske usluge Barclays
Bank i proizvodjača gradjevinskih proizvoda
USG neke su od primera drugih uspesnih prica DevOps-a u
vestima.Iznenadjujuće, možda preduzeca uzimaju odgovornost da 81%
usvaja DevOps negde u svojoj organizaciji. Mala i srednja preduzeća
(SMBs) iskorišćavaju prednosti DevOps-a,a da 70% kaže da ih koristi.
Mora se naglasiti da postoji puno dokaza koji pokazuju da velicina
kompanije sama po sebi nije pokazatelj uspeha DevOps-a. Čak i neke
vladine organizacije prihvataju DevOpsAmericki ured za patente i
Trgovinski ured premestio se na DevOps i sada ima prosecno oko 1.000
automatizovanih gradjenja nedeljno. Ali čak i kada porast claud i
container tehnologija doprinese usvajanju DevOps-a širom sveta ,autor i
stručnjak Gene Kim navodi da DevOps ima još dosta prostora za razvoj.

16
Izvori:
the agile admin
https://theagileadmin.com/what-is-devops/

New Relic.
https://newrelic.com/devops/what-is-devops

Amazon Web Services (AWS)


https://aws.amazon.com/devops/what-is-devops/

17

You might also like