Tehnologije

← Domov
Infrastruktura in namestitev

Oblak, Docker in DevOps — hitra in zanesljiva namestitev

Vse aplikacije zapakiramo v vsebnike Docker, jih orkestriramo z Docker Compose (ali Kubernetesom pri enterprise projektih), Caddy nastavimo kot obratni posrednik s samodejnim SSL-jem, celoten cikel namestitve pa avtomatiziramo z GitHub Actions — samodejno od commita do produkcije.

Vsebniki z Dockerjem in Docker Compose

Vsaka storitev ima svoj večstopenjski Dockerfile: stopnja za gradnjo, ki namesti odvisnosti in prevede kodo, ter minimalna končna stopnja (distroless ali alpine), ki vsebuje le potrebne artefakte. Tipična slika Next.js zavzame manj kot 150 MB, slika FastAPI manj kot 80 MB. Slike se na novo zgradijo ob vsakem združevanju v main in se semantično označijo (`v1.2.3` + `latest`).

Docker Compose opredeli celoten sklad: frontend, API, zbirko podatkov, Redis, delavca. Občutljive spremenljivke (geslo zbirke, ključi API, skrivnost Stripe) so v datoteki `.env`, izključeni iz gita — nikoli niso trdo zapisane v sliki. Preverjanja zdravja (health checks) v Compose zagotovijo, da so odvisnosti pripravljene pred zagonom (zbirka pripravljena → zagon API-ja → zagon frontenda).

  • Predpomnilnik gradnje z `--mount=type=cache` za namestitev odvisnosti na CI
  • Optimiziran vrstni red plasti: stabilne odvisnosti → izvorna koda
  • Upravljanje skrivnosti z Docker secrets ali HashiCorp Vault pri enterprise projektih
  • `restart: unless-stopped` + `docker compose up --no-deps` za atomarno namestitev

Caddy — sodoben obratni posrednik s samodejnim SSL-jem

Caddy 2.8 samodejno upravlja SSL/TLS prek ACME (Let's Encrypt ali ZeroSSL) — noben potečen certifikat, nobene ročne konfiguracije. HTTP/2 in HTTP/3 (QUIC) sta privzeto vklopljena. Varnostne glave (HSTS, X-Frame-Options, CSP) so globalno nastavljene prek ponovno uporabnih odlomkov. Deklarativna konfiguracija Caddyfile omogoča primerjavo razlik in je verzionirana v gitu.

Omejevanje hitrosti, stiskanje gzip/brotli in strukturirano beleženje JSON se vklopijo z izvornimi direktivami Caddyja — brez modulov nginx ali zapletene konfiguracije Apache. Dostop do občutljivih poti (`/admin`, `.env`, `.git`) vrne 444 (brez odgovora), kar je nastavljeno kot globalni varnostni odlomek.

  • Samo TLS 1.3 s sodobnimi šifrirnimi nabori
  • On-demand TLS za večnajemniški SaaS z dinamičnimi poddomenami
  • Ponovno nalaganje brez izpada — `caddy reload` ne prekine aktivnih povezav
  • Beleženje Caddy → Loki → Grafana — analiza prometa in opozarjanje na anomalije

CI/CD z GitHub Actions in nadzor

Cevovod CI se zažene ob vsakem PR: lint, preverjanje tipov, enotni testi, gradnja slike Docker, pregled ranljivosti (Trivy). Če vse uspe, se slika potisne v register, namestitev v staging pa steče samodejno. Združitev v main = samodejna namestitev v produkcijo s preverjanjem zdravja po namestitvi. Če preverjanje zdravja v 60 sekundah odpove, sledi samodejna povrnitev.

Nadzor z Grafana + Prometheus za aplikacijske metrike (zakasnitev, stopnja napak, velikost čakalne vrste) in Loki za zbiranje dnevnikov. Opozorila na Slacku/e-pošti: stopnja napak >1 %, zakasnitev P95 >500 ms, disk >85 %. Zunanji nadzor razpoložljivosti z Better Uptime — javna nadzorna plošča SLA je na voljo na zahtevo.

  • Pregled ranljivosti Trivy na slikah — blokada pri kritičnem CVE
  • Dependabot + samodejno združevanje za popravke (zahtevan zelen CI)
  • Samodejna varnostna kopija zbirke v shrambo, združljivo z S3 (vsako noč, hramba 30 dni)

Prednosti in omejitve

Prednosti

  • Nova različica se zažene ob stari, s samodejno povrnitvijo ob neuspelem preverjanju zdravja.
  • Samodejni SSL/TLS prek Caddyja — noben ročno pozabljen potečen certifikat.
  • Ponovljivo okolje: ista slika Docker na razvoju, stagingu in v produkciji.
  • Nadzor in opozorila (Grafana, Loki) za stopnjo napak, zakasnitev in dnevnike.

Omejitve

  • Docker Compose se ne skalira kot Kubernetes za večvozliščni enterprise.
  • Začetna postavitev CI/CD zahteva čas in znanje DevOps.
  • Slike in dnevniki porabljajo prostor na disku — potrebno je redno čiščenje.
  • Popoln nadzor (Prometheus + Grafana) doda storitve, ki jih je treba vzdrževati.

Kratek povzetek

Docker + Caddy + GitHub Actions je idealna kombinacija za zanesljivo namestitev na VPS ali nekaj vozlišč. Za deset in več vozlišč z agresivnim samodejnim skaliranjem preidite na Kubernetes.

Tabela specifikacij

ZmožnostOmejitev / pragTipična uporaba
OrkestracijaDocker Compose, celoten skladEno vozlišče; za več vozlišč je potreben Swarm/K8sVPS, majhni in srednji projekti
Obratni posrednikCaddy 2.8, HTTP/3, samodejni SSLZelo zapletena pravila zahtevajo obsežno konfiguracijoVečdomenski, večnajemniški
CI/CDGitHub Actions, samodejna namestitevMinute CI se nad brezplačno kvoto zaračunavajoSamodejno od commita do produkcije
Tipičen strošekVPS od ~5 €/mesecNadzor + varnostne kopije povečajo strošekOd ene same strani do več blagovnih znamk

Docker Compose v primerjavi s Kubernetesom

MeriloDocker ComposeKubernetes
Zahtevnost postavitveMajhnaVelika
Skaliranje na več vozlišč / samodejno skaliranjeOmejeno (eno vozlišče)Odlično
Primerno zaVPS, majhni in srednji projektiVelike flote, enterprise

Pogosta vprašanja

Zakaj Caddy in ne Nginx?

Caddy samodejno upravlja SSL/TLS prek ACME, privzeto vklopi HTTP/2 in HTTP/3 ter ima kratko deklarativno konfiguracijo. Nginx za isti rezultat zahteva certbot in več ročne konfiguracije.

Ali potrebujem Kubernetes?

Za večino spletnih strani ne. Docker Compose na VPS zanesljivo upravlja eno stran ali nekaj storitev. Kubernetes postane uporaben šele pri desetih in več vozliščih z agresivnim samodejnim skaliranjem.

Kako deluje namestitev s preverjanjem zdravja?

GitHub Actions zgradi novo sliko, jo zažene ob stari, izvede preverjanje zdravja in nato preklopi promet. Če preverjanje zdravja v 60 sekundah odpove, se samodejno vrnemo na prejšnjo različico.

Kakšen nadzor priporočate?

Grafana + Prometheus za metrike (zakasnitev, stopnja napak) in Loki za zbrane dnevnike, z opozorili na Slacku/e-pošti. Za zunanji nadzor razpoložljivosti dodamo neodvisno storitev, kot je Better Uptime.

4b2b.net
Poslovni ekosistem
4conta.ro
Računovodstvo
4invoices.net
Aplikacija za izdajanje računov
4expenses.net
Upravljanje stroškov
4notify.net
Obvestila
4hosting.net
Gostovanje
4database.net
Baze podatkov
4buildsite.net
Izdelava spletnih strani
4myapp.net
Izdelava aplikacij
4avatars.net
Avatarji z UI
4chaty.net
Klepetalni robot z UI
4webagency.net
Programska oprema za spletne agencije
4softedu.net
Spletne strani za izobraževanje
4softcrm.net
Platforma CRM
4softerp.net
Sistem ERP
4softhr.net
Upravljanje HR
4mystaff.net
Portal osebja
4myprojects.net
Upravitelj projektov
4mycontracts.net
Pogodbe
4docs.net
Upravljanje dokumentov
4appointments.net
Termini
4marketingonline.net
Marketing
4insurance.net
Zavarovanje
4property.net
Nepremičnine
4lawyers.net
Pravna programska oprema
4mygarage.net
Avtoservis
4driving.net
Avtošole
4fleet.net
Upravljanje voznega parka
4myevents.net
Dogodki
4therapy.net
Terapija
4clinics.net
Klinike
4dental.net
Zobne ordinacije
4restaurants.net
Restavracije
4beautify.net
Lepotni salon
4gym.net
Fitnes centri
4guards.net
Varnostna podjetja
4softvet.net
Veterinarske ambulante
4softauto.net
Programska oprema za avtomobilski posel
4construct.net
Gradbena podjetja
4marketplace.net
Tržnica
4shopy.net
Spletna trgovina
4pricing.net
Primerjava cen
4salefood.net
Dostava hrane
4rentify.net
Najem
4transports.net
Transport
4agencytravel.net
Potovalna agencija
4hotel.net
Upravljanje hotelov
4ong.net
Upravljanje NVO