Skip to content

Domain, hosting, code and data — in your name, in writing

jagaweb.

Seni Bina Sistem

Migrasi dari Exabytes ke Google Cloud Run Wilayah Malaysia & Singapura

Bacaan 5 minitOleh Pasukan Teknikal JagaWeb

Panduan seni bina mengenai migrasi laman WordPress atau Next.js legasi dari Exabytes ke Google Cloud Run berkontena yang boleh diskalakan di rantau asia-southeast1.

Keluar daripada Perangkap Pengehosan Kongsi

Pengehosan Exabytes sesuai untuk laman web peringkat permulaan, tetapi apabila perniagaan Malaysia anda berkembang pesat, seni bina pengehosan kongsi legasi (cPanel, Apache, MySQL setempat) menjadi kekangan utama. Masa operasi menurun, proses pelaksanaan (deployment) dilakukan secara manual melalui FTP, dan penskalaan memerlukan pembelian pelayan VPS yang lebih mahal dan bukannya penskalaan elastik automatik.

Penyelesaian moden bertaraf perusahaan ialah pengkontenaan aplikasi melalui Docker dan pelaksanaannya ke platform Tanpa Pelayan (Serverless) seperti Google Cloud Run, khususnya menggunakan rantau asia-southeast1 (Singapura) untuk pendaman (latency) ultra-rendah ke Malaysia.

1. Mengkontenakan Aplikasi

Sama ada anda menjalankan aplikasi Node.js (Next.js) atau persediaan WordPress tanpa kepala (headless), langkah pertama ialah membungkus aplikasi ke dalam Dockerfile.

Bagi aplikasi Next.js, gunakan binaan berbilang peringkat (multi-stage build) untuk memastikan imej bekas sentiasa ringan:

# Peringkat Binaan (Build Stage)
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Peringkat Produksi (Production Stage)
FROM node:18-alpine AS runner
WORKDIR /app
COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static

EXPOSE 8080
ENV PORT=8080
CMD ["node", "server.js"]

2. Melaksanakan ke Cloud Run

Setelah imej siap, tolak (push) imej tersebut ke Google Artifact Registry dan laksanakan ke Cloud Run:

# Bina dan hantar imej ke pendaftar
gcloud builds submit --tag asia-southeast1-docker.pkg.dev/PROJECT_ID/repo/app-name

# Laksanakan ke Cloud Run
gcloud run deploy app-name \
  --image asia-southeast1-docker.pkg.dev/PROJECT_ID/repo/app-name \
  --region asia-southeast1 \
  --allow-unauthenticated \
  --port 8080 \
  --max-instances 10 \
  --cpu-boost

Cloud Run akan menskalakan instans secara automatik daripada 0 hingga 10 mengikut beban trafik, bermakna anda hanya membayar masa pengiraan milisaat sebenar yang digunakan.

3. Mengasingkan Pangkalan Data

Cloud Run bersifat tanpa keadaan (stateless). Anda perlu memindahkan pangkalan data MySQL Exabytes anda ke Google Cloud SQL (PostgreSQL atau MySQL). Sambungkan Cloud Run ke Cloud SQL secara selamat menggunakan Cloud SQL Auth Proxy melalui soket Unix, sekali gus mengelakkan pendedahan IP awam.


Bersedia untuk infrastruktur bertaraf perusahaan? Kami mereka bentuk seni bina tanpa pelayan untuk Trexon Energy dan TechFix Malaysia di atas GCP, mencapai masa hidup 99.99% tanpa sebarang kerumitan penyelenggaraan pelayan tradisional.

Biarkan JagaWeb merangka pelan migrasi awan anda melalui Semakan Pemilikan & Akses bernilai RM5,000, atau biarkan jurutera kami menguruskan persekitaran Cloud Run anda dengan Pelan Penjagaan RM450/bulan.

WhatsApp