KONTEJNERI – VIRTUELIZACIJA NOVE GENERACIJE

Docker i njegovi konkurenti su sve zastupljeniji – saznajte da li će uspeti da zamene virtuelizaciju?

Kada je na godišnjem okupljanju Python zajednice, konferenciji PyCon 2013, nakon pet minuta prekinuta prezentacija „Budućnost Linux kontejnera“, malo je ko od nekoliko desetina ljudi u sali mogao da pretpostavi da je prisustvovao prvom javnom predstavljanju tehnologije koja će za kratko vreme uneti pravu pometnju u IT svet. Takav razvoj situacije u narednim mesecima bio je verovatno iznenađenje i za samog prezentera, programera po imenu Solomon Hykes, koji je na konferenciji nastupio kao CEO i osnivač PaaS provajdera dotCloud.

Hykes je tada predstavio Docker, tehnologiju koja omogućava jednostavno pakovanje aplikacije i svih komponenti koje su joj potrebne za rad (OS alati, biblioteke itd.) u tzv. kontejner, koji se zatim može pokrenuti na bilo kojoj platformi na kojoj je Docker instaliran. Portabilnost je glavni cilj Docker‑a, što je predstavljeno i na logotipu tehnologije – kitu koji na leđima nosi kontejnere za transport tereta – sa idejom da će Docker omogućiti portabilnost aplikacija između različitih infrastruktura na sličan način na koji teretni kontejneri to odavno čine sa prenosom robe preko kopna, vode ili vazduha.

Odmah nakon predstavljanja, Docker je postao open source projekat, što je dodatno ubrzalo njegovo širenje i razvoj. Uz to, kompanija dotCloud je nešto kasnije preimenovana u Docker, sa namerom da se najveći deo resursa usmeri upravo ka njegovom daljem razvoju, razvoju pratećih alata i komercijalnih usluga izgrađenih oko ove tehnologije.

Kompanija je do sada sakupila oko 160 miliona dolara investicija, a pored nje, razvoju Docker‑a danas najviše doprinose IT giganti Red Hat, IBM, Cisco i Google.

Sve šira podrška

Docker je tehnologija orijentisana prvenstveno ka programerima kao krajnjim korisnicima, pa je tako sve parametre potrebne za kreiranje i pokretanje kontejnera moguće opisati u vidu koda u jednoj tekstualnoj datoteci – Docker fajlu, čija svaka naredba definiše jedan sloj kontejnera u fajl‑sistemu. U procesu kreiranja polazi se od postojećeg kontejnera, obično sa ogoljenim operativnim sistemom, na koji se zatim dodaju potrebne komponente – aplikativni kod, konfiguracioni fajlovi, programske biblioteke itd. Kontejneri se zato mogu posmatrati kao lagane virtuelne mašine, koje međusobno dele zajedničke slojeve na disku i ne sadrže ceo operativni sistem već koriste kernel servera na kome se izvršavaju, što im omogućava znatno manju potrošnju resursa i brže pokretanje.

Kreirani kontejneri se mogu publikovati u centralni registar po izboru, a uz ugrađenu integraciju sa javnim Docker Hub registrom korisnike praktično samo jedna docker run komanda deli od preuzimanja i pokretanja npr. zvanične distribucije izabranog web servera ili servera baza podataka. Izvršavanje kontejnera je zadatak za Docker engine, koji zapravo predstavlja upravljački sloj povrh fajl‑sistema i postojećih tehnologija za izolaciju unutar Linux kernela. Oslanjanje na Linux kernel predstavlja i ograničavajući faktor u pogledu portabilnosti, pošto je kontejnere koji za osnovu imaju Linux moguće pokrenuti samo na Linux operativnim sistemima, za koji u vreme pisanja ovog teksta postoji jedina produkciona implementacija Docker engine‑a.

U toku je proces prebacivanja tehnologije na druge platforme, pa je tako Microsoft za sledeću verziju svog serverskog OS‑a najavio ugrađenu podršku za pokretanje Windows kontejnera, čime je otvoren put za širenje Docker‑a. Najavljena je i podrška za direktno pokretanje kontejnera na Hyper‑V platformi, a mnogo se očekuje i od izdanja Windows Server Nano – koje je optimizovano da služi isključivo za izvršavanje kontejnera.

Konkurencija i standardizacija

I druga velika imena IT industrije prepoznala su potencijal ovog pristupa, pa je tako VMware u aprilu ove godine predstavio svoj Linux kontejner‑host pod nazivom Photon, da bi nešto kasnije objavio i projekat Bonneville, koji za cilj ima implementaciju Docker engine‑a unutar ESXi hipervizora, što bi omogućilo direktno izvršavanje kontejnera na vSphere platformi. Kontejnere i virtuelne mašine VMware ne vidi kao dve konkurentne već komplementarne tehnologije, pa tako Bonneville predviđa pokretanje svakog kontejnera u zasebnoj virtuelnoj mašini, čime bi se obezbedila bolja međusobna izolacija kontejnera i njihovo izvršavanje na visokodostupnoj infrastrukturi, uz korišćenje poznatih vSphere upravljačkih alata.

Kompanija CoreOS, koja stoji iza istoimenog kontejner‑hosta i niza alata za upravljanje distribuiranom infrastrukturom, predstavila je krajem prošle godine svoj kontejner engine pod nazivom rkt, kao rezultat neslaganja sa pravcem razvoja Docker‑a. Pojava konkurentske tehnologije donela je i inicijativu za standardizacijom u ovoj oblasti, što je rezultiralo nedavnim formiranjem Open Container inicijative, koja je oko sebe okupila i Docker i CoreOS, ali i praktično sve velike kompanije iz oblasti IT infrastrukture i softvera. Cilj inicijative je definisanje zajedničkog standarda, koji bi obezbedio da se jednom kreirani kontejner može izvršavati na različitim kontejner‑platformama.

Standardizacija tehnologije predstavlja dobru vest za krajnje korisnike i kao rezultat će neminovno doneti situaciju da će izbor same kontejner‑platforme manje zavisiti od njenih funkcionalnosti a više od ekosistema koji je okružuje, primarno cloud usluga (centralni registri, kontejneri‑kao‑servis i sl.) i rešenja za upravljanje i automatizaciju. U ovoj oblasti trenutno prednjači sam Docker, sa alatima koji pokrivaju scenarija od konfigurisanja i klasterovanja hostova do kreiranja višekontejnerskih aplikacija, kao i Google, koji je nedavno objavio verziju 1.0 svog Kubernetes rešenja za orkestraciju. Kubernetes je nastao od alata inicijalno razvijenih za interne potrebe kompanije, koja sve svoje servise pokreće unutar kontejnera, kreirajući više od 2 milijarde (!) kontejner‑instanci nedeljno.

Perspektiva

Odavno se pokazalo da u oblasti informacionih tehnologija ne postoji „srebrni metak“, odnosno jedno pravo rešenje za sve probleme, pa tako i Docker i druge kontejner‑platforme najverovatnije neće biti „ubice“ virtuelizacije i PaaS‑a, kao što to tvrde pojedini analitičari. Radi se o još uvek mladoj tehnologiji, koja je danas retko zastupljena u produkciji, najviše zbog nepoverenja u bezbednost izolacije kontejnera i nedostatka alata za jednostavno upravljanje, koji bi opravdali investiciju u redizajn aplikacija, posebno onih manjih.

S druge strane, kontejneri su nastali kao odgovor na svakodnevne muke programera u vezi s portabilnošću aplikacija između različitih infrastruktura, ali i razvojnih, testnih i produkcionih okruženja, i imaju snažan vetar u leđa open source zajednice i podršku velikih kompanija. Uz to, odlično se uklapaju u aktuelne trendove u razvoju softvera, kao što su nepromenljiva infrastruktura i mikroservisna arhitektura aplikacija, zbog čega im se smeši uloga važnog gradivnog elementa u IT infrastrukturi budućnosti.

Nebojša Ilić

0 komentara

Najnoviji

Novi-NetApp-proizvodi

Novi NetApp proizvodi

Da li su vam već poznati novi NetApp sistemi C-serije, sa QLC Flash tipom...
Veštačka-inteligencija-u-našim-rukama

Veštačka inteligencija u

Broj oblasti u kojima se eksperimentiše sa različitim dostignućima veštačke...
Azure-Active-Directory--postaje-Entra-ID

Azure Active Directory

Azure Active Directory je sada Entra ID. I premda većina korisnika ovu promenu...
Transformacija-tehničkog-duga--pomoću-DevOps-tehnologija

Transformacija tehničkog duga

Najveću opasnost za organizacije ne predstavlja samo postojanje tehničkog duga...

Sveobuhvatna platforma za

U vreme kada su sajber pretnje sve složenije i opasnije, timovima koji brinu o...