Tehnoloogiad

← Avaleht
Infrastruktuur ja juurutus

Pilv, Docker ja DevOps — kiire ja töökindel juurutus

Konteineriseerime kõik rakendused Dockeriga, orkestreerime neid Docker Compose'iga (või Kubernetesega ettevõtteprojektide puhul), seadistame Caddy pöördvolmurina automaatse SSL-iga ning automatiseerime kogu juurutustsükli GitHub Actionsi kaudu — commit'ist tootmiseni.

Konteineriseerimine Dockeri ja Docker Compose'iga

Igal teenusel on oma mitmeastmeline Dockerfile: build-aste, mis paigaldab sõltuvused ja kompileerib, ning minimaalne lõppaste (distroless või alpine), mis sisaldab ainult vajalikke artefakte. Tüüpiline Next.js-i image jääb alla 150 MB, FastAPI oma alla 80 MB. Image'id ehitatakse uuesti iga main'i merge'i puhul ja märgistatakse semantiliselt (`v1.2.3` + `latest`).

Docker Compose defineerib kogu stäkki: esiots, API, andmebaas, Redis, worker. Tundlikud muutujad (andmebaasi parool, API-võtmed, Stripe'i saladus) on gitist välja jäetud failis `.env` — mitte kunagi image'i sisse kõvakodeeritud. Compose'i tervisekontrollid tagavad, et sõltuvused on enne käivitust valmis (andmebaas valmis → API käivitub → esiots käivitub).

  • Build-vahemälu `--mount=type=cache` abil — npm ci taaskasutab vahemälu CI-s
  • Optimeeritud kihtide järjekord: stabiilsed sõltuvused → lähtekood
  • Saladuste haldus Docker secrets'i või HashiCorp Vaultiga ettevõtteprojektide jaoks
  • `restart: unless-stopped` + `docker compose up --no-deps` aatomiliseks juurutuseks

Caddy — kaasaegne pöördvolmur automaatse SSL-iga

Caddy 2.8 haldab SSL/TLS-i automaatselt ACME kaudu (Let's Encrypt või ZeroSSL) — ühtegi aegunud sertifikaati, ühtegi käsitsi seadistust. HTTP/2 ja HTTP/3 (QUIC) on vaikimisi lubatud. Turvapäised (HSTS, X-Frame-Options, CSP) seatakse globaalselt taaskasutatavate snippet'ite kaudu. Deklaratiivne Caddyfile'i konfiguratsioon on võrreldav ja versioonihaldusega gitis.

Rate limiting, gzip/brotli-tihendus ja struktureeritud JSON-logimine aktiveeritakse Caddy natiivsete direktiividega — ilma nginxi moodulite või keeruka Apache'i seadistuseta. Juurdepääs tundlikele teedele (`/admin`, `.env`, `.git`) tagastab 444 (vastust pole), mis on seadistatud globaalse turvasnippet'ina.

  • Ainult TLS 1.3 kaasaegsete šifrikomplektidega
  • On-demand TLS mitme rentnikuga SaaS-i jaoks dünaamiliste alamdomeenidega
  • Reload — `caddy reload` ei katkesta aktiivseid ühendusi
  • Caddy logimine → Loki → Grafana — liikluse analüüs ja anomaaliate teavitused

GitHub Actionsi CI/CD ja monitooring

CI-torujuhe käivitub iga PR-i puhul: lint, tüübikontroll, ühiktestid, Dockeri image'i ehitus, haavatavuste skaneerimine (Trivy). Kui kõik läbivad, saadetakse image registrisse ja juurutus staging-keskkonda toimub automaatselt. Merge main'i = automaatne juurutus tootmisse koos juurutusjärgse tervisekontrolliga. Automaatne tagasipööramine, kui tervisekontroll ebaõnnestub 60 sekundi jooksul.

Monitooring Grafana + Prometheusega rakenduse mõõdikute jaoks (latentsus, veamäär, järjekorra suurus) ja Loki logide koondamiseks. Teavitused Slacki/e-posti kaudu: veamäär >1%, latentsus P95 >500 ms, ketas >85%. Väline käideldavuse monitooring Better Uptime'iga — avalik SLA-töölaud saadaval soovi korral.

  • Trivy haavatavuste skaneerimine image'itel — blokeering Critical CVE puhul
  • Dependabot + auto-merge patch-uuenduste jaoks (nõutav roheline CI)
  • Automaatne andmebaasi varukoopia S3-ühilduvasse salvestusse (iga öö, säilitus 30 päeva)

Eelised ja piirangud

Eelised

  • Juurutus automaatse tagasipööramisega ebaõnnestunud tervisekontrolli korral.
  • Automaatne SSL/TLS Caddy kaudu — ühtegi käsitsi aegunud sertifikaati.
  • Reprodutseeritav keskkond: sama Dockeri image arenduses, staging'us ja tootmises.
  • Monitooring ja teavitused (Grafana, Loki) — probleemid nähakse enne kasutajaid.

Piirangud

  • Docker Compose ei skaleeru nagu Kubernetes ettevõtte mitme sõlme jaoks.
  • Esialgne CI/CD seadistus nõuab aega ja DevOps-ekspertiisi.
  • Image'id ja logid võtavad kettaruumi — vajavad perioodilist puhastamist.
  • Täielik monitooring (Prometheus + Grafana) lisab hooldatavaid teenuseid.

Lühike kokkuvõte

Docker + Caddy + GitHub Actions on ideaalne kombinatsioon töökindlaks juurutuseks VPS-il või paaril sõlmel. Kümnete sõlmede ja agressiivse automaatskaleerimise korral liigu Kubernetese peale.

Spetsifikatsioonide tabel

VõimekusPiir / läviTüüpiline kasutus
OrkestreerimineDocker Compose, täielik stäkkÜks sõlm; mitu sõlme vajab Swarmi/K8s-iVPS, väikesed ja keskmised projektid
PöördvolmurCaddy 2.8, HTTP/3, automaatne SSLVäga keerukad reeglid nõuavad laiemat konfiguratsiooniMitu domeeni, mitu rentnikku
CI/CDGitHub Actions, juurutusCI-minutid on üle tasuta taseme tasulisedAutomaatne commit'ist tootmiseni
Tüüpiline hindVPS alates ~5 €/kuuMonitooring + varukoopia lisavad kuluÜhest saidist mitme brändini

Docker Compose vs Kubernetes

KriteeriumDocker ComposeKubernetes
Seadistuse keerukusVäikeSuur
Mitme sõlme skaleerimine / automaatskaleeriminePiiratud (üks sõlm)Suurepärane
SobibVPS, väikesed ja keskmised projektidSuured klastrid, ettevõtted

Korduma kippuvad küsimused

Miks Caddy, mitte Nginx?

Caddy haldab SSL/TLS-i automaatselt ACME kaudu, lubab HTTP/2 ja HTTP/3 vaikimisi ning tal on lühike deklaratiivne konfiguratsioon. Nginx nõuab sama tulemuse jaoks certbotti ja rohkem käsitsi seadistamist.

Kas ma vajan Kubernetest?

Enamiku saitide jaoks mitte. Docker Compose VPS-il haldab üht saiti või paari teenust töökindlalt. Kubernetes muutub kasulikuks alles kümnete sõlmede ja agressiivse automaatskaleerimise korral.

Kuidas juurutus töötab?

GitHub Actions ehitab uue image'i, käivitab selle vana kõrval, teeb tervisekontrolli ning seejärel lülitab liikluse ümber. Kui tervisekontroll ebaõnnestub 60 sekundi jooksul, tehakse automaatne tagasipööramine eelmisele versioonile.

Millist monitooringut te soovitate?

Grafana + Prometheus mõõdikute jaoks (latentsus, veamäär) ja Loki koondatud logide jaoks, teavitustega Slacki/e-posti kaudu. Välise käideldavuse jaoks lisame sõltumatu teenuse, näiteks Better Uptime'i.

4b2b.net
Äriökosüsteem
4conta.ro
Raamatupidamine
4invoices.net
Arvelduse rakendus
4expenses.net
Kulude haldus
4notify.net
Teavitused
4hosting.net
Veebimajutus
4database.net
Andmebaasid
4buildsite.net
Kodulehe koostaja
4myapp.net
Rakenduste koostaja
4avatars.net
Tehisintellekti avatarid
4chaty.net
Tehisintellekti vestlusrobot
4webagency.net
Tarkvara veebiagentuuridele
4softedu.net
Kodulehed hariduse jaoks
4softcrm.net
CRM-platvorm
4softerp.net
ERP-süsteem
4softhr.net
Personalijuhtimine
4mystaff.net
Töötajate portaal
4myprojects.net
Projektijuhtimine
4mycontracts.net
Lepingud
4docs.net
Dokumendihaldus
4appointments.net
Broneeringud
4marketingonline.net
Turundus
4insurance.net
Kindlustus
4property.net
Kinnisvara
4lawyers.net
Tarkvara juristidele
4mygarage.net
Autoteenindus
4driving.net
Autokoolid
4fleet.net
Autopargi haldus
4myevents.net
Üritused
4therapy.net
Teraapia
4clinics.net
Kliinikud
4dental.net
Hambakliinikud
4restaurants.net
Restoranid
4beautify.net
Ilusalong
4gym.net
Spordiklubid
4guards.net
Turvafirmad
4softvet.net
Loomakliinikud
4softauto.net
Autoäri tarkvara
4construct.net
Ehitusettevõtted
4marketplace.net
Kauplemisplatvorm
4shopy.net
E-pood
4pricing.net
Hinnavõrdlus
4salefood.net
Toidu kohaletoimetamine
4rentify.net
Üürileandmine
4transports.net
Transport
4agencytravel.net
Reisibüroo
4hotel.net
Hotellihaldus
4ong.net
MTÜ-de haldus