Docker — izolirani kontejneri za stabilne web-stranice
Cijela platforma 4buildsite — urednik, API, mehanizam za renderiranje i servis koji isporučuje objavljene web-stranice — radi u Docker kontejnerima: izoliranim paketima koji sadrže sve što je svakom servisu potrebno. Vaša web-stranica renderira se statički i isporučuje kao cjelovita verzija, atomski prebacivana pri svakoj objavi. Rezultat, razumljivo svima: objava se radi prebacivanjem na novu verziju, a ako nešto ne radi, vraćate se na prethodnu.
Što je kontejner — i zašto je važan za vašu web-stranicu
Kontejner je standardiziran paket koji sadrži aplikaciju i apsolutno sve što joj treba za rad: runtime, biblioteke, konfiguraciju. Kontejner radi izolirano od ostatka poslužitelja, ali izravno koristi Linux kernel domaćina — bez zasebnog operacijskog sustava po aplikaciji. Docker, pokrenut 2013., pretvorio je tu tehnologiju u dostupan standard; format slike danas je standardiziran kao OCI (Open Container Initiative) i radi identično na bilo kojem Linux poslužitelju ili oblaku.
Klasična analogija je prekomorski kontejner: bez obzira na teret, ima isti standardni oblik i može se prebaciti na bilo koji brod, vlak ili kamion. Jednako tako, servisi 4buildsitea koji grade i isporučuju vašu web-stranicu — urednik, FastAPI API, mehanizam za renderiranje — pakirani su u standardne slike koje rade jednako na testnom i na produkcijskom poslužitelju. Za vas, kao vlasnika web-stranice ili web-trgovine, to znači predvidljivost: ono što ste vidjeli u pregledu upravo je ono što dobivaju posjetitelji.
- Kontejner = aplikacija + njezine ovisnosti, u jednom izoliranom paketu
- Standardni OCI format — ista slika radi na bilo kojem poslužitelju ili oblaku
- Bez zasebnog operacijskog sustava po servisu — pokretanje u sekundama, ne minutama
- Na 4buildsiteu kontejnerizacijom upravlja platforma — vi samo objavljujete
Izolacija: vaša web-stranica ne ovisi o susjedima
Na klasičnom dijeljenom hostingu stotine web-stranica dijele isti poslužitelj, iste procese i često istu PHP instalaciju. Ako susjed dobije val prometa ili loše napisana skripta potroši cijeli procesor, vaša se web-stranica usporava — pojava „bučnog susjeda“. 4buildsite problemu pristupa s dvije strane. Prva: objavljene web-stranice renderiraju se statički — na poslužiteljima koji ih isporučuju ne radi kod po web-stranici (PHP, dodaci, skripte), pa nema loše napisane skripte susjeda koja bi trošila procesor. Druga: servisi platforme rade svaki u svom kontejneru, s odvojenim procesima i datotekama (putem namespaceova) i s mogućnošću ograničenja CPU-a i memorije (putem cgroupsa, mehanizama iz Linux kernela).
Izolacija je jednako važna za sigurnost. Na dijeljenom hostingu kompromitirana web-stranica može postati ulaz prema susjednim web-stranicama na istom poslužitelju. Na 4buildsiteu je objavljena web-stranica skup statičkih datoteka — ne izvodi kod koji bi se mogao kompromitirati putem dodataka ili tema — a servisi platforme koji obrađuju podatke (narudžbe, plaćanja, urednik) nalaze se u zasebnim kontejnerima: datotečni sustav je izoliran, a eventualni incident ostaje zatvoren u tom kontejneru.
- Objavljena web-stranica = statičke datoteke — bez koda po web-stranici koji bi se mogao usporiti ili kompromitirati
- Servisi platforme: odvojen datotečni sustav i procesi po kontejneru
- Statička isporuka: isti način posluživanja u 3 ujutro i na vrhuncu kampanje
Ista verzija posvuda: isti artefakt na testu i u produkciji
Najčešći izvor pogrešaka u klasičnom webu je razlika između okruženja u kojem je web-stranica testirana i poslužitelja na kojem radi uživo: druga verzija jezika, nedostaje neka ekstenzija, drukčija konfiguracija. Docker slika uklanja cijelu tu kategoriju problema: slika se gradi samo jednom, sa svim fiksiranim ovisnostima, i upravo isti artefakt radi i na testu i u produkciji. Ne postoji „ručno konfigurirano na poslužitelju“.
Za vas se to izravno prevodi u stabilnost. Kada mijenjate web-stranicu u vizualnom uredniku na panel.4buildsite.net i pritisnete objavu, verzija koja stiže do posjetitelja svaki je put prošla iste korake, kroz iste kontejnerizirane servise. Manje iznenađenja nakon objave znači manje noći s pokvarenom web-trgovinom — a za web-trgovinu svaki sat nedostupnosti znači izgubljene narudžbe.
Atomske objave i rollback na prethodnu verziju
Na 4buildsiteu objava ne znači „zaustavimo web-stranicu, kopiramo datoteke, nadamo se“. Svaka objava generira novu, cjelovitu verziju vaše web-stranice — statički renderiranu, odvojeno od one koja je uživo — a prebacivanje na nju je atomsko: u jednoj operaciji servis za isporuku počinje posluživati novu verziju. Isto načelo vrijedi za servise platforme: nova verzija kontejnera pokreće se uz staru i preuzima promet tek nakon provjera ispravnosti.
Jednako je važan put natrag. Svaka objavljena verzija web-stranice čuva se netaknuta, pa povratak na prethodnu verziju znači samo prebacivanje natrag — jednostavna operacija, a ne višesatno vraćanje iz backupa. Ako objava unese problem, vaša web-trgovina ne ostaje zaglavljena na neispravnoj verziji. Jedina iskrena nijansa: podaci (narudžbe, proizvodi, sadržaj) žive u bazi podataka, odvojeno od objavljenih verzija — zato se njima upravlja na trajnim volumenima, odvojeno od datoteka web-stranice.
- Svaka objava = nova, cjelovita verzija, atomski prebačena
- Rollback = prebacivanje natrag na prethodnu verziju
- Promjene objavljujete bilo kada, uključujući usred sezone prodaje
Učinkovitost i troškovi: više performansi za isti novac
Klasični virtualni stroj za svaku aplikaciju pokreće cijeli operacijski sustav — gigabajti memorije i minute pokretanja troše se samo na „ambalažu“. Kontejneri dijele kernel domaćina, pa na isti poslužitelj stane znatno više web-stranica, svaka sa svojom izolacijom. Ta gustoća razlog je zbog kojeg 4buildsite može uključiti hosting i SSL u pretplatu, bez zasebnog troška infrastrukture po web-stranici.
Za vašu objavljenu web-stranicu skaliranje na promet još je jednostavnije: budući da su to statičke datoteke, poslužuju se iznimno jeftino — vrhunac posjetitelja znači više isporučenih datoteka, a ne dodatne procese koji si smetaju. A servisi platforme, kao kontejneri koji se pokreću u sekundama, mogu dobiti dodatne instance kada je potrebno. Plaćate predvidljivu pretplatu, a ne infrastrukturu trajno dimenzioniranu za najzaposleniji dan u godini. O tome kako zapravo upravljamo tim kontejnerima — orkestracija, proxy, CI/CD, nadzor — pročitajte na stranici Cloud & DevOps.
Prednosti i ograničenja
Prednosti
- Objavljena web-stranica poslužuje se kao statičke datoteke, a platforma radi u izoliranim kontejnerima — bez koda po web-stranici na poslužitelju.
- Iste slike platforme na testu i u produkciji — bez ručno podešenih okruženja.
- Objave atomskim prebacivanjem: nova verzija web-stranice generira se zasebno i zatim prebacuje.
- Rollback na prethodno objavljenu verziju ako promjena ne radi.
- Kontejneri se pokreću u sekundama — servisi platforme mogu dobiti dodatne instance pri vrhuncima prometa.
- Velika gustoća po poslužitelju — hosting uključen u pretplatu, bez zasebnog troška.
Ograničenja
- Izolacija koristi zajednički kernel domaćina — slabija od hardverske izolacije namjenskog virtualnog stroja.
- Kontejner je prolazan: trajni podaci (baza podataka, učitane datoteke) traže zasebno vođene volumene i backup.
- Slike i njihovi slojevi troše prostor na disku — bez povremenog čišćenja nakupljaju se.
- Za timove koji njime upravljaju sami Docker ima stvarnu krivulju učenja — na 4buildsiteu njime u cijelosti upravlja platforma.
Kratak zaključak
Docker kontejnerizacija je de facto standard industrije za pokretanje web-aplikacija: izolacija, dosljednost testa i produkcije te rollback. Na 4buildsiteu platforma koja gradi i isporučuje vašu web-stranicu radi kontejnerizirano, a objave vaše web-stranice su verzionirane, atomski prebacivane i reverzibilne — način na koji se infrastrukturom upravlja (orkestracija, proxy, CI/CD) opisan je na stranici Cloud & DevOps.
Tablica specifikacija
| Mogućnost | Granica / prag | Tipična uporaba | |
|---|---|---|---|
| Izolacija resursa | Ograničenja CPU/RAM po kontejneru (cgroups, namespaces) | Zajednički kernel — nije hardverska izolacija kao kod VM-a | Web-stranice i web-trgovine na zajedničkoj infrastrukturi |
| Pokretanje / deploy | Kontejner se pokreće u sekundama | Prvo preuzimanje slike traje dulje | Česte objave i ažuriranja |
| Rollback | Povratak na bilo koju prethodnu sliku | Podaci u bazi ne vraćaju se zajedno sa slikom | Povratak kada ažuriranje ne radi |
| Prenosivost | OCI slika — radi na bilo kojem Linux hostu ili oblaku | Slike su po arhitekturi (x86/ARM) | Prebacivanje među poslužiteljima bez prepisivanja aplikacije |
| Gustoća / trošak | Deseci izoliranih kontejnera na jednom poslužitelju | Svi dijele kernel i disk domaćina | Nizak trošak po web-stranici — hosting uključen u pretplatu |
Docker u odnosu na virtualne strojeve i shared hosting (cPanel)
| Kriterij | Docker (kontejneri) | Virtualni strojevi | Shared hosting (cPanel) |
|---|---|---|---|
| Izolacija | Po kontejneru (procesi, datoteke, resursi) | Potpuna (virtualizirani hardver) | Slaba — stotine web-stranica na istom poslužitelju |
| Brzina pokretanja / deploya | Sekunde | Minute (boot cijelog OS-a) | Izmjene izravno na poslužitelju uživo (FTP) |
| Potrošnja resursa | Minimalna — bez zasebnog OS-a po aplikaciji | Velika — cijeli OS po stroju | Mala, ali nekontrolirano dijeljena među susjedima |
| Rollback | Ponovno pokrenete prethodnu sliku | Iz snapshota — sporije | Ručno, iz backupa |
| Sigurnost | Incident ograničen na kontejner | Najjača izolacija | Kompromitirana web-stranica može utjecati na susjede |
| Trošak po web-stranici | Nizak — velika gustoća po poslužitelju | Visok — plaćate cijeli stroj | Vrlo nizak, ali nepredvidljive performanse |
Često postavljana pitanja
Utječe li Docker na brzinu moje web-stranice?
Ne. Kontejneri rade izvorno na Linux kernelu, bez sloja hardverske virtualizacije, pa je overhead zanemariv. Brzinu web-stranice određuju kod, cache i mreža — a izolacija resursa čak je čini predvidljivijom nego na dijeljenom hostingu.
Zašto ne klasični hosting s cPanelom, kao kod WordPressa?
Na klasičnom shared hostingu stotine web-stranica dijele isti poslužitelj bez strogih ograničenja: preopterećen susjed vas usporava, a kompromitiran vam može naškoditi. Na 4buildsiteu objavljena web-stranica poslužuje se statički — ne izvodi kod po web-stranici koji bi se mogao kompromitirati — a servisi platforme rade izolirano u kontejnerima. Stvari koje cPanel ne nudi.
Što ako mi objava pokvari web-stranicu?
Prethodno objavljena verzija i dalje postoji, netaknuta, pa se povratak svodi na prebacivanje natrag: servis za isporuku prebacuje se na nju. Web-trgovina ne ostaje zaglavljena na neispravnoj verziji, a podaci u bazi ostaju netaknuti.
Moram li znati Docker da bih koristio 4buildsite?
Ne. Kontejnerizacijom u cijelosti upravlja platforma: vi gradite web-stranicu u vizualnom uredniku na panel.4buildsite.net i objavljujete. Docker radi „ispod haube“ — prednosti (izolaciju, rollback) dobivate bez ikakve konfiguracije.
Je li Docker siguran za web-trgovinu?
Da. Izolacija procesa i datoteka ograničava doseg eventualnog incidenta na taj kontejner, a ne na cijeli poslužitelj. Podaci o karticama ionako ne prolaze kroz kontejner — plaćanja obrađuje Stripe, na infrastrukturi certificiranoj od strane Stripea.
Je li Docker isto što i virtualni stroj?
Ne. Virtualni stroj virtualizira cijeli hardver i pokreće vlastiti operacijski sustav — pokreće se minutama i troši mnogo. Kontejner dijeli kernel domaćina: pokreće se u sekundama, troši djelić resursa i zadržava izolaciju aplikacije.