Docker – novi servis u mCloud ponudi
Docker je tu već neko vreme i većina nas je već imala priliku da koristi ovaj servis. Od nedavno mCloud je u svoju ponudu uvrstio i Docker, pa je ovo prilika da ga predstavimo i ujedno vas pozovemo da ga još danas testirate i proverite sve šta može da vam ponudi.
Pre toga da vas malo upoznamo sa ovim servisom i razlozima zašto bi on trebalo da postane i vaš izbor.
Docker je open-source platforma (platform as a service – PaaS) bazirana na kontejnerima koja služi za razvoj i pokretanje aplikacija. Koncept kontejnera omogućava da kreirate kontejner u koji ćete smestiti svoju aplikaciju, zajedno sa njenim binarnim datotekama i bibliotekama, a zatim ga konfigurisati prema svojim potrebama.
Na dijagramu ispod je prikazan način na koji funkcionišu aplikacije u kontejneru.
Kao što je na slici prikazano, Docker kontejner sadrži aplikaciju, kao i binarne datoteke i biblioteke koje su aplikaciji potrebne za pokretanje i rad. Kontejner radi pod kontrolom Docker-a, koji radi kao servis na operativnom sistemu koristeći Linux kernel za kontrolu. Uz pomoć WSL ili VM može da se pokrene i na drugim OS kao što je Windows 10, Windows Server ili Mac OSX.
Docker platforma
Kao što smo već pomenuli, Docker omogućava pakovanje i pokretanje aplikacije u izdvojenom kontejneru. Ova izdvojenost i bezbednost omogućavaju da simultano pokrenete više kontejnera na određenom hostu. Kontejneri rade kao odvojeni procesi u posebnom okruženju. To znači da možete pokrenuti više kontejnera na jednoj hardverskoj konfiguraciji koji mogu raditi potpuno izolovano ili sa nekim deljenim resursima, jedni ka drugima ili spolja.
Docker obezbeđuje alate kao i platformu za upravljanje životnim ciklusom kontejnera. Na vama je da kreirate aplikaciju koristeći kontejnere, uradite testiranje u istom okruženju i zatim je lansirate u produkciju kao kontejner. Ovo radi isto bez obzira da li je vaše produkciono okruženje lokalni data centar, cloud provajder ili kombinacija ta dva okruženja.
Upotreba Docker-a
Pre svega Docker pojednostavljuje i usmerava proces razvoja aplikacije omogućavajući developerima da rade u standardizovanom okruženju koristeći lokalne kontejnere koji obezbeđuju aplikacije i servise.
Primer iz prakse bi mogao da izgleda ovako:
Developeri rade na razvoju koda lokalno i razmenuju svoj rad sa kolegama koji sadrži i instrukcije za izgradnju kontejnera. Istovremeno, Docker koriste za stavljanje aplikacija na testno okruženje i tu ih ujedno i testiraju. Kada pronađu bag, mogu lako da ga isprave u razvojnom okruženju i ponovo postave na testno okruženje za potrebe ponovnog testiranja i validacije. Kada je testiranje završeno, slanje fix-a prema krajnjem korisniku je dalje izuzetno jednostavan proces.
Ovo je samo jedan primer kako može izgledati proces od izrade aplikacije do njene pune implementacije u produkciji.
Iako bi bilo dobro da vas upoznamo sa svim komponentama Docker-a, to nije predmet ovog teksta. Ukoliko vas zanima da pročitate nešto više na ovu temu, pročitajte članak koji detaljnije opisuje Docker arhitekturu.
Prednosti korišćenja Docker-a
Pre svega, pokretanje aplikacija u kontejnerima donosi mnoge benefite za developere:
Jednostavno prebacivanje aplikacije
Jednom kada ste testirali vašu aplikaciju u kontejneru, možete je postaviti na bilo koji drugi sistem gde radi Docker i možete biti sigurni da će vaša aplikacija raditi isto onako kao kada ste je testirali.
Bolje performanse
Iako virtuelne mašine predstavljaju alternativu kontejnerima, kontejneri koriste manje resursa, rade brže i lakse ih je kontrolisati i distribuirati. Lako ih je napraviti i brzo se pokreću.
Bolja produktivnost
Imajući u vidu dve prethodno pomenute prednosti, logično proizilazi da rad u Docker-u čini vaš proces razvoja aplikacije mnogo bržim u odnosu na tradicionalni pristup. Kombinacijom dostupnih alata i same arhitekture sistema postižete da je proces od početka razvoja do stavljanja u produkciju znatno kraći, što u krajnoj instanci pozitivno utiče i na produktivnost developera.
Višefazni razvoj
Zahvaljujući svojoj arhitekturi, Docker omogućava da svaki kontejner sadrži verziju softvera koji je neophodan za rad te konkretne aplikacije u određenom kontejneru. Ukoliko drugi kontejner sadrži neku drugu aplikaciju, koja zahteva drugu verziju supporting softvera, to neće predstavljati nikakav problem jer su kontejneri u Docker-u potpuno nezavisni jedan od drugog.
To takođe znači da kako se krećete kroz različite faze razvoja i testiranja aplikacije, možete biti sigurni da će ona raditi na isti način u svim fazama. Ovo vam daje određenu vrstu sigurnosti u procesu njenog razvoja od početka do faze stavljanja u produkciono okruženje.
Skalabilnost
I za kraj možda najupečatljivija prednost kada je u pitanju sam proces razvoja aplikacija. Možete brzo i lako kreirati nove kontejnere u skladu sa potrebama koje vam nameće razvojni proces. Ukoliko se ukaže potreba za novim kontejnerom, lako ćete napraviti novi. Korišćenjem više kontejnera možete iskoristiti prednost različitih opcija za upravljanje kontejnerima, što je samo još jedan plus celog ovog koncepta.
Na kraju, moramo i da napomenemo da i pored svih navedenih prednosti, nisu sve aplikacije pogodne za rad u kontejnerima. Na primer, opšte je prihvaćeno da aplikacije sa GUI nisu pogodne za korišćenje u Docker-u.
Zato je naš savet da se pre početka korišćenja obratite našoj tehničkoj podršci kako biste dobili sve neophodne informacije u vezi sa korišćenjem ovog servisa u našoj ponudi.

