- Kernel adalah platform serverless yang memungkinkan developer langsung mendeploy kode otomatisasi browser tanpa perlu memikirkan infrastruktur terpisah, serta menskalakannya dalam skala besar
- Tanpa konfigurasi atau membangun pipeline, kode bisa dideploy dan dijalankan dengan kecepatan yang hampir sama seperti pengembangan lokal
- Menyediakan browser Chrome yang dapat digunakan di lingkungan sandbox, serta secara otomatis mengubah agen yang ditulis menjadi API sehingga bisa dipanggil dari mana saja
- Mendukung integrasi dengan framework berbasis Chrome DevTools Protocol seperti Playwright dan Puppeteer, serta memungkinkan pemantauan dan kontrol real-time melalui GUI jarak jauh (live view)
- Mendukung lingkungan Unikraft unikernel untuk menyediakan fitur berperforma tinggi seperti restart supercepat, pemulihan snapshot, dan minimisasi resource
- Mendukung dua metode deployment, yaitu image Docker dan Unikraft unikernel, sehingga dapat digunakan di berbagai lingkungan cloud/kontainer
- Semua kode dijalankan dengan aman di mesin virtual yang terisolasi, serta menyediakan alat observasi dan debugging real-time
What's Kernel?
- Kernel menyediakan lingkungan browser Chrome yang tersandbox dan siap pakai, dan repositori ini adalah kode dasar untuk layanan hosting Kernel
- Dapat dengan mudah terhubung dari framework browser berbasis Chrome DevTools seperti Playwright dan Puppeteer
Why use Kernel?
- Deploy dari lokal ke produksi dalam hitungan detik
- Tanpa konfigurasi terpisah atau pipeline produksi, kode dapat dideploy dan dijalankan hampir secepat
bun run dev
- Mengubah semua agen menjadi API
- Semua agen yang diunggah ke platform akan secara otomatis diekspos sebagai API dan dapat dipanggil dari luar
- Skalabilitas paralel
- Dapat langsung menjalankan dan menskalakan ribuan instance browser kapan pun diperlukan
- Isolasi dan observabilitas yang ditingkatkan
- Kode berjalan di VM yang terisolasi untuk keamanan lebih tinggi, dan disertai alat pemantauan serta debugging
- Paket harga yang sederhana dan dapat diprediksi
- Tanpa perlu mendefinisikan infrastruktur di awal, biaya hanya timbul sesuai resource yang digunakan
Fitur utama
- Lingkungan browser terpadu: membuat dan mengendalikan browser secara instan di cloud, dioptimalkan untuk otomatisasi workload
- Browser Chrome tersandbox dapat dihubungkan dan digunakan dari framework otomatisasi berbasis DevTools
- Integrasi dengan Playwright, Puppeteer, dan lainnya melalui port 9222
- Menghubungkan dari klien jarak jauh setelah memperoleh endpoint WebSocket CDP
- Mendukung putus sambung dan sambung ulang
- Mempertahankan status sesi: sesi browser seperti cookie, token autentikasi, dan riwayat tetap dipertahankan antar pemanggilan
- Restart supercepat (standby mode): instance browser dapat langsung dimulai ulang dalam waktu kurang dari 20ms
- GUI jarak jauh (streaming live view) memungkinkan layar browser dipantau dan dikendalikan secara real-time
- noVNC: berbasis VNC, mendukung baca/tulis, perlu menonaktifkan WebRTC
- WebRTC: real-time, baca/tulis, ubah ukuran jendela, salin/tempel, performa tinggi, memerlukan
ENABLE_WEBRTC=true
- Streaming audio belum didukung, mode hanya-baca dapat diatur melalui environment variable
- Replay video sesi browser: dapat meninjau sesi sebelumnya untuk debugging dan analisis (dukungan direncanakan)
Implementasi dan deployment
-
Menggunakan kontainer Docker
- Dapat menjalankan Chromium headful di kontainer Docker
- Setelah
cd images/chromium-headful, tersedia skrip build dan run
- WebRTC dan pengaturan lainnya dapat diaktifkan melalui environment variable
-
Menggunakan Unikraft Unikernel
- Saat dijalankan berbasis Unikraft unikernel, menyediakan startup dan mode standby yang lebih cepat dibanding berbasis Docker
- Jika tidak ada traffic jaringan, otomatis masuk ke mode standby, serta mendukung snapshot/pemulihan status
- Cold start kurang dari 20ms, serta dapat mempertahankan dan memulihkan status sesi (cookie, file, pengaturan browser, dll.)
- Memerlukan memori 8GB atau lebih
-
Hal yang perlu diperhatikan saat deployment
- Saat mengaktifkan streaming berbasis WebRTC, diperlukan server TURN
- Pada deployment unikernel, URL publik akan diterbitkan sehingga siapa pun bisa mengaksesnya, jadi jangan gunakan untuk pekerjaan sensitif, dan hapus instance setelah digunakan
Belum ada komentar.