Ako ste u IT industriji, možda ste sigurno čuli jednu od najpopularnijih modnih riječi pod nazivom DevOps. Ako želite nastaviti karijeru u DevOpsu, onda je sigurno korisno i korisno ići na . Prije nego što nastavimo dalje, predložit ću vam da prođete kroz sljedeće blogove:
10 najvažnijih razloga za učenje DevOpsa
Mnogo velikih IT tvrtki prihvatilo je DevOps kao svoj put naprijed. Dakle, na ovom blogu ću raspraviti što je zapravo DevOps i točke koje ću obrađivati su sljedeće:
Što je DevOps?
Pojam DevOps kombinacija je dviju riječi, naime Razvoj i Operacije. DevOps je praksa koja omogućava jednom timu da upravlja cjelokupnim životnim ciklusom razvoja aplikacija, odnosno razvojem, testiranjem, implementacijom i nadzorom.
Krajnji cilj DevOps-a je smanjiti trajanje životnog ciklusa razvoja sustava, istovremeno isporučujući značajke, popravke i ažuriranja u uskoj sinkronizaciji s poslovnim ciljevima.
DevOps je pristup razvoju softvera uz pomoć kojeg možete brzo i s više pouzdanosti razviti softver vrhunske kvalitete. Sastoji se od različitih faza kao što su kontinuirani razvoj, kontinuirana integracija, kontinuirano testiranje, kontinuirano postavljanje i kontinuirano praćenje.
Pa budući da je to DevOps, pogledajmo povijest DevOpsa.
Povijest DevOpsa
Prije DevOps-a, imali smo dva pristupa za razvoj softvera, a to su Waterfall i Agile.
Model slapa
Model vodopada model je softverskog razvoja koji je prilično izravan naprijed i linearan. Ovaj model slijedi pristup od vrha prema dolje.
Ovaj model ima različite početke Prikupljanje i analiza zahtjeva . Ovo je faza u kojoj od klijenta dobivate zahtjeve za razvoj aplikacije. Nakon toga pokušavate analizirati ove zahtjeve.
Sljedeća faza je Oblikovati fazu u kojoj pripremate nacrt softvera. Ovdje razmišljate o tome kako će softver zapravo izgledati.
Nakon što je dizajn spreman, krenite dalje s Provedba faza u kojoj započinjete s kodiranjem aplikacije. Tim programera zajedno radi na raznim komponentama aplikacije.
Nakon što dovršite razvoj aplikacije, testirate ga u Verifikacija faza. Postoje različita ispitivanja koja se provode na aplikaciji, poput jedinstvenog testiranja, integracijskog testiranja, ispitivanja performansi itd.
Nakon završetka svih testova na aplikaciji ona se raspoređuje na proizvodne poslužitelje.
Napokon dolazi Održavanje faza. U ovoj se fazi aplikacija prati radi izvedbe. Sva pitanja vezana uz izvedbu aplikacije rješavaju se u ovoj fazi.
Prednosti modela vodopada:
Jednostavno za razumijevanje i upotrebu
Omogućuje jednostavno testiranje i analizu
Štedi značajnu količinu vremena i novca
Dobro za male projekte ako su svi zahtjevi jasno definirani
c ++ serija fibonacci
Omogućuje departizaciju i upravljačku kontrolu
Mane modela slapa:
Rizično i neizvjesno
Nedostatak vidljivosti trenutnog napretka
Nije prikladno kada se zahtjevi mijenjaju
Teško je izmijeniti proizvod u fazi ispitivanja
Krajnji proizvod dostupan je samo na kraju ciklusa
Nije prikladno za velike i složene projekte
Agilna metodologija
Agile Methodology je iterativni pristup razvoju softvera gdje se softverski projekt raščlanjuje na razne iteracije ili sprinteve. Svaka iteracija ima faze poput modela vodopada kao što su prikupljanje zahtjeva, dizajn, razvoj, ispitivanje i održavanje. Trajanje svake iteracije obično je 2-8 tjedana.
Agilan proces
U Agileu tvrtka objavljuje aplikaciju s nekim visoko prioritetnim značajkama u prvoj iteraciji.
Nakon objavljivanja, krajnji korisnici ili kupci daju vam povratne informacije o izvedbi aplikacije.
Tada u program unosite potrebne izmjene, zajedno s nekim novim značajkama, a aplikacija se ponovno pušta, što je druga iteracija.
Cijeli ovaj postupak ponavljate dok ne postignete željenu kvalitetu softvera.
Prednosti agilnog modela
Prilagodljivo reagira na promjene zahtjeva
Ispravljanje pogrešaka na početku razvojnog procesa čini ovaj postupak isplativijim
Poboljšava kvalitetu proizvoda i čini ga vrlo bez pogrešaka
Omogućuje izravnu komunikaciju između ljudi uključenih u softverski projekt
Izuzetno pogodan za velike i dugoročne projekte
Minimalni zahtjevi za resursima i vrlo jednostavni za upravljanje
Mane agilnog modela
Jako ovisi o jasnim zahtjevima kupaca
Prilično je teško predvidjeti vrijeme i trud za veće projekte
Nije prikladno za složene projekte
Nedostaje učinkovitost dokumentacije
Povećani rizici održavanja
Krenimo sada i razgovarajmo o fazama i alatima DevOpsa.
DevOps faze i alati
Kao što je ranije spomenuto, različite faze kao što su kontinuirani razvoj, kontinuirana integracija, kontinuirano testiranje, kontinuirano postavljanje i kontinuirano praćenje čine životni ciklus DevOpsa. Sada ćemo pogledati svaku od faza DevOps životnog ciklusa jednu po jednu.
Faza - 1: Kontinuirani razvoj
Korišteni alati: Git, SVN, Mercurial, CVS
Tijek procesa:
To je faza koja uključuje 'planiranje' i 'kodiranje' softvera. Vi odlučujete o viziji projekta tijekom faze planiranja, a programeri započinju s razvojem koda za aplikaciju.
sučelje markera u primjeru Java
Nema Alati DevOps koji su potrebni za planiranje, ali postoji niz alata za održavanje koda.
Kôd može biti na bilo kojem jeziku, ali vi ga održavate pomoću alata za kontrolu verzija. Ovaj postupak održavanja koda poznat je pod nazivom Upravljanje izvornim kodom.
Nakon što se razvije kôd, prelazite na fazu kontinuirane integracije.
Faza - 2: Kontinuirana integracija
Alati: Jenkins, TeamCity, Travis
Tijek procesa:
Ova je faza srž cjelokupnog životnog ciklusa DevOpsa. To je praksa u kojoj programeri trebaju češće uređivati promjene izvornog koda. To može biti na dnevnoj ili tjednoj osnovi.
Zatim gradite svaki predaj, a to omogućuje rano otkrivanje problema ako su prisutni. Građevinski kod ne uključuje samo sastavljanje, već uključuje i pregled koda, jedinstveno testiranje, integracijsko testiranje i pakiranje.
Kôd koji podržava novu funkcionalnost je s postojećim kodom. Budući da se kontinuirano razvija softver, ažurirani kôd morate kontinuirano i glatko integrirati u sustave kako biste odražavali promjene krajnjim korisnicima.
- U ovoj fazi koristite alate za izgradnju / pakiranje koda u izvršnu datoteku kako biste ga mogli proslijediti u sljedeće faze.
Faza - 3: Kontinuirano ispitivanje
Alati: Jenkins, Selenium TestNG, JUnit
Tijek procesa:
Ovo je faza u kojoj kontinuirano testirate razvijeni softver na programske pogreške pomoću alata za automatizaciju. Ovi alati omogućuju QA-ovima da paralelno temeljito testiraju više baza koda kako bi se osiguralo da u funkciji nema nedostataka. U ovoj fazi možete koristiti Docker spremnike za simulaciju testnog okruženja.
Selen koristi se za automatsko testiranje, a izvješća generira TestNG . Cijelu ovu fazu testiranja možete automatizirati uz pomoć alata za kontinuiranu integraciju nazvanog Jenkins.
Pretpostavimo da ste na Java napisali selenov kôd za testiranje svoje aplikacije. Sada ovaj kod možete graditi pomoću mrava ili mavena. Jednom kada izradite kôd, testirate ga na testiranju prihvaćanja korisnika (UAT). Cijeli ovaj postupak može se automatizirati pomoću Jenkins .
Faza - 4: Kontinuirano postavljanje
Korišteni alati:
Upravljanje konfiguracijom - kuhar, lutka, odgovoran
što init radi u pythonu
Kontejnerizacija - Docker, Vagrant
Tijek procesa:
- Ovo je faza u kojoj rasporedite kôd na proizvodne poslužitelje. Također je važno osigurati ispravnu implementaciju koda na svim poslužiteljima. Prije nego što krenemo dalje, pokušajmo razumjeti nekoliko stvari o upravljanju konfiguracijom i Alati za kontejnerizaciju . Ovi skupovi alata ovdje pomažu u postizanju kontinuirane implementacije (CD).
Upravljanje konfiguracijom je čin uspostavljanja i održavanja dosljednosti u funkcionalnim zahtjevima i izvedbi aplikacije. Dopustite mi da to pojednostavim riječima, to je čin puštanja implementacija na poslužitelje, zakazivanje ažuriranja na svim poslužiteljima i najvažnije održavanje konfiguracija dosljednih na svim poslužiteljima.
Alati za kontejnerizaciju također igraju jednako ključnu ulogu u fazi implementacije. Alati za kontejnerizaciju pomažu u postizanju dosljednosti u razvojnim, testnim, scenskim i proizvodnim okruženjima. Osim toga, oni također pomažu u brzom povećanju i smanjivanju slučajeva.
Faza - 5: Kontinuirano praćenje
Korišteni alati: Splunk, ELK Stack, Nagios, New Relic
Tijek procesa:
- Ovo je vrlo kritična faza životnog ciklusa DevOpsa u kojoj neprestano nadzirete izvedbu svoje aplikacije. Ovdje bilježite vitalne informacije o korištenju softvera. Zatim te podatke obrađujete kako biste provjerili ispravnu funkcionalnost aplikacije. U ovoj fazi rješavate sistemske pogreške kao što su malo memorije, poslužitelj nedostupan itd.
Ova praksa uključuje sudjelovanje Operacijskog tima koji će nadgledati korisničku aktivnost zbog bugova ili bilo kakvog nepravilnog ponašanja sustava.Alati za kontinuirano nadgledanje pomažu vam da pažljivo pratite izvedbu aplikacije i poslužitelje, a omogućuju vam i proaktivnu provjeru ispravnosti sustava.
Na kraju ćemo razgovarati o tome tko je zapravo DevOps inženjer.
Tko je DevOps inženjer?
DevOps Engineer je netko tko razumije životni ciklus razvoja softvera i ima izravno razumijevanje različitih alata za automatizaciju za razvoj digitalnih cjevovoda (CI / CD cjevovoda).
DevOps Engineer surađuje s programerima i IT osobljem kako bi nadgledao izdanja koda. Oni su ili programeri koji se zanimaju za implementaciju i mrežne operacije ili sysadmini koji vole strast prema skriptiranju i kodiranju i prelaze na razvojnu stranu gdje mogu poboljšati planiranje testiranja i implementacije.
Dakle, to je sve bilo s moje strane u ovom članku o tome što je DevOps. Nadam se da ste razumjeli sve o čemu sam ovdje razgovarao. Ako imate pitanja, ljubazno ih spomenite u odjeljku za komentare.
Slijedi popis blogova koji bi ti mogli biti zanimljivi:
Sad kad ste shvatili Što je DevOps , provjerite Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka DevOps certifikacijski tečaj pomaže učenicima da shvate što je DevOps i steknu stručnost u raznim DevOps procesima i alatima kao što su Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT za automatizaciju više koraka u SDLC-u.
Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.