Technologie

← Domů
Infrastruktura a nasazení

Cloud, Docker a DevOps — rychlé a spolehlivé nasazení

Všechny aplikace kontejnerizujeme v Dockeru, orchestrujeme je pomocí Docker Compose (nebo Kubernetes u enterprise projektů), nastavujeme Caddy jako reverzní proxy s automatickým SSL a celý cyklus nasazení automatizujeme přes GitHub Actions — od commitu po produkci.

Kontejnerizace s Dockerem a Docker Compose

Každá služba má vlastní vícestupňový Dockerfile: build stage, který nainstaluje závislosti a zkompiluje, a minimální závěrečný stage (distroless nebo alpine), který obsahuje jen nezbytné artefakty. Typický image Next.js má pod 150 MB, image FastAPI pod 80 MB. Image se přebuildovávají při každém merge do main a značkují se sémanticky (`v1.2.3` + `latest`).

Docker Compose definuje celý stack: frontend, API, DB, Redis, worker. Citlivé proměnné (heslo k DB, API klíče, tajný klíč Stripe) jsou v souboru `.env` vyloučeném z gitu — nikdy nejsou napevno v image. Health checky v Compose zajišťují, že jsou závislosti připravené před startem (DB připravena → start API → start frontendu).

  • Build cache s `--mount=type=cache` — npm ci z cache v CI
  • Optimalizované pořadí vrstev: stabilní závislosti → zdrojový kód
  • Správa tajemství pomocí Docker secrets nebo HashiCorp Vault u enterprise projektů
  • `restart: unless-stopped` + `docker compose up --no-deps` pro atomické nasazení

Caddy — moderní reverzní proxy s automatickým SSL

Caddy 2.8 spravuje SSL/TLS automaticky přes ACME (Let's Encrypt nebo ZeroSSL) — žádný prošlý certifikát, žádná ruční konfigurace. HTTP/2 a HTTP/3 (QUIC) jsou zapnuté ve výchozím stavu. Bezpečnostní hlavičky (HSTS, X-Frame-Options, CSP) se nastavují globálně pomocí znovupoužitelných snippetů. Deklarativní konfigurace Caddyfile se dá porovnávat diffem a verzovat v gitu.

Rate limiting, komprese gzip/brotli a strukturované logování v JSON se zapínají nativními direktivami Caddy — bez modulů nginx či složité konfigurace Apache. Přístup na citlivé cesty (`/admin`, `.env`, `.git`) vrací 444 (bez odpovědi), nastavené jako globální bezpečnostní snippet.

  • Pouze TLS 1.3 s moderními cipher suites
  • On-demand TLS pro multi-tenant SaaS s dynamickými subdoménami
  • Reload bez výpadku — `caddy reload` nepřeruší aktivní spojení
  • Logování Caddy → Loki → Grafana — analýza provozu a upozornění na anomálie

CI/CD v GitHub Actions a monitoring

Pipeline CI běží u každého PR: lint, kontrola typů, unit testy, build Docker image, sken zranitelností (Trivy). Pokud vše projde, image se pushne do registry a nasazení na staging proběhne automaticky. Merge do main = automatické nasazení do produkce s healthcheckem po nasazení. Pokud healthcheck do 60 sekund selže, proběhne automatický rollback.

Monitoring s Grafanou + Prometheus pro aplikační metriky (latence, míra chyb, velikost fronty) a Loki pro agregaci logů. Upozornění jsou nastavena na Slack/e-mail: míra chyb nad 1 %, latence P95 nad 500 ms, disk nad 85 %. Externí monitoring dostupnosti s Better Uptime — veřejný SLA dashboard na vyžádání.

  • Sken zranitelností Trivy na image — blokace při Critical CVE
  • Dependabot + auto-merge pro patch aktualizace (vyžaduje zelené CI)
  • Automatická záloha DB do úložiště kompatibilního se S3 (každou noc, retence 30 dní)

Výhody a omezení

Výhody

  • Nasazení s automatickým rollbackem při selhání healthchecku.
  • Automatické SSL/TLS přes Caddy — žádný ručně prošlý certifikát.
  • Reprodukovatelné prostředí: stejný image Dockeru na dev, stagingu i v produkci.
  • Monitoring a upozornění (Grafana, Loki) — problémy uvidíte dřív než uživatelé.

Omezení

  • Docker Compose neškáluje jako Kubernetes u enterprise nasazení na více uzlech.
  • Počáteční nastavení CI/CD vyžaduje čas a DevOps expertizu.
  • Image a logy zabírají místo na disku — nutné pravidelné čištění.
  • Kompletní monitoring (Prometheus + Grafana) přidává služby, které je třeba udržovat.

Stručný verdikt

Docker + Caddy + GitHub Actions je ideální kombinace pro spolehlivé nasazení na VPS nebo několika uzlech. Pro desítky uzlů s agresivním auto-scalingem přejděte na Kubernetes.

Tabulka specifikací

SchopnostLimit / práhTypické použití
OrchestraceDocker Compose, kompletní stackJeden uzel; více uzlů vyžaduje Swarm/K8sVPS, malé a střední projekty
Reverzní proxyCaddy 2.8, HTTP/3, automatické SSLVelmi složitá pravidla vyžadují rozsáhlou konfiguraciVíce domén, multi-tenant
CI/CDGitHub Actions, nasazení < 5 minMinuty CI se nad rámec free tieru účtujíAutomaticky od commitu do produkce
Typické nákladyVPS od ~5 €/měsícMonitoring + zálohy náklady zvyšujíOd jednoho webu po multi-brand

Docker Compose vs. Kubernetes

KritériumDocker ComposeKubernetes
Složitost nastaveníNízkáVysoká
Škálování na více uzlů / auto-scalingOmezené (jeden uzel)Výborné
Vhodné proVPS, malé a střední projektyVelké flotily, enterprise

Často kladené otázky

Proč Caddy a ne Nginx?

Caddy spravuje SSL/TLS automaticky přes ACME, ve výchozím stavu zapíná HTTP/2 a HTTP/3 a má krátkou deklarativní konfiguraci. Nginx pro stejný výsledek vyžaduje certbot a více ruční konfigurace.

Potřebuji Kubernetes?

Pro většinu webů ne. Docker Compose na VPS spolehlivě zvládne jeden web nebo několik služeb. Kubernetes se vyplatí až u desítek uzlů s agresivním auto-scalingem.

Jak funguje nasazení?

GitHub Actions sestaví nový image, spustí ho vedle starého, provede healthcheck a poté přepne provoz. Pokud healthcheck do 60 sekund selže, automaticky se provede rollback na předchozí verzi.

Jaký monitoring doporučujete?

Grafana + Prometheus pro metriky (latence, míra chyb) a Loki pro agregované logy, s upozorněními na Slack/e-mail. Pro externí monitoring dostupnosti přidáváme nezávislou službu, například Better Uptime.

4b2b.net
Podnikatelský ekosystém
4conta.ro
Účetnictví
4invoices.net
Fakturační aplikace
4expenses.net
Správa výdajů
4notify.net
Oznámení
4hosting.net
Hosting
4database.net
Databáze
4buildsite.net
Tvorba webů
4myapp.net
Tvorba aplikací
4avatars.net
AI avataři
4chaty.net
AI chatbot
4webagency.net
Software pro webové agentury
4softedu.net
Weby pro vzdělávání
4softcrm.net
CRM platforma
4softerp.net
ERP systém
4softhr.net
Personalistika
4mystaff.net
Portál pro zaměstnance
4myprojects.net
Správa projektů
4mycontracts.net
Smlouvy
4docs.net
Správa dokumentů
4appointments.net
Rezervace termínů
4marketingonline.net
Marketing
4insurance.net
Pojištění
4property.net
Reality
4lawyers.net
Software pro advokáty
4mygarage.net
Autoservis
4driving.net
Autoškoly
4fleet.net
Správa vozového parku
4myevents.net
Události
4therapy.net
Terapie
4clinics.net
Kliniky
4dental.net
Zubní ordinace
4restaurants.net
Restaurace
4beautify.net
Kosmetický salon
4gym.net
Fitness centra
4guards.net
Bezpečnostní agentury
4softvet.net
Veterinární ordinace
4softauto.net
Software pro autobyznys
4construct.net
Stavební firmy
4marketplace.net
Marketplace
4shopy.net
E-shop
4pricing.net
Porovnání cen
4salefood.net
Rozvoz jídla
4rentify.net
Pronájmy
4transports.net
Doprava
4agencytravel.net
Cestovní kancelář
4hotel.net
Hotelový systém
4ong.net
Správa neziskovek