Cloud, Docker i DevOps — brza i pouzdana isporuka

← Početna
Infrastruktura i isporuka

Cloud, Docker i DevOps — brza i pouzdana isporuka

Sve aplikacije kontejneriziramo pomoću Dockera, orkestriramo ih s Docker Compose (ili Kubernetesom za enterprise projekte), konfiguriramo Caddy kao reverse proxy s automatskim SSL-om i automatiziramo cijeli ciklus isporuke putem GitHub Actions — od commita do produkcije.

Kontejnerizacija s Dockerom i Docker Compose

Svaki servis ima vlastiti multi-stage Dockerfile: build faza koja instalira zavisnosti i kompajlira te minimalna završna faza (distroless ili alpine) koja sadrži samo potrebne artefakte. Tipična Next.js slika izlazi ispod 150 MB, a FastAPI ispod 80 MB. Slike se ponovo grade pri svakom spajanju u main i označavaju semantički (`v1.2.3` + `latest`).

Docker Compose definira cijeli stack: frontend, API, bazu, Redis, worker. Osjetljive varijable (lozinka baze, API ključevi, Stripe secret) nalaze se u `.env` koji je isključen iz gita — nikad zapisane u slici. Health checkovi u Composeu osiguravaju da su zavisnosti spremne prije pokretanja (baza spremna → pokretanje API-ja → pokretanje frontenda).

  • Build keš pomoću `--mount=type=cache` — npm ci za <30 s na CI-ju
  • Optimiziran redoslijed slojeva: stabilne zavisnosti → izvorni kod
  • Upravljanje tajnama pomoću Docker secrets ili HashiCorp Vaulta za enterprise projekte
  • `restart: unless-stopped` + `docker compose up --no-deps` za atomsku isporuku

Caddy — moderni reverse proxy s automatskim SSL-om

Caddy 2.8 automatski upravlja SSL/TLS-om putem ACME-a (Let's Encrypt ili ZeroSSL) — bez isteklih certifikata, bez ručne konfiguracije. HTTP/2 i HTTP/3 (QUIC) uključeni su po defaultu. Sigurnosna zaglavlja (HSTS, X-Frame-Options, CSP) postavljaju se globalno putem ponovno upotrebljivih snippeta. Deklarativna konfiguracija Caddyfile može se porediti diffom i verzionirana je u gitu.

Ograničavanje broja zahtjeva, gzip/brotli kompresija i strukturirano JSON logiranje aktiviraju se izvornim 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 sigurnosni snippet.

  • Samo TLS 1.3 s modernim cipher suiteovima i HSTS zaglavljem
  • On-demand TLS za multi-tenant SaaS s dinamičnim poddomenama
  • Reload bez zastoja — `caddy reload` ne prekida aktivne veze
  • Caddy logiranje → Loki → Grafana — analiza prometa i upozorenja na anomalije

GitHub Actions CI/CD i nadzor

CI pipeline se pokreće na svakom PR-u: lint, provjera tipova, unit testovi, build 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 s healthcheckom nakon isporuke. Automatski povratak na prethodnu verziju ako healthcheck ne uspije u roku od 60 sekundi.

Nadzor pomoću Grafana + Prometheus za metrike aplikacije (latencija, stopa grešaka, veličina reda) i Loki za agregaciju logova. Upozorenja su podešena na Slack/e-poštu: stopa grešaka >1%, P95 latencija >500 ms, disk >85%. Vanjski nadzor dostupnosti pomoću Better Uptime — javna SLA nadzorna ploča dostupna na zahtjev.

  • Trivy skeniranje ranjivosti na slikama — blokira se pri Critical CVE-u
  • Dependabot + auto-merge za patch ažuriranja (zahtijeva zeleni CI)
  • Automatska sigurnosna kopija baze na S3-kompatibilnu pohranu (noćna, zadržavanje 30 dana)

Prednosti i nedostaci

Prednosti

  • Isporuka s automatskim povratkom na prethodnu verziju pri neuspjelom healthchecku.
  • Automatski SSL/TLS putem Caddyja — bez ručno isteklih certifikata.
  • Ponovljivo okruženje: ista Docker slika na razvoju, stagingu i produkciji.
  • Nadzor i upozorenja (Grafana, Loki) — problemi se vide prije korisnika.

Ograničenja

  • Docker Compose se ne skalira kao Kubernetes za enterprise okruženja s više čvorova.
  • Početno postavljanje 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 nadzor (Prometheus + Grafana) dodaje servise koje treba održavati.

Brzi zaključak

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

Tabela specifikacija

MogućnostOgraničenje / pragTipična upotreba
OrkestracijaDocker Compose, cijeli stackJedan čvor; za više čvorova treba Swarm/K8sVPS, mali i srednji projekti
Reverse proxyCaddy 2.8, HTTP/3, automatski SSLVrlo složena pravila traže proširenu konfiguracijuViše domena, multi-tenant
CI/CDGitHub Actions, automatska isporukaCI minute se naplaćuju iznad besplatnog nivoaAutomatski od commita do produkcije
Tipični trošakVPS od ~€5/mjesečnoNadzor + sigurnosna kopija povećavaju trošakOd jedne web-stranice do više brendova

Docker Compose naspram Kubernetesa

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

Često postavljana pitanja

Zašto Caddy, a ne Nginx?

Caddy automatski upravlja SSL/TLS-om putem ACME-a, po defaultu uključuje HTTP/2 i HTTP/3 i ima kratku deklarativnu konfiguraciju. Nginx za isti rezultat traži certbot i više ručne konfiguracije.

Treba li mi Kubernetes?

Za većinu web-stranica ne. Docker Compose na VPS-u pouzdano vodi web-stranicu ili nekoliko servisa. Kubernetes postaje koristan tek kod desetina čvorova s agresivnim automatskim skaliranjem.

Kako funkcionira isporuka i povratak na prethodnu verziju?

GitHub Actions gradi novu sliku, pokreće je pored stare, izvršava healthcheck, a zatim prebacuje promet. Ako healthcheck ne uspije u roku od 60 sekundi, automatski se vraća na prethodnu verziju.

Koji nadzor preporučujete?

Grafana + Prometheus za metrike (latencija, stopa grešaka) i Loki za agregirane logove, uz Slack/e-mail upozorenja. Za vanjski nadzor dostupnosti dodajemo nezavisan servis poput 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 stranica
4myapp.net
Kreator aplikacija
4avatars.net
AI avatari
4chaty.net
AI chatbot
4webagency.net
Softver za web agencije
4softedu.net
Web stranice za obrazovanje
4softcrm.net
CRM platforma
4softerp.net
ERP sistem
4softhr.net
Upravljanje ljudskim resursima
4mystaff.net
Portal za osoblje
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
Fitness 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 trgovina
4pricing.net
Poređenje cijena
4salefood.net
Dostava hrane
4rentify.net
Iznajmljivanje
4transports.net
Prijevoz
4agencytravel.net
Turistička agencija
4hotel.net
Upravljanje hotelima
4ong.net
Upravljanje NVO-ima