Teknologi

← Laman Utama
Infrastruktur & Penerapan

Cloud, Docker & DevOps — Penerapan pantas dan boleh dipercayai

Kami mengkontenakan semua aplikasi dengan Docker, mengorkestrasikannya dengan Docker Compose (atau Kubernetes untuk projek enterprise), mengkonfigurasi Caddy sebagai proksi terbalik dengan SSL automatik dan mengautomasikan keseluruhan kitaran penerapan melalui GitHub Actions — daripada commit ke pengeluaran dalam masa kurang 5 minit.

Kontenerisasi dengan Docker dan Docker Compose

Setiap perkhidmatan mempunyai Dockerfile multi-stage sendiri: peringkat build yang memasang kebergantungan dan mengkompil, serta peringkat akhir minimum (distroless atau alpine) yang hanya mengandungi artifak yang perlu. Imej Next.js biasa bersaiz di bawah 150MB; FastAPI di bawah 80MB. Imej dibina semula pada setiap penggabungan ke main dan ditag secara semantik (`v1.2.3` + `latest`).

Docker Compose mentakrifkan keseluruhan tindanan: frontend, API, DB, Redis, worker. Pemboleh ubah sensitif (kata laluan DB, kunci API, rahsia Stripe) berada dalam `.env` yang dikecualikan daripada git — tidak pernah ditulis keras dalam imej. Health check dalam Compose memastikan kebergantungan sedia sebelum permulaan (DB sedia → API bermula → frontend bermula).

  • Cache build dengan `--mount=type=cache` — npm ci menggunakan cache pada CI
  • Susunan lapisan yang dioptimumkan: kebergantungan stabil → kod sumber
  • Pengurusan rahsia dengan Docker secrets atau HashiCorp Vault untuk projek enterprise
  • `restart: unless-stopped` + `docker compose up --no-deps` untuk penerapan atomik

Caddy — proksi terbalik moden dengan SSL automatik

Caddy 2.8 mengurus SSL/TLS secara automatik melalui ACME (Let's Encrypt atau ZeroSSL) — tiada sijil tamat tempoh, tiada konfigurasi manual. HTTP/2 dan HTTP/3 (QUIC) diaktifkan secara lalai. Header keselamatan (HSTS, X-Frame-Options, CSP) ditetapkan secara global melalui snippet boleh guna semula. Konfigurasi Caddyfile deklaratif boleh dibandingkan dan diversikan dalam git.

Pengehadan kadar, pemampatan gzip/brotli dan pengelogan JSON berstruktur diaktifkan melalui arahan Caddy asli — tanpa modul nginx atau konfigurasi Apache yang kompleks. Akses ke laluan sensitif (`/admin`, `.env`, `.git`) memulangkan 444 (tiada respons) yang dikonfigurasi sebagai snippet keselamatan global.

  • A+ pada SSL Labs sejak hari pertama — hanya TLS 1.3 dengan cipher suite moden
  • TLS atas permintaan untuk SaaS berbilang penyewa dengan subdomain dinamik
  • Muat semula — `caddy reload` tidak mengganggu sambungan aktif
  • Pengelogan Caddy → Loki → Grafana — analisis trafik dan amaran anomali

CI/CD GitHub Actions dan pemantauan

Saluran paip CI berjalan pada setiap PR: lint, semakan jenis, ujian unit, build imej Docker, imbasan kerentanan (Trivy). Jika semuanya lulus, imej ditolak ke registri dan penerapan staging berlaku secara automatik. Penggabungan ke main = penerapan pengeluaran automatik dengan healthcheck selepas penerapan. Rollback automatik jika healthcheck gagal dalam masa 60 saat.

Pemantauan dengan Grafana + Prometheus untuk metrik aplikasi (kependaman, kadar ralat, saiz baris gilir) dan Loki untuk pengagregatan log. Amaran dikonfigurasi pada Slack/e-mel: kadar ralat >1%, kependaman P95 >500ms, cakera >85%. Pemantauan uptime luaran dengan Better Uptime — papan pemuka SLA awam tersedia atas permintaan.

  • Imbasan kerentanan Trivy pada imej — disekat jika ada CVE Kritikal
  • Dependabot + gabung automatik untuk kemas kini patch (CI hijau diperlukan)
  • Sandaran DB automatik ke storan serasi S3 (setiap malam, penyimpanan 30 hari)

Kelebihan dan kekurangan

Kelebihan

  • Penerapan dengan rollback automatik apabila healthcheck gagal.
  • SSL/TLS automatik melalui Caddy — tiada sijil tamat tempoh secara manual.
  • Persekitaran boleh dihasilkan semula: imej Docker yang sama pada dev, staging, pengeluaran.
  • Pemantauan dan amaran (Grafana, Loki) — isu dilihat sebelum pengguna.

Had

  • Docker Compose tidak berskala seperti Kubernetes untuk enterprise berbilang nod.
  • Persediaan CI/CD awal memerlukan masa dan kepakaran DevOps.
  • Imej dan log menggunakan ruang cakera — memerlukan pembersihan berkala.
  • Pemantauan penuh (Prometheus + Grafana) menambah perkhidmatan untuk diselenggara.

Rumusan ringkas

Docker + Caddy + GitHub Actions ialah gabungan ideal untuk penerapan yang boleh dipercayai pada VPS atau beberapa nod. Untuk berpuluh-puluh nod dengan penskalaan automatik yang agresif, beralih ke Kubernetes.

Jadual spesifikasi

KeupayaanHad / ambangKegunaan biasa
OrkestrasiDocker Compose, tindanan penuhNod tunggal; berbilang nod memerlukan Swarm/K8sVPS, projek kecil hingga sederhana
Proksi terbalikCaddy 2.8, HTTP/3, SSL automatikPeraturan sangat kompleks memerlukan konfigurasi lanjutanBerbilang domain, berbilang penyewa
CI/CDGitHub Actions, penerapanMinit CI dibilkan melebihi tahap percumaCommit-ke-pengeluaran automatik
Kos biasaVPS dari ~€5/bulanPemantauan + sandaran menambah kosDaripada satu laman hingga berbilang jenama

Docker Compose berbanding Kubernetes

KriteriaDocker ComposeKubernetes
Kerumitan persediaanRendahTinggi
Berbilang nod / penskalaan automatikTerhad (satu nod)Cemerlang
Terbaik untukVPS, projek kecil hingga sederhanaArmada besar, enterprise

Soalan lazim

Mengapa Caddy dan bukan Nginx?

Caddy mengurus SSL/TLS secara automatik melalui ACME, mengaktifkan HTTP/2 dan HTTP/3 secara lalai dan mempunyai konfigurasi deklaratif yang ringkas. Nginx memerlukan certbot dan lebih banyak konfigurasi manual untuk hasil yang sama.

Adakah saya memerlukan Kubernetes?

Tidak untuk kebanyakan laman. Docker Compose pada VPS mengendalikan satu laman atau beberapa perkhidmatan dengan boleh dipercayai. Kubernetes hanya berguna pada berpuluh-puluh nod dengan penskalaan automatik yang agresif.

Bagaimana penerapan berfungsi?

GitHub Actions membina imej baharu, memulakannya bersama imej lama, menjalankan healthcheck, kemudian menukar trafik. Jika healthcheck gagal dalam masa 60 saat, ia melakukan rollback secara automatik ke versi sebelumnya.

Apakah pemantauan yang anda cadangkan?

Grafana + Prometheus untuk metrik (kependaman, kadar ralat) dan Loki untuk log teragregat, dengan amaran Slack/e-mel. Untuk uptime luaran kami menambah perkhidmatan bebas seperti Better Uptime.

4b2b.net
Ekosistem Perniagaan
4conta.ro
Perakaunan
4invoices.net
Aplikasi Pengebilan
4expenses.net
Pengurusan Perbelanjaan
4notify.net
Pemberitahuan
4hosting.net
Pengehosan
4database.net
Pangkalan Data
4buildsite.net
Pembina Laman Web
4myapp.net
Pembina Aplikasi
4avatars.net
Avatar AI
4chaty.net
Chatbot AI
4webagency.net
Perisian Agensi Web
4softedu.net
Laman Web Pendidikan
4softcrm.net
Platform CRM
4softerp.net
Sistem ERP
4softhr.net
Pengurusan HR
4mystaff.net
Portal Kakitangan
4myprojects.net
Pengurus Projek
4mycontracts.net
Kontrak
4docs.net
Pengurusan Dokumen
4appointments.net
Temu Janji
4marketingonline.net
Pemasaran
4insurance.net
Insurans
4property.net
Hartanah
4lawyers.net
Perisian Undang-undang
4mygarage.net
Bengkel Kereta
4driving.net
Sekolah Memandu
4fleet.net
Pengurusan Armada
4myevents.net
Acara
4therapy.net
Terapi
4clinics.net
Klinik
4dental.net
Klinik Pergigian
4restaurants.net
Restoran
4beautify.net
Salon Kecantikan
4gym.net
Pusat Kecergasan
4guards.net
Syarikat Keselamatan
4softvet.net
Klinik veterinar
4softauto.net
Perisian perniagaan automotif
4construct.net
Syarikat Pembinaan
4marketplace.net
Marketplace
4shopy.net
Kedai Dalam Talian
4pricing.net
Perbandingan Harga
4salefood.net
Penghantaran Makanan
4rentify.net
Penyewaan
4transports.net
Pengangkutan
4agencytravel.net
Agensi Pelancongan
4hotel.net
Pengurusan Hotel
4ong.net
Pengurusan NGO