Panduan lengkap untuk pengajar mengendalikan sesi deployment — dari konsep asas hingga perbandingan 10 platform hosting.
Sesi ini adalah fasa terakhir dalam kursus Vibe Coding, di mana pelajar akan belajar cara menyiarkan (deploy) aplikasi web mereka ke internet supaya boleh diakses oleh orang ramai.
Pelajar akan dibandingkan 10 platform deployment berbeza, melihat demo langsung cara deploy, dan membuat sendiri deployment pertama mereka.
Terangkan apa itu deployment dengan analogi mudah:
Analogi: Deployment macam pindah rumah. Kod anda sekarang ada di komputer sendiri (rumah lama). Nak orang lain boleh lawat, kena pindah ke "server" (rumah baru yang sentiasa buka pintu). Platform deployment macam Cloudflare/Netlify tu ejen hartanah — mereka uruskan semua proses pindah dan pastikan rumah sentiasa boleh dikunjungi.
portfoliopelajar.com)Ini adalah platform utama yang disarankan untuk pelajar beginner. Paling mudah, pantas, dan free tier paling generous.
Kenapa Cloudflare Pages dulu? Build pantas, UI clean, integration dengan GitHub seamless, free tier unlimited sites, dan SSL automatik. Paling sesuai untuk beginner.
Tunjukkan alternatif. Netlify lebih mature dan ada lebih banyak feature Forms & Functions, tapi build minit terhad.
Gunakan halaman perbandingan untuk menerangkan 10 platform. Fokus pada:
Pelajar menjalankan 4 latihan secara individu atau berpasangan:
projek.pages.dev), tapi custom domain lebih baik untuk portfolio/projek serius. Setup DNS tak sesukar mana — cuma update CNAME record.Demo ini menggunakan projek landing page dari Fasa 3. Pastikan projek sudah siap dan push ke GitHub.
Tip Pengajar: Kalau pelajar takde akaun Cloudflare, suruh daftar dulu sebelum kelas. Proses registrasi ambil 2-3 minit.
Nota: Untuk projek HTML/CSS/JS tulen, tak perlu build command. Kalau guna framework (React, Vue, dll.), baru perlukan build command macam npm run build.
Tip Pengajar: Tunjukkan konsep "continuous deployment" — ubah sesuatu dalam kod, Git push, tunjuk yang Cloudflare auto-deploy dalam beberapa saat. Pelajar akan teruja!
Perhatian: Netlify ada had 300 build minutes/bulan untuk free tier. Untuk demo di kelas, build minutes akan berkurang. Tapi untuk projek beginner, 300 minit sebulan lebih dari cukup.
| Aspek | Cloudflare Pages | Netlify |
|---|---|---|
| Build Speed | Sangat pantas | Sederhana |
| Free Tier | 500 builds/bln, unlimited bandwidth | 300 min build, 100GB bandwidth |
| UI/UX | Clean, modern | Mature, lebih banyak option |
| Features | Workers, KV, D1 | Forms, Functions, Split testing |
| Best For | Static + Edge functions | Static + serverless functions |
Masalah: Pelajar set build output directory salah. Contoh: letak /dist tapi fail HTML ada dalam root.
✅ Penyelesaian: Set build output directory ke folder yang betul. Untuk HTML tulen, guna / atau ..
Masalah: Pelajar lupa Git push. Atau deploy cache — browser masih tunjuk version lama.
✅ Penyelesaian: Ajar konsep "hard refresh" (Ctrl+Shift+R / Cmd+Shift+R). Dan biasakan Git add → commit → push sebelum deploy.
Masalah: Pelajar delete GitHub repo tapi still nak update deployment.
✅ Penyelesaian: Deploy dari folder lokal guna CLI. Netlify: npx netlify deploy. Cloudflare: npx wrangler pages deploy ./folder.
Masalah: DNS propagation belum complete, atau CNAME record salah set.
✅ Penyelesaian: DNS propagation boleh ambil masa 5 minit hingga 48 jam. Guna whatsmydns.net untuk semak status. Pastikan record type betul — A record untuk root domain, CNAME untuk subdomain.
Masalah: File path guna huruf besar-kecil tak konsisten. Windows tak case-sensitive, tapi server Linux (hosting) adalah case-sensitive.
✅ Penyelesaian: Guna huruf kecil semua untuk nama fail dan folder. Konsisten guna ./ untuk relative paths.
Masalah: Pelajar trigger build berkali-kali (setiap Git push trigger build baru).
✅ Penyelesaian: Kumpul perubahan dulu, baru push sekali. Atau guna [skip ci] dalam commit message untuk elakkan auto-build. Cloudflare Pages tiada masalah ni — 500 builds/bulan generous.
Gunakan pendekatan soalan untuk bimbing pelajar membuat keputusan sendiri:
| Profil Pelajar | Platform Disarankan | Sebab |
|---|---|---|
| Beginner mutlak (tak pernah deploy) | Cloudflare Pages | Paling mudah, UI clean, free tier paling generous |
| Nak portfolio profesional | Netlify / Vercel | Domain name yang cantik, banyak template |
| Static site simple | GitHub Pages | Zero setup — dah ada GitHub, boleh deploy terus |
| Nak belajar backend | Railway / Render | Free tier untuk backend, deployment mudah |
| Projek real-time / WebSocket | Fly.io | 3 VM percuma, sesuai untuk apps real-time |
| Projek dengan database | Supabase Hosting | Hosting + database dalam satu platform |
| Client/enterprise projek | AWS Amplify / Azure SWA | Enterprise features, SLA, compliance |
Untuk kelas lanjutan: Selepas deployment asas, ajar CI/CD pipeline — GitHub Actions untuk auto-deploy, preview deployments untuk pull request, dan blue-green deployments untuk zero-downtime updates.