Cloud, Docker i DevOps — brza i pouzdana isporuka

← Početna
Infrastruktura i isporuka

Cloud, Docker i DevOps — brza i pouzdana isporuka

Sve aplikacije pakujemo u Docker kontejnere, orkestriramo ih pomoću Docker Compose (ili Kubernetesa za enterprise projekte), Caddy podešavamo kao reverse proxy sa automatskim SSL-om i cijeli ciklus isporuke automatizujemo preko GitHub Actions — od commita do produkcije.

Kontejnerizacija sa Dockerom i Docker Compose

Svaki servis ima svoj višefazni Dockerfile: fazu izgradnje koja instalira zavisnosti i kompajlira i minimalnu završnu fazu (distroless ili alpine) koja sadrži samo neophodne artefakte. Tipična Next.js slika ima manje od 150 MB, a FastAPI manje od 80 MB. Slike se ponovo grade pri svakom spajanju u main i označavaju semantički (`v1.2.3` + `latest`).

Docker Compose definiše cio stek: frontend, API, bazu, Redis, worker. Osjetljive promjenljive (lozinka baze, API ključevi, Stripe tajna) nalaze se u `.env` fajlu isključenom iz gita — nikada ne u samoj slici. Health check-ovi u Composeu obezbjeđuju da su zavisnosti spremne prije pokretanja (baza spremna → pokretanje API-ja → pokretanje frontenda).

  • Keš izgradnje sa `--mount=type=cache` — npm ci za <30 s na CI-ju
  • Optimizovan redosljed slojeva: stabilne zavisnosti → izvorni kôd
  • Upravljanje tajnama pomoću Docker secrets ili HashiCorp Vault za enterprise projekte
  • `restart: unless-stopped` + `docker compose up --no-deps` za atomsku isporuku

Caddy — moderni reverse proxy sa automatskim SSL-om

Caddy 2.8 automatski upravlja SSL/TLS-om preko ACME-a (Let's Encrypt ili ZeroSSL) — bez isteklih sertifikata i ručnog podešavanja. HTTP/2 i HTTP/3 (QUIC) uključeni su podrazumijevano. Bezbjednosna zaglavlja (HSTS, X-Frame-Options, CSP) postavljaju se globalno preko višekratnih snippeta. Deklarativna Caddyfile konfiguracija može se porediti i verzionisati u gitu.

Ograničavanje broja zahtjeva, gzip/brotli kompresija i strukturirani JSON logovi aktiviraju se nativnim Caddy direktivama — bez nginx modula ili složene Apache konfiguracije. Pristup osjetljivim rutama (`/admin`, `.env`, `.git`) vraća 444 (bez odgovora), što je podešeno kao globalni bezbjednosni snippet.

  • Samo TLS 1.3 sa modernim cipher suite-ovima
  • On-demand TLS za multi-tenant SaaS sa dinamičkim poddomenima
  • Ponovno učitavanje bez zastoja — `caddy reload` ne prekida aktivne veze
  • Caddy logovi → Loki → Grafana — analiza saobraćaja i upozorenja na anomalije

GitHub Actions CI/CD i monitoring

CI pipeline se pokreće na svakom PR-u: lint, provjera tipova, unit testovi, izgradnja Docker slike, skeniranje ranjivosti (Trivy). Ako sve prođe, slika se šalje u registry, a isporuka na staging odvija se automatski. Spajanje u main = automatska isporuka u produkciju sa healthcheckom nakon isporuke. Automatski povratak na prethodnu verziju ako healthcheck ne prođe u roku od 60 sekundi.

Monitoring sa Grafana + Prometheus za metrike aplikacije (latencija, stopa grešaka, veličina reda) i Loki za agregaciju logova. Upozorenja se podešavaju na Slack/email: stopa grešaka >1%, P95 latencija >500 ms, disk >85%. Spoljni monitoring dostupnosti sa Better Uptime — javna SLA kontrolna tabla dostupna na zahtjev.

  • Trivy skeniranje ranjivosti na slikama — blokirano pri kritičnom CVE-u
  • Dependabot + auto-merge za ažuriranja zakrpa (potreban zelen CI)
  • Automatski backup baze na S3-kompatibilno skladište (noćni, čuvanje 30 dana)

Prednosti i mane

Prednosti

  • Isporuka sa automatskim povratkom na prethodnu verziju kad healthcheck ne prođe.
  • Automatski SSL/TLS preko Caddyja — nema ručno isteklih sertifikata.
  • Ponovljivo okruženje: ista Docker slika na razvoju, stagingu i produkciji.
  • Monitoring i upozorenja (Grafana, Loki) — problemi se vide prije korisnika.

Ograničenja

  • Docker Compose se ne skalira kao Kubernetes za enterprise sa više čvorova.
  • Početno podešavanje CI/CD-a traži vrijeme i DevOps stručnost.
  • Slike i logovi troše prostor na disku — potrebno je periodično čišćenje.
  • Potpun monitoring (Prometheus + Grafana) dodaje servise koje treba održavati.

Kratak zaključak

Docker + Caddy + GitHub Actions idealna je kombinacija za pouzdanu isporuku na VPS-u ili na nekoliko čvorova. Za desetine čvorova sa agresivnim automatskim skaliranjem pređite na Kubernetes.

Tabela specifikacija

MogućnostOgraničenje / pragTipična upotreba
OrkestracijaDocker Compose, cio stekJedan čvor; za više čvorova potreban je Swarm/K8sVPS, mali i srednji projekti
Reverse proxyCaddy 2.8, HTTP/3, automatski SSLVeoma složena pravila traže proširenu konfiguracijuViše domena, multi-tenant
CI/CDGitHub Actions, automatska isporukaCI minuti se naplaćuju preko besplatnog nivoaAutomatski od commita do produkcije
Tipičan trošakVPS od ~€5/mjesečnoMonitoring + backup dodaju trošakOd jednog sajta do više brendova

Docker Compose naspram Kubernetesa

KriterijumDocker ComposeKubernetes
Složenost podešavanjaNiskaVisoka
Više čvorova / automatsko skaliranjeOgraničeno (jedan čvor)Odlično
Najbolje zaVPS, mali i srednji projektiVelike flote, enterprise

Česta pitanja

Zašto Caddy, a ne Nginx?

Caddy automatski upravlja SSL/TLS-om preko ACME-a, podrazumijevano uključuje HTTP/2 i HTTP/3 i ima kratku deklarativnu konfiguraciju. Nginx za isti rezultat traži certbot i više ručnog podešavanja.

Da li mi treba Kubernetes?

Ne za većinu sajtova. Docker Compose na VPS-u pouzdano opslužuje sajt ili nekoliko servisa. Kubernetes postaje koristan tek kod desetina čvorova sa agresivnim automatskim skaliranjem.

Kako funkcioniše isporuka i povratak na prethodnu verziju?

GitHub Actions gradi novu sliku, pokreće je uporedo sa starom, izvršava healthcheck, a zatim prebacuje saobraćaj. Ako healthcheck ne prođe u roku od 60 sekundi, automatski se vraća na prethodnu verziju.

Koji monitoring preporučujete?

Grafana + Prometheus za metrike (latencija, stopa grešaka) i Loki za agregirane logove, sa upozorenjima na Slack/email. Za spoljni monitoring dostupnosti dodajemo nezavisan servis kao što je Better Uptime.

4b2b.net
Poslovni ekosistem
4conta.ro
Računovodstvo
4invoices.net
Aplikacija za fakturisanje
4expenses.net
Upravljanje troškovima
4notify.net
Obavještenja
4hosting.net
Hosting
4database.net
Baze podataka
4buildsite.net
Kreator web sajtova
4myapp.net
Kreator aplikacija
4avatars.net
AI avatari
4chaty.net
AI čatbot
4webagency.net
Softver za web agencije
4softedu.net
Web sajtovi za obrazovanje
4softcrm.net
CRM platforma
4softerp.net
ERP sistem
4softhr.net
Upravljanje ljudskim resursima
4mystaff.net
Portal za zaposlene
4myprojects.net
Menadžer projekata
4mycontracts.net
Ugovori
4docs.net
Upravljanje dokumentima
4appointments.net
Zakazivanja
4marketingonline.net
Marketing
4insurance.net
Osiguranje
4property.net
Nekretnine
4lawyers.net
Pravni softver
4mygarage.net
Autoservis
4driving.net
Autoškole
4fleet.net
Upravljanje voznim parkom
4myevents.net
Događaji
4therapy.net
Terapija
4clinics.net
Klinike
4dental.net
Stomatološke ordinacije
4restaurants.net
Restorani
4beautify.net
Saloni ljepote
4gym.net
Fitnes centri
4guards.net
Zaštitarske firme
4softvet.net
Veterinarske ambulante
4softauto.net
Softver za auto-biznis
4construct.net
Građevinske firme
4marketplace.net
Marketplace
4shopy.net
Online prodavnica
4pricing.net
Poređenje cijena
4salefood.net
Dostava hrane
4rentify.net
Iznajmljivanje
4transports.net
Prevoz
4agencytravel.net
Turistička agencija
4hotel.net
Upravljanje hotelima
4ong.net
Upravljanje NVO-ima