CCBiLL o DevOps-u u praksi: platforme, sistemi, alati
Promo tekstPojam DevOps sve je popularniji u modernom IT svetu i čini se da je to sledeći veliki korak ka efikasnijem razvoju softvera. Sam termin je kovanica dvaju tradicionalnih zanimanja, Development (razvoj) i Operations (sistem administracija), ali njegova definicija nije tako jednostavna.
Amazon, na primer, definiše DevOps kao „skup kulturoloških filozofija, praksi i alata koji omogućuju brži razvoj IT aplikacija i servisa“, što je vrlo uopšteno. Ono što je svakako zajedničko svim timovima koji rade po DevOps metodologiji jeste nastojanje da se tradicionalni IT procesi pojednostave i ubrzaju kako bi se postigla veća efikasnost ne samo IT procesa već i celokupnog poslovanja.
Šta je onda DevOps?
Krajnji cilj implementacije DevOps principa je bolje integrisati timove koji se bave razvojem i one koji su odgovorni za održavanje razvojnog okruženja. U praksi, to znači da nema stroge podele između ovih timova, već da se očekuje da svi članovi usvajaju šira znanja i učestvuju u različitim aktivnostima.
DevOps inženjer će, u tom smislu, biti neko ko radi i na razvoju koda i učestvuje i u planiranju njegovog testiranja i release-a. Neko ko se ranije bavio samo konfiguracijom platforme, može da pregleda kod aplikacije i da doprinese na više načina. Ovakvom integracijom timova postiže se veća produktivnost, dok se istovremeno smanjuju šanse da dođe do problema pri plasiranju aplikacije kada ona konačno bude spremna za tržište.
DevOps i agilni principi
Kako su principi agilnog poslovanja tesno povezani sa DevOps metodologijom, ova dva pojma se često, potpuno opravdano, pominju u kombinaciji jedan sa drugim. DevOps principi logički se oslanjaju na primenu scrum metodologije i agilnih metoda, ali DevOps je znatno više od toga. Zbog toga ga mnogi smatraju potpuno novom fazom u upravljanju, posle tradicionalnog Waterfall i nešto novijeg Scrum metoda.
Neke od ključnh razlika između pojmova Scrum i DevOps su:
- Upotreba: agile i scrum se mogu koristiti u raznim departmanima, dok se DevOps fokusira samo na razvoj i razvojno okruženje;
- Cilj: scrum metodologija teži da omogući lako pravljenje izmena u proizvodnom procesu na nekoliko nedelja, dok DevOps teži da objavljuje nov kod na dnevnom nivou (kontinuinirana isporuka);
- Veličina tima: scrum timovi su često manji sa jasno određenim pozcijama (arhitekta, programeri, testeri), dok su DevOps timovi mnogo raznovrsniji (DevOps inženjeri, sNetOps inženjeri, sistem administratori, release inženjeri, pa čak i DevOps evangelist...)
Činjenica jeste da DevOps predstavlja veliku promenu ne samo u načinu upravljanja projektom nego i u komunikaciji između samih timova. U tom smislu, on podrazumeva primenu određenih agilnih metoda razvoja, ali i innovativnih procesa, sistema i alata. Zato ga je možda i najlakše objasniti kroz neke od sistema i platformi koji se koriste u DevOps timovima.
Platforme, sistemi, i alati za automatizaciju
Upotreba inovativnih tehonologija karakteristična je za svaki novi trend u IT svetu, pa tako i u DevOps-u. Iako je on skup različitih principa, postoji jedan značajan fokus kada se radi o tehnologiji, a to je automatizacija. Ovo je ključna reč kada se radi o primeni DevOps-a u praksi, jer ga je moguće implementirati samo kroz sisteme koji automatizuju tradicionalne procese kako bi se postigla veća brzina i efikasnost rada.
Cloud-native platforme
Pošto DevOps timovi razvijaju nove osobine aplikacija i servisa na dnevnom nivou, platforma za takav razvoj mora da im omogući lako „skaliranje“, tj. dodavanje novih IT resursa (procesorska snaga, RAM, opseg prenosa podataka, itd.). Zbog toga se DevOps timovi najčešće odlučuju za Public Cloud ili virtualne platforme, jer one imaju veću fleksibilnost u poređenju sa fizičkim, „namenskim“ serverima. VMware vSphere, VMware vRealize Automation i VMware Tanzu su neke od tehnologija koje se često pominju u ovom svetu, jer omogućuju brzo i lako kreiranje novih virtuelnih mašina.
Jedan od pojmova u vezi sa infrastrukturom koji se sve više koristi u DevOps svetu jeste i „cloud-native“ infrastruktura. Kao okruženje koje se kontroliše putem API-a, a kojim se upravlja putem softvera, cloud-native platforma je dovoljno fleksibilna da se prilagodi potrebama DevOps timova. Najčešće tehnologije koje se koriste za kreiranje takve platforme su kontejneri (Docker) i Kubernetes kao sistem za njihovu orkestraciju.
Osim njih, platforme poput Bare Metal Cloud-a koji je kreirao phoenixNAP, omogućavaju brzu i laku implementaciju fizičkih servera i tako predstavljaju odlično rešenje za DevOps timove. Server se može podesiti za manje od dva minuta i to preko API-a ili CLI-a, a troškovi se naplaćuju po satu ili na mesečnom nivou.
Infrastructure as Code alati
Infrastructure as Code je još jedan bitan termin koji se dovodi u vezu sa DevOps metodologijom. U osnovi, on se odnosi na alate koji omogućuju implementaciju i konfiguraciju razvojnog okruženja putem koda. Njihovim korišćenjem, jedno okruženje se može replicirati iznova uz samo nekoliko linija koda, umesto da se svaki novi server ili instanca Public Cloud okruženja konfiguriše iz početka. Postoje različiti alati koji potpadaju pod ovu kategoriju, a neki od najpoznatijih su Terraform, Pulumi i Ansible.
CI/CD Pipeline (sistem kontinuiranog razvoja i kontinuirane integracije)
Continuous Integration/Continuous Deployment (CI/CD) odnosi se na konfiguraciju platforme koja omogućuje da se njene komponente konstantno prilagođavaju novim izmenama u kodu. Kako DevOps timovi rade na razvoju novih elemenata i opcija svakodnevno, tako platforma te promene treba da podrži. Da bi se to omogućilo koriste se tehnologije koje su gore opisane i alati poput Jenkins-a, GitLab-a, TeamCity-ja, koji su samo neki od najpopularnijih.
Zašto DevOps?
Primena DevOps metodologija kao takva je prisutna u IT krugovima već nekoliko godina, ali u poslednje vreme postaje sve značajnija. Neke od njenih najbitnijih prednosti opisane su u uvodu, a izvesno je da će one dovesti do samo još većeg usvajanja DevOps filozofija u budućnosti.
U phoenixNAP-u, koji ima kancelarije u Novom Sadu i Beogradu, DevOps pristup se sve više koristi i to je posebno upečatljivo u razvoju Bare Metal Cloud platforme. I sam namenjen DevOps timovima, Bare Metal Cloud je razvijen od strane DevOps inženjera i po procedurama koje omogućuju agilan razvoj uz najsavremenije tehnologije.
phoenixNAP i CCBill i dalje imaju otvorene pozicije za DevOps inženjere, kao i mnoge druge IT stručnjake. Sve pozicije možete videti na ovom sajtu.
CCBill Srbija ove godine učestvuje i na 11. Regionalnom sajmu poslova, gde možete saznati više o kompaniji kroz direktan kontakt sa predstavnicima kompanije. Link do štanda je: http://rs.regionalnisajamposlova.com/pavilion/IT/stand/ccbill
Zasto onda ne zovu juniore na razgovor pa da im objasne sta znaci biti DevOps?