Kako bismo Vam omogućili bolje korisničko iskustvo te potpunu funkcionalnost Internet stranice, ova stranica pohranjuje kolačiće (cookies).

Analitičke kolačiće Google Analytics koristimo samo uz Vašu suglasnost. Prihvaćam Odbijam Više informacija

26. veljače 2019.

Moderni DevOps pristupi i tehnologije

U današnjem blog postu saznajte više o DevOps pristupima i tehnologijama.

Prije nešto više od deset godina pojavila se potreba za uskom suradnjom developera i IT operacijskih timova. Koncept te suradnje i pristupa razvoju i održavanju softvera danas zovemo DevOps. Glavni cilj DevOps pristupa je bolji softver u što kraćem vremenu, češća ažuriranja i poboljšanja softvera. U članku donosimo najbolje prakse i primjere DevOps pristupa i rješenja.

DevOps prakse

Postoji nekoliko ključnih praksi koje pomažu organizacijama da brže inoviraju kroz automatizaciju razvoja softvera i upravljanja infrastrukturom.

Continuous Integration

U prošlosti, developeri su radili u izolaciji određeno vrijeme, a zatim primjenili promjene na master granu tek kada bi završili. Kroz primjenu kontinuirane integracije promjene se redovito spremaju na centralni repozitorij, a zatim se izvršavaju automatizirani buildovi i testovi. To omogućava brže pronalaženje grešaka, poboljšava kvalitetu softvera te smanjuje vrijeme potrebno za ažuriranje istog.

Jedan od najčešće korištenih alata za kontinuiranu integraciju je Jenkins. Koristeći ga, developer može pullati kod sa GIT repozitorija, buildati ga te deployati na testni ili produkcijski server. Isto tako, može se namjestiti da «okida» novi build automatski, nakon što prepozna promjenu u GIT repozitoriju.

Continuous Delivery

Ovo je faza gdje je kod deployan u produkcijsko okruženje. Radi toga je potrebno uvjeriti se da je kod ispravno deployan na sve servere. S obzirom da se ovo radi kontinuirano, bitni su alati koji upravljaju konfiguracijom. Među poznatijima su Puppet, Chef, SaltStack.

Također, kontejnerizacijski alati imaju vrlo bitnu ulogu u deployment fazi. Najpoznatiji su svakako Docker te Vagrant koji pružaju konstantnost kroz razvojna, testna i produkcijska okruženja. Osim toga, pomažu pri skaliranju.

Microservices

Mikroservisna arhitektura podrazumijeva izradu aplikacije kao set manjih servisa. Svaki od njih je zasebno pokretan proces i komunicira s drugim servisima putem definiranog sučelja, obično API-ja. Svaki servis je zadužen za jednu namjenu. Tako je moguće koristiti više frameworka i programskih jezika za izradu mikroservisa te ih deployati neovisno.

Monitoring

Monitoring je ključna faza čiji je cilj poboljšanje kvalitete softvera kroz nadzor performansi. To uključuje sudjelovanje IT operacijskog tima koji nadzire aktivnosti korisnika kako bi uočili greške ili neželjeno ponašanje sustava. To se može postići i raznim alatima koji kontinuirano prate performanse aplikacije te izdvajaju probleme. Neki od popularnijih alata za to su Splunk, Nagios, ELK Stack i Sensu. Ovi alati mogu pomoći u reduciranju troškova IT podrške.

Netflixov pristup

Kada pričamo o DevOps pristupu Netflix je jedan od najpoznatijih primjera. Oni su kreirali vlastiti alat Titus za container-based aplikacije. On im omogućava odlično skaliranje clustera, upravljanje resursima te bolje performanse.

Također, razvili su alat Chaos Monkey  koji im pomaže testirati stabilnost aplikacija u produkciji. To je alat koji nasumično onemogućava neke od instanci na produkciji i testira ponašanje sustava nakon toga. Na taj način Netflix je siguran da njihovi korisnici neće ostati bez usluge, čak i ako dođe do neke greške.

Facebook pristup

Facebook je jedan od začetnika takozvane Dark Launching tehnike. Ona podrazumijeva postupno puštanje raznih featurea ograničenom broju korisnika prije nego postane dostupno svima. To im omogućava da dobiju feedback u startu, testiraju greške te manje opterećuju infrastrukturu.

Kontaktirajte nas putem e-maila info@windays.hr te nas pratite putem Facebooka i Twittera.