Što je DevOps? Objašnjena metodologija, principi i faze DevOpsa

Shvatite što su DevOps i razne faze životnog ciklusa DevOpsa. Ovaj post također sadrži primjere koji objašnjavaju svaku fazu koja je uključena u DevOps od razvoja do implementacije.

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:

  1. Vodič za kontinuiranu isporuku
  2. Vodič za kontejnere Docker
  3. Vodič za lutke

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.