Hosting Edge dan CI/CD Hemat Biaya
Web berjalan di Cloudflare Workers dan API di Fly.io, dengan CI yang hanya menjalankan pemeriksaan sesuai bagian kode yang berubah.
- Status
- Sudah berjalan
- Lapisan
- DevOps
- Dipakai oleh
- Tim teknis Numekara, dan pemilik yang ingin situs tetap cepat, aman saat diperbarui, dan hemat biaya.
Masalahnya
Biaya server dan menit CI bisa membengkak cepat untuk tim kecil, sementara deploy tanpa pemeriksaan berisiko merusak situs.
Solusinya
Next.js dibangun dengan OpenNext untuk Cloudflare Workers, konten besar dibaca saat build agar bundle tetap kecil, dan API dikemas Docker untuk Fly.io dengan cek kesehatan. CI memakai filter path, pemindai rahasia, unit test, dan tes end-to-end.
Cara kerjanya
Apa yang terjadi, langkah demi langkah, dari sudut pandang pengguna.
- 01
Perubahan kode dikirim
Developer mengirim perubahan ke GitHub, biasanya lewat pull request yang ditinjau dulu.
- 02
Hanya pemeriksaan yang relevan
CI melihat bagian mana yang berubah. Bila hanya konten, pemeriksaan API dilewati agar menit gratis GitHub Actions tidak terbuang.
- 03
Kode diperiksa otomatis
Gitleaks mencari kata sandi yang terselip, lalu tes otomatis dan build dijalankan. Tes di browser berjalan saat pull request siap ditinjau.
- 04
Web terbit di Cloudflare
Situs Next.js dikemas dengan OpenNext untuk Cloudflare Workers. Konten besar dibaca saat build agar paketnya tetap kecil.
- 05
API terbit di Fly.io
API dikemas sebagai Docker. Fly.io menjalankan pembaruan database dulu, lalu baru mengalihkan pengunjung setelah server baru lolos cek kesehatan.
- 06
Smoke test memastikan semuanya hidup
Setelah terbit, skrip memeriksa sekali lagi bahwa halaman dan API utama menjawab dengan benar.
Desain sistemnya
Siapa yang memakai, apa yang mereka lihat, apa yang bekerja di belakang layar, dan di mana data disimpan. Baca dari kiri ke kanan.
1Tim
- DeveloperMengirim perubahan kode ke GitHub
2Pemeriksaan otomatis
- CI GitHub ActionsMenjalankan hanya pemeriksaan untuk bagian yang berubah
- GitleaksMenahan rilis bila ada kata sandi atau kunci yang bocor
- Tes otomatisVitest, pytest, dan Playwright menguji web, API, dan alur di browser
3Proses rilis
- Workflow deployMenerbitkan web dan API, lalu menjalankan smoke test
4Tempat aplikasi berjalan
- Cloudflare WorkersMenjalankan situs web di jaringan Cloudflare yang dekat pengunjung
- Fly.ioMenjalankan API dalam kontainer Docker dengan cek kesehatan
Fitur utama
- Web di Cloudflare Workers
- API Docker di Fly.io
- CI hanya untuk bagian berubah
- Pemindai rahasia otomatis
- Deploy bergulir dengan cek kesehatan
Dibangun dengan
- Cloudflare Workers
- OpenNext
- Fly.io
- Docker
- GitHub Actions
- Playwright
- Vitest
- pytest
- Gitleaks
Angka yang bisa dibuktikan
- 16.6 MB
- Ukuran handler Worker setelah optimasi (sebelumnya 102 MB)
- 415
- File uji web (Vitest)
- 117
- File uji API (pytest)
Yang didapat bisnis
- Ukuran paket web turun dari 102 MB menjadi 16,6 MB sehingga muat di batas Cloudflare Workers.
- Menit CI gratis tidak habis untuk pemeriksaan yang tidak perlu.
- Versi yang rusak tertahan sebelum sampai ke pengunjung.
- Kata sandi yang tidak sengaja tertulis di kode tertangkap sebelum terbit.
- Versi baru menggantikan versi lama tanpa mematikan situs.
Istilah di halaman ini
- CI/CD
- Jalur otomatis yang memeriksa setiap perubahan kode lalu menerbitkannya bila lolos.
- Cloudflare Workers
- Layanan yang menjalankan situs di banyak pusat data Cloudflare, sehingga dekat dengan pengunjung.
- Docker
- Cara membungkus aplikasi beserta semua kebutuhannya dalam satu paket yang berjalan sama di mana pun.
- Smoke test
- Pemeriksaan cepat setelah rilis untuk memastikan fungsi utama situs masih menyala.
Bisa dipakai untuk bisnis Anda?
Infrastruktur yang hemat untuk bisnis yang baru tumbuh, dengan pemeriksaan otomatis yang menjaga situs Anda tetap aman saat diperbarui.
Konsultasikan proyek ini