BitLab hosting
Početna stranica > Novosti

Zašto su Docker stručnjaci sve više traženiji?

Zašto su Docker stručnjaci sve više traženiji?
18.03.2021. god.
Ako razvijate softver onda znate koliko je teško pustiti aplikaciju u produkciju. Treba konfigurisati server, treba podesiti portove, uvjeriti se da je sve u redu i tako svaki put sa svakim novim serverom. Ili možete koristiti Docker-ov virtuelni kontejner i olakšati sebi posao.
U svijetu IT-a događaju se mnoge zanimljive stvari praktično svaki dan, ali određene usluge i proizvodi privuku malo više pažnje od ostalih. Docker je definitivno jedna od njih, a vjerujemo da će biti zanimljiva svima onima koji razvijaju aplikacije. Razvoj aplikacija može biti jako kompleksan iz mnogo razloga, ali najčešći razlozi su miješanje različitih tehnologija, usklađivanje ljudskog potencijala, testiranje napravljenog, podizanje aplikacije na produkcijske servere, rješavanje velikog broja tehničkih problema u hodu… Kada vam ovi problemi postanu svakodnevnica, odnosno kada se s njima susrećete vrlo često, vjerovatno biste sa oduševljenjem dočekali platformu koja vam može olakšati život i koja vam obećava mnogo lakši i brži razvoj aplikacija. Docker je upravo to – platforma koja dozvoljava programerima, sistem administratorima i ljudima sličnih profesija kreiranje i održavanje aplikacija u softverskom kontejneru. Zvuči zanimljivo, zar ne? Saznajte više o Docker-u u nastavku ovog teksta.
 
Ako imalo pratite svijet start-up-a onda ste upoznati kojom brzinom start-up-i dolaze i odlaze sa scene i vrlo vjerovatno imate osjećaj da bi i Docker mogao biti „samo još jedan start-up u nizu“ koji će biti popularan jedno kratko vrijeme i nakon toga će svi zaboraviti na njega. Na njegovo mjesto će doći neko drugi sa sličnom ili boljom idejom, ali i taj drugi start-up čeka ista sudbina… Zašto ovo spominjemo? Zato jer je u prošlosti već bilo sličnih pokušaja da se automatizuje i ubrza razvoj aplikacija, ali većina tih pokušaja je neslavno završila. Neki start-up-i su se prebacili na druge usluge ili proizvode, neki su propali, ali u suštini većina nije uspjela ostaviti značajniji trag, barem ne u ovom kontekstu. Docker bi mogao biti drugačiji iz mnogo razloga, a neke od njih ćemo spomenuti i objasniti u ovom tekstu, ali prije toga vam želimo pojasniti šta je cilj Docker-a i zašto je ovaj start-up uopšte nastao.
U prošlosti, kada ste razvijali aplikaciju, sve što ste trebali imati je zapravo laptop, odnosno računar na kojem ste razvijali aplikaciju, te server na kojem ste pohranjivali podatke. Klijent-server aplikaciju ste razvijali na najjednostavniji mogući način. Kada je aplikacija bila gotova, podignuli ste je na produkcijski server i korisnici su je mogli početi koristiti.
 
Najčešće bi veći dio aplikacije skinuli na svoj računar, a onaj manji dio bi odrađivao server, te bi on pohranjivao i slao određene podatke aplikaciji tj. korisniku. Zatim se razvoj aplikacija naglo zakomplikovao, odnosno postao je izuzetno kompleksan. Sam razvoj aplikacije se podijelio praktično na 10, pa čak i više, zasebnih grana. Tako su sada baze podataka i razvoj istih posebna grana razvoja aplikacije. Isto vrijedi i za front-end odnosno dizajn aplikacije, isto vrijedi za back-end, odnosno onaj dio aplikacije koji korisnik ne vidi (poslovna funkcija i uopšteno programski kôd koji je temelj aplikacije), pa su tu posebni serveri i operativni sistemi za aplikacije i još mnogo toga.
 
Iskombinovati to sve da radi zapravo nije lagano. Ponekad se više vremena potroši na postavljanje produkcijske okoline i testiranje iste, nego na sam razvoj aplikacije što je vrlo sramotno. U vremenu kada imamo najbolje moguće alate, hrpu biblioteka sa gotovim kôdovima, razno-razne forume i gotove dijelove kôda mi razvijamo aplikaciju duže nego prije 10-ak godina. Neki će reći: „Tada su aplikacije bile jednostavnije“ i biće u pravu. Prije su aplikacije bile jednostavnije i pružale su korisniku puno manje mogućnosti, ali i dalje je vrijeme potrebno za razvoj aplikacije ogromno i cilj svake kompanije je to svesti na minimum. Razviti aplikaciju u što kraćem roku, obaviti temeljno testiranje u takođe kratkom roku, te pustiti aplikaciju „van“ bez većih problema.
 
Nažalost, ne živimo u idealnom svijetu. I tu dolazimo do Docker-a. Ideje, ili ako želite – start-up-a, koji vam želi omogućiti da vi aplikaciju spakujete u virtuelni kontejner, te je na taj način prenosite sa servera na server, sa računara na računar i da je možete staviti u pogon vrlo brzo. Oni zapravo žele skratiti onaj zadnji dio razvoja aplikacije – puštanje u produkciju. Kao što smo rekli, to može biti izuzetno težak posao, naročito za programere koji nemaju iskustva s time – puno je tu tehničkih detalja i stvari koje zapravo spadaju u domenu „sistemskih inženjera“ koji su mnogo bolji u konfiguraciji produkcijskih servera. Prema određenim neslužbenim statistikama, Docker bi mogao skratiti razvoj aplikacije za 15-20 %, što bi bilo fantastično u svakom pogledu.
 
Docker u suštini
 
Kao virtuelna mašina, samo mnogo manja i laganija, Docker kontejner vam dozvoljava da aplikacije i servise prenosite u kontejneru sa jednog mjesta na drugi, odnosno sa jednog hosta na drugi. U suštini, moglo bi se reći da Docker objedinjuje alat za verziju i alat za izradu slike aplikacije/sistema, te vam dozvoljava jednostavno prenošenje aplikacije koju zatim možete instalirati na fizički server, u virtuelnu mašinu, na određeni Cloud servis. Evo jedan jednostavan primjer. Recimo da želite Docker kontejner koji sadrži običan servis (bilo koji jednostavni servis) ili recimo Apache web server. Kontejner bi se izgradio na bazi od Linux-a (Ubuntu ili CentOS) i taj određeni servis koji smo spomenuli bi bio instaliran i konfigurisan kao da se nalazi na bilo kojem Linux sistemu. I sve to zapakovano u jednoj datoteci, odnosno kontejneru kojeg ste izgradili.
 
 
Sada taj isti kontejner možete prebacivati, kao što smo rekli, od hosta do hosta, od servera do servera, te ga puštati u produkciju gdje god želite. Najlakši način je prebaciti kontejner na GitHub ili BitBucker i povući ga na računar gdje bi ste ga instalirali. Zašto Git version control? Zato jer je to najjednostavniji način dijeljenja i uvijek će svi moći povući zadnju verziju kontejnera. Kada kažemo „svi“ mislimo na one koji imaju pristup vašem Git skladištu, bez obzira na kojem se servisu nalazio. Docker za sada radi samo sa GitHub-om i BitBucket-om, ali realno gledajući to su dva version controla koji se najviše koriste i kojeg koristi 90% programera. Vjerovatno će se u budućnosti dodati još neki servis, ali to ne treba očekivati ove godine jer se radi na nekim drugim stvarima bitnima za same Docker kontejnere. U svakom slučaju, ako planirate koristiti Docker, moraćete napraviti korisnički račun na jednom od spomenutih servisa.
 
Vratimo se na produkciju. Napravili ste kontejner, stavili ste ga na GitHub/BitBucket i vrijeme je da ga pustite u produkciju. Dovoljno je da taj isti kôd postavite na virtuelni server, fizički server ili na Cloud instancu, gdje možete pokrenuti Docker. Ne morate uopšte brinuti o zavisnosti među hostovima, niti se zamarati instalacijom aplikacije, podešavanjem hardvera ili upasti u ostale klasične zamke virtualizacije. Sve što morate napraviti je putem Docker alata pravilno pokrenuti Docker kontejner i to je to.
Docker napravi virtuelni kontejner baziran na Linux-u i možete ga pokrenuti praktično bilo gdje jer tom istom kontejneru treba samo Linux jezgra da bi se mogla pokrenuti, a Docker u potpunosti iskorištava mogućnost da se kontejner začauri na jednom procesu na računaru domaćinu (hostu) koji je u potpunosti odvojen od operativnog sistema i okruženja domaćina. To znači da okruženje na kojem ste pokrenuli Docker kontejner uopšte ne zna za njega, odnosno ne može mu pristupiti niti mu može „išta napraviti“, kao ni što Docker kontejner ne zanima okruženje na kojem se nalazi.
 
Samim time možete na jednom virtuelnom serveru pokrenuti X različitih Docker kontejnera koji reprezentuju servise, a oni neće znati jedan za drugoga jer je svaki na svom procesu i radi ono za šta je namijenjen. A rekli smo već na početku da se tu radi o jako laganim procesima i mnogo ih je lakše koristiti nego kreirati hrpu virtuelnih mašina koje bi radile isti posao kao dotični kontejneri, ali bi vas mnogo više koštali – i finansijski i hardverski.
 
Nismo spomenuli da se Docker sastoji od dva alata – Docker Engine-a i Docker Hub-a. Docker Engine je zapravo glavni alat i runtime koji instalirate na računar domaćin na kojem želite pokrenuti Docker kontejner. Instalacija je samim tim vrlo jednostavna, a možete to učiniti preko komandne linije koju ćete naći u svim Linux distribucijama. Čak imate na stranicama Docker-a detaljan tutorijal koji će vam pokazati apsolutno sve – od toga kako skinuti Docker do toga kako ga koristiti, koje su mu glavne naredbe i kako uopšteno Docker funkcioniše.
 
Kako raditi sa Docker-om? Isto kao i sa svim Linux sistemima zapravo. Glavni alat će vam biti komandna linija i ako niste s njom na „ti“ imaćete problem. Možda i nećete ako ste voljni učiti koristiti komandnu liniju i naučiti ponešto o radu Linux-a. S druge strane, ako ste se ikada susreli sa Linux-om i komandnom linijom, znate da to i nije tako strašno. Ponavljamo – Docker ima fantastičnu dokumentaciju i tutorijale i ako samo njih slijedite, moći ćete napraviti što god poželite. Savjetujemo vam da dobro pročitate dokumentaciju i vidite koje naredbe možete koristiti, koji su opcionalni parametri koji vam mogu olakšati posao i kako bi cijeli proces kreiranja kontejnera, prebacivanja istoga na GitHub i skidanje na neki drugi host trebalo uopšte izgledati. Pametno je upoznati se sa cijelim procesom prije nego se odlučite koristiti Docker.
Ljudi koji koriste Docker još od verzije 0.X kažu da je krivulja učenja vrlo kratka i više-manje bezbolna što je podsticaj za one koji se boje Docker-a i koji nisu sigurni da li bi ga trebali probati ili ne. Čak možete pročitati i jako puno korisnih savjeta o tome kak ograditi kontejnere, šta staviti u njih, koliko ih opteretiti, kako podijeliti aplikaciju ili servise na kontejnere i tako dalje. To je prilično opširna i duboka tema u koju trenutno nećemo ulaziti, ali svakako treba razmisliti o određenim pitanjima i praksama. Da, Docker je tek u verziji 1.0, odnosno izašao je polovinom prošle godine i trebaće proći još određeno vrijeme da se neke stvari iskristalizuju, ali vjerujemo da će Docker još dugo biti s nama tako da će sve doći na svoje i to vrlo brzo.
 
Mnoge poznate kompanije su već probale Docker i mnoge ga koriste u svakodnevnom radu. Jedna od njih je eBay koja je svima poznata i oni koriste Docker za svoja testiranja i prebacivanje servisa sa testnog servera na testni server, ali u bližoj budućnosti planiraju staviti Docker i u produkciju. Dalje tu su New Relic, RackSpace, Baidu, Spotify, Bleacher report, Yelp, GILT, Yandex, Cambridge healthcare i mnoge druge. Pošto je Docker tek u verziji 1.0, ovo je veliki uspjeh. Vjerujemo da će se na ovoj listi pridružiti i mnoga druga zvučna imena poput Google-a, Facebook-a, Yahoo-a …
 
Ukoliko imate potrebe za ovim servisom ili ste jednostavno znatiželjni, svakako vam preporučujemo edukaciju za navedeni servis koji možete pronaći na sljedećem linku: https://edu.bitlab.rs/sr/docker.php .
 
 




Komentara (0) Ostavite Vaš komentar Objavite novost

NOVOSTI IZ RUBRIKE

Nova raketa je uspešno testirana, rekao je ruski predsednik na sastanku u Kremlju.


Izjave ruskog predsednika nisu prazne priče kao one evropskih političara, rekao je mađarski lider.


Moskva mora biti „primorana“ na mir kroz snagu, izjavio je ukrajinski lider.

Iako mnogi smatraju da je kuhinja samo funkcionalna, zapravo mož


Međunarodni krivični sud u Hagu optužio je izraelskog premijera za ratne zločine u Gazi


Ostale novosti iz rubrike »