Tehnoloģijas

← Sākums
Infrastruktūra un izvietošana

Cloud, Docker & DevOps — ātra un uzticama izvietošana

Visas lietotnes ievietojam konteineros ar Docker, orķestrējam ar Docker Compose (vai Kubernetes enterprise projektiem), konfigurējam Caddy kā reverse proxy ar automātisku SSL un automatizējam visu izvietošanas ciklu ar GitHub Actions — no commit līdz produkcijai bez manuāliem soļiem.

Konteinerizācija ar Docker un Docker Compose

Katram pakalpojumam ir savs vairāku posmu Dockerfile: būvēšanas posms, kas instalē atkarības un kompilē, un minimāls gala posms (distroless vai alpine), kas satur tikai nepieciešamos artefaktus. Tipisks Next.js attēls sanāk zem 150 MB, FastAPI — zem 80 MB. Attēli tiek pārbūvēti katrā sapludināšanā uz main un semantiski marķēti (`v1.2.3` + `latest`).

Docker Compose definē visu steku: frontend, API, DB, Redis, worker. Jutīgie mainīgie (DB parole, API atslēgas, Stripe secret) atrodas `.env`, kas izslēgts no git — nekad nav ierakstīti attēlā. Health checks Compose nodrošina, ka atkarības ir gatavas pirms startēšanas (DB gatava → API starts → frontend starts).

  • Build cache ar `--mount=type=cache` — npm ci mazāk nekā 30 s CI vidē
  • Optimizēta slāņu secība: stabilas atkarības → pirmkods
  • Noslēpumu pārvaldība ar Docker secrets vai HashiCorp Vault enterprise projektiem
  • `restart: unless-stopped` + `docker compose up --no-deps` atomārai izvietošanai

Caddy — mūsdienīgs reverse proxy ar automātisku SSL

Caddy 2.8 automātiski pārvalda SSL/TLS caur ACME (Let's Encrypt vai ZeroSSL) — nav beigušos sertifikātu, nav manuālas konfigurēšanas. HTTP/2 un HTTP/3 (QUIC) ir ieslēgti pēc noklusējuma. Drošības headers (HSTS, X-Frame-Options, CSP) tiek iestatīti globāli ar atkārtoti izmantojamiem snippet. Deklaratīvā Caddyfile konfigurācija ir salīdzināma (diffable) un versionēta git.

Rate limiting, gzip/brotli kompresija un strukturēta JSON žurnalēšana tiek ieslēgta ar natīvām Caddy direktīvām — bez nginx moduļiem vai sarežģītas Apache konfigurācijas. Piekļuve jutīgiem maršrutiem (`/admin`, `.env`, `.git`) atgriež 444 (bez atbildes), kas konfigurēts kā globāls drošības snippet.

  • Tikai TLS 1.3 ar mūsdienīgiem šifru komplektiem
  • On-demand TLS daudznomnieku SaaS ar dinamiskiem apakšdomēniem
  • Pārlādēšana bez dīkstāves — `caddy reload` nepārtrauc aktīvos savienojumus
  • Caddy žurnalēšana → Loki → Grafana — datplūsmas analīze un anomāliju brīdinājumi

GitHub Actions CI/CD un monitorings

CI pipeline darbojas katrā PR: lint, tipu pārbaude, vienību testi, Docker attēla būvēšana, ievainojamību skenēšana (Trivy). Ja viss iziet cauri, attēls tiek nosūtīts uz registry un izvietošana staging vidē notiek automātiski. Sapludināšana uz main = automātiska izvietošana produkcijā ar healthcheck pēc izvietošanas. Automātiska atgriešana, ja healthcheck neizdodas 60 sekunžu laikā.

Monitorings ar Grafana + Prometheus lietojumprogrammas metrikām (latentums, kļūdu īpatsvars, rindas izmērs) un Loki žurnālu agregācijai. Brīdinājumi konfigurēti Slack/e-pastam: kļūdu īpatsvars >1%, latentums P95 >500 ms, disks >85%. Ārējs uptime monitorings ar Better Uptime — publisks SLA informācijas panelis pieejams pēc pieprasījuma.

  • Trivy ievainojamību skenēšana attēliem — bloķēšana pie Critical CVE
  • Dependabot + auto-merge patch atjauninājumiem (obligāts zaļš CI)
  • Automātiska DB rezerves kopija uz S3 saderīgu glabātuvi (katru nakti, glabāšana 30 dienas)

Priekšrocības un ierobežojumi

Priekšrocības

  • Izvietošana ar automātisku atgriešanu, ja healthcheck neizdodas.
  • Automātisks SSL/TLS ar Caddy — nekādu manuāli nokavētu sertifikātu.
  • Atkārtojama vide: viens un tas pats Docker attēls dev, staging un produkcijā.
  • Monitorings un brīdinājumi (Grafana, Loki) — problēmas redzamas pirms lietotājiem.

Ierobežojumi

  • Docker Compose nemērogojas kā Kubernetes vairāku mezglu enterprise videi.
  • Sākotnējai CI/CD iestatīšanai nepieciešams laiks un DevOps pieredze.
  • Attēli un žurnāli aizņem diska vietu — nepieciešama periodiska tīrīšana.
  • Pilns monitorings (Prometheus + Grafana) pievieno papildu uzturamus pakalpojumus.

Īss secinājums

Docker + Caddy + GitHub Actions ir ideāla kombinācija uzticamai izvietošanai uz VPS vai dažiem mezgliem. Desmitiem mezglu ar agresīvu automātisko mērogošanu pāries uz Kubernetes.

Specifikāciju tabula

IespējaIerobežojums / slieksnisTipisks pielietojums
OrķestrēšanaDocker Compose, pilns steksViens mezgls; vairākiem mezgliem nepieciešams Swarm/K8sVPS, mazi un vidēji projekti
Reverse proxyCaddy 2.8, HTTP/3, automātisks SSLĻoti sarežģītiem noteikumiem nepieciešama plaša konfigurācijaVairāku domēnu, daudznomnieku
CI/CDGitHub Actions, automātiska izvietošanaCI minūtes tiek apmaksātas virs bezmaksas limitaAutomātiski no commit līdz produkcijai
Tipiskās izmaksasVPS no ~5 €/mēnesīMonitorings + rezerves kopijas pievieno izmaksasNo vienas vietnes līdz vairākiem zīmoliem

Docker Compose pret Kubernetes

KritērijsDocker ComposeKubernetes
Iestatīšanas sarežģītībaZemaAugsta
Vairāku mezglu mērogošana / auto-scalingIerobežota (viens mezgls)Teicama
PiemērotsVPS, mazi un vidēji projektiLieli parki, enterprise

Biežāk uzdotie jautājumi

Kāpēc Caddy, nevis Nginx?

Caddy automātiski pārvalda SSL/TLS caur ACME, pēc noklusējuma ieslēdz HTTP/2 un HTTP/3 un tam ir īsa deklaratīva konfigurācija. Nginx tam pašam rezultātam nepieciešams certbot un vairāk manuālas konfigurēšanas.

Vai man vajag Kubernetes?

Lielākajai daļai vietņu nē. Docker Compose uz VPS uzticami apkalpo vienu vietni vai dažus pakalpojumus. Kubernetes kļūst noderīgs tikai pie desmitiem mezglu ar agresīvu automātisko mērogošanu.

Kā darbojas izvietošana?

GitHub Actions uzbūvē jaunu attēlu, palaiž to līdzās vecajam, izpilda healthcheck, pēc tam pārslēdz datplūsmu. Ja healthcheck neizdodas 60 sekunžu laikā, tiek veikta automātiska atgriešana uz iepriekšējo versiju.

Kādu monitoringu iesakāt?

Grafana + Prometheus metrikām (latentums, kļūdu īpatsvars) un Loki agregētiem žurnāliem, ar brīdinājumiem Slack/e-pastā. Ārējam uptime pievienojam neatkarīgu pakalpojumu, piemēram, Better Uptime.

4b2b.net
Biznesa ekosistēma
4conta.ro
Grāmatvedība
4invoices.net
Rēķinu izrakstīšanas lietotne
4expenses.net
Izdevumu pārvaldība
4notify.net
Paziņojumi
4hosting.net
Hostings
4database.net
Datubāzes
4buildsite.net
Mājaslapu veidotājs
4myapp.net
Lietotņu veidotājs
4avatars.net
MI avatāri
4chaty.net
MI tērzēšanas robots
4webagency.net
Programma tīmekļa aģentūrām
4softedu.net
Mājaslapas izglītībai
4softcrm.net
CRM platforma
4softerp.net
ERP sistēma
4softhr.net
Personāla vadība
4mystaff.net
Darbinieku portāls
4myprojects.net
Projektu vadība
4mycontracts.net
Līgumi
4docs.net
Dokumentu pārvaldība
4appointments.net
Pieraksts
4marketingonline.net
Mārketings
4insurance.net
Apdrošināšana
4property.net
Nekustamais īpašums
4lawyers.net
Programma juristiem
4mygarage.net
Autoserviss
4driving.net
Autoskolas
4fleet.net
Autoparka vadība
4myevents.net
Pasākumi
4therapy.net
Terapija
4clinics.net
Klīnikas
4dental.net
Zobārstniecības klīnikas
4restaurants.net
Restorāni
4beautify.net
Skaistumkopšanas salons
4gym.net
Sporta klubi
4guards.net
Apsardzes uzņēmumi
4softvet.net
Veterinārās klīnikas
4softauto.net
Programmatūra auto biznesam
4construct.net
Būvniecības uzņēmumi
4marketplace.net
Tirdzniecības platforma
4shopy.net
Interneta veikals
4pricing.net
Cenu salīdzināšana
4salefood.net
Ēdiena piegāde
4rentify.net
Noma
4transports.net
Transports
4agencytravel.net
Ceļojumu aģentūra
4hotel.net
Viesnīcu vadība
4ong.net
NVO pārvaldība