Cloudflare Dynamic Workers Membuat Sandbox 100x Lebih Cepat

BBetter Stack
Internet TechnologySmall Business/StartupsComputing/Software

Transcript

00:00:00(musik ceria)
00:00:01Jadi Cloudflare baru saja mengumumkan dynamic workers,
00:00:04sebuah primitif worker tingkat rendah
00:00:06yang dapat dibuat secara programatik oleh worker yang sudah ada.
00:00:09Mereka seratus kali lebih cepat dan lebih efisien memori
00:00:12daripada kontainer tradisional karena berjalan pada isolat V8.
00:00:16Dan karena biayanya sangat murah,
00:00:18Anda bisa membuat sebanyak yang Anda mau
00:00:20untuk menjalankan kode buatan AI, pratinjau pengembangan,
00:00:23otomatisasi khusus, dan banyak lagi.
00:00:25Maksud saya, mereka bahkan bilang Anda bisa menjalankan 1 juta dynamic workers
00:00:29per detik jika Anda mau.
00:00:31Tapi apakah fakta bahwa Anda hanya bisa menjalankan
00:00:33JavaScript pada mereka membatasi penggunaannya?
00:00:36Klik subscribe dan mari kita cari tahu.
00:00:37(musik ceria)
00:00:40Tahun lalu, saya membuat video tentang sandbox Cloudflare,
00:00:44yang pada dasarnya adalah kontainer Linux berumur pendek
00:00:47yang berjalan pada durable object.
00:00:49Jika itu tidak masuk akal bagi Anda,
00:00:50silakan tonton video tersebut.
00:00:52Tapi mereka sempurna jika Anda menginginkan kontainer OS lengkap
00:00:55dengan sistem berkas dan kemampuan menjalankan hampir semua bahasa
00:00:59dan biner apa pun.
00:01:01Namun jika Anda menginginkan sesuatu yang agak lebih cepat,
00:01:03sebenarnya jauh lebih cepat dan jauh lebih ringan
00:01:06dengan kemampuan menjalankan sandbox bersamaan tanpa batas
00:01:09dalam sesuatu yang memiliki batasan yang sama dengan worker biasa,
00:01:12maka Anda mungkin ingin menggunakan dynamic worker.
00:01:15Mari kita bahas cara menyiapkannya.
00:01:16Jadi di sini ada worker dasar yang baru saja saya buat dengan Wrangler,
00:01:19penuh dengan kesalahan TypeScript,
00:01:21mungkin karena saya lupa menjalankan tipe Wrangler.
00:01:23Tetapi dalam file konfigurasi Wrangler kami,
00:01:26saya telah menambahkan array worker loaders ini
00:01:28dengan binding yang disebut loader.
00:01:30Sekarang ini bisa disebut apa pun yang Anda inginkan,
00:01:32tapi saya memilih loader karena lebih konvensional.
00:01:34Dan binding ini memungkinkan kita untuk membuat
00:01:37dan mengontrol worker lainnya.
00:01:38Jadi dalam kode yang diperbarui, kita memiliki konstanta worker baru,
00:01:42yang menggunakan binding loader dengan nilai-nilai ini.
00:01:45Sekarang Anda bisa membayangkan ini sebagai file konfigurasi Wrangler
00:01:49untuk worker yang bersarang,
00:01:50tetapi di sini tanggal kompatibilitas memberi tahu worker
00:01:53versi runtime apa yang harus digunakannya.
00:01:55Dan inilah kode yang akan dijalankannya.
00:01:57Jadi seperti yang Anda lihat, kodenya sangat mirip
00:01:59dengan worker itu sendiri.
00:02:00Ia memiliki fungsi fetch
00:02:02dengan argumen request env dan context.
00:02:05Dan yang dilakukannya di sini hanyalah merespons
00:02:06dengan "hello world" dari sandbox.
00:02:08Kami kemudian mencegah semua akses jaringan,
00:02:10menjalankan fungsi fetch dengan argumen request
00:02:13dari worker awal dan mengembalikan hasilnya.
00:02:16Jadi jika kita menjalankan worker kita secara lokal lalu curl localhost,
00:02:19kita akan melihat "hello from the sandbox".
00:02:21Tetapi jika kita menjalankan permintaan curl yang sama lagi,
00:02:24kita akan mendapatkan kesalahan.
00:02:24Dan ini karena saat ini
00:02:26kita sedang memuat worker yang benar-benar baru.
00:02:28Tapi yang bisa kita lakukan sebagai gantinya adalah mengambil worker yang sudah ada,
00:02:31yang akan kita beri nama worker satu
00:02:33dan kemudian jalankan kodenya sebagai fungsi asinkron.
00:02:35Artinya sekarang jika kita jalankan curl, kita dapat "hello from the sandbox".
00:02:38Tapi jika kita menjalankannya lagi, ia mengambil informasi
00:02:41dari sandbox worker satu yang sudah ada.
00:02:43Nah, apa yang baru saja saya tunjukkan
00:02:45tentu saja adalah contoh yang sangat sederhana,
00:02:47tapi Anda bisa melakukan beberapa hal keren dengan dynamic workers
00:02:50seperti menentukan binding khusus,
00:02:52seperti metode post chatroom ini untuk membuat stub,
00:02:55yang dikomunikasikan oleh worker menggunakan cap n proto,
00:02:57yang ya, kami sudah membuat videonya,
00:02:59jadi silakan tonton jika Anda tertarik.
00:03:00Anda dapat menggunakan dependensi NPM seperti Hono
00:03:03dan membundelnya menggunakan fungsi create worker.
00:03:05Dan Anda bahkan dapat mencegat permintaan keluar
00:03:08untuk melakukan hal-hal seperti menyuntikkan kredensial.
00:03:10Tapi salah satu alasan besar menggunakan dynamic workers
00:03:13adalah untuk menjalankan kode yang dihasilkan oleh agen AI.
00:03:17Jadi mari kita coba lakukan itu.
00:03:18Ini adalah beberapa kode dari E2B cookbook
00:03:21yang menggunakan SDK Anthropic untuk menjalankan Sonnet 3.5
00:03:25dengan prompt sistem ini dan alat khusus
00:03:28untuk mengeksekusi beberapa Python di Jupyter notebook.
00:03:31Jadi cara kerjanya adalah ia akan mendeteksi
00:03:33kapan alat khusus tersebut digunakan
00:03:34dan kemudian menjalankannya di dalam sandbox E2B,
00:03:38yang kodenya bisa kita lihat di sini.
00:03:40Sekarang ia menjalankannya dengan prompt yang sangat spesifik ini
00:03:42untuk menghitung nilai pi menggunakan metode Monte Carlo
00:03:46pada seribu iterasi.
00:03:47Dan karena ia memiliki akses ke sistem berkas,
00:03:50ia dapat membuat gambar PNG ini
00:03:52dan menyimpannya untuk diunduh oleh pengguna
00:03:54atau apa pun yang diinginkan pengguna.
00:03:56Sayangnya, dynamic workers tidak memiliki akses
00:03:58ke sistem berkas,
00:04:00meskipun mereka dapat membuat yang virtual
00:04:02dengan pustaka shell ini.
00:04:04Tapi karena mereka berjalan melalui worker,
00:04:06kita dapat memberikan detail kepadanya seperti bucket R2,
00:04:08yang merupakan versi S3 milik Cloudflare
00:04:11di mana gambar tersebut dapat disimpan.
00:04:12Jadi jika kita melihat kodenya,
00:04:14yang mirip dengan yang dari E2B,
00:04:16pertama-tama kita bisa melihat prompt sistem yang sedang digunakan.
00:04:19Dan alat eksekusi Python khusus
00:04:22yang dalam hal ini tidak menggunakan Jupyter notebook,
00:04:25tetapi menghasilkan SVG dari visualnya.
00:04:28Dan di sini kita punya kode untuk worker
00:04:30yang selain menjalankan JavaScript juga bisa menjalankan Python.
00:04:33Jadi kita bisa lihat di sini ia menggunakan Sonnet 4.6.
00:04:35Ini adalah prompt yang digunakan.
00:04:37Di sini kode agen dieksekusi di sandbox.
00:04:41Dan respons dari sandbox
00:04:43kembali ke worker utama,
00:04:45yang mencarinya untuk kode SVG
00:04:47dan kemudian menyimpannya di R2.
00:04:49Jadi jika kita mengunjungi URL itu, butuh waktu agak lama,
00:04:51tetapi ia benar-benar menghasilkan halaman
00:04:53dengan informasi yang relevan dari Claude.
00:04:55Dan jika kita gulir ke bawah,
00:04:56kita bisa melihat SVG ini yang sedang dimuat dari R2.
00:05:01Memang terlihat sangat berbeda dari yang milik E2B,
00:05:03tapi saya percaya bahwa Claude Sonnet
00:05:04telah menghasilkan informasi yang benar.
00:05:06Dan tentu saja saya tadi menyebutkan bahwa sangat mungkin
00:05:09untuk membuat sebanyak mungkin dynamic workers secara programatik,
00:05:13yang bisa Anda lakukan dengan kode seperti ini.
00:05:16Itu adalah loop for yang membuat worker-worker baru
00:05:19berdasarkan nilai dari API.
00:05:21Dan ia juga memeriksa apakah worker sudah ada
00:05:23dan menggunakannya kembali jika ada.
00:05:25Kode yang dijalankannya pada dasarnya adalah console log
00:05:27dan respons dari worker
00:05:29dengan ID spesifik dari worker tersebut
00:05:31berdasarkan indeks dari loop for.
00:05:32Jadi dengan kode yang berjalan,
00:05:34saya bisa membuat 50 dynamic workers yang baru
00:05:36dan kita bisa melihat semuanya dibuat secara instan.
00:05:40Itu sangat cepat.
00:05:41Sekarang mari kita coba dengan 10.000,
00:05:43tapi saya tidak akan melakukannya secara lokal
00:05:44karena saya tidak ingin komputer saya meledak.
00:05:46Jadi saya telah menerapkan worker induk saya ke Cloudflare
00:05:49sehingga saya bisa menggunakan infrastruktur mereka.
00:05:50Jadi di sini saya akan membuat 10.000 worker yang berbeda.
00:05:53Dan jika saya tekan enter, semuanya dibuat dengan sangat cepat.
00:05:56Kita bisa melihat ada halaman berisi 30 dari mereka di sini
00:05:59sehingga saya bisa terus melihat semua ID worker yang berbeda.
00:06:03Dan sebenarnya semakin jauh saya pergi, semakin banyak halaman yang ditampilkan.
00:06:05Dan saya bisa berkomunikasi dengan worker tertentu
00:06:07seperti worker 1156,
00:06:09yang merespons dengan "hello from worker 1156".
00:06:12Jadi itulah ringkasan singkat tentang dynamic workers
00:06:15yang sudah digunakan oleh Cloudflare untuk mode kode
00:06:18dan Zite untuk menjalankan aplikasi buatan LLM.
00:06:21Tetapi saya harus menyebutkan bahwa meskipun sekarang gratis,
00:06:24itu tidak akan gratis selamanya.
00:06:25Jadi meskipun Anda bisa menjalankan satu juta dynamic workers
00:06:28per detik, Anda mungkin ingin menahan diri
00:06:30kecuali Anda memiliki anggaran yang besar.
00:06:32Dan selagi kita membahas tentang Cloudflare,
00:06:34jika Anda ingin mempelajari lebih lanjut tentang SDK VIVE sumber terbuka mereka
00:06:38yang memungkinkan Anda membangun generator aplikasi seperti vZero dan Lovable,
00:06:42maka tontonlah video berikutnya.

Key Takeaway

Cloudflare Dynamic Workers menyediakan infrastruktur sandbox berbasis isolat V8 yang sangat cepat dan skalabel untuk menjalankan kode dinamis, terutama sangat berguna bagi aplikasi berbasis agen AI.

Highlights

Cloudflare meluncurkan Dynamic Workers yang 100x lebih cepat dan lebih hemat memori dibandingkan kontainer tradisional.

Dynamic Workers berjalan pada isolat V8, memungkinkan eksekusi kode secara programatik dalam skala besar hingga 1 juta per detik.

Perbandingan antara Sandbox Cloudflare (kontainer Linux) yang lebih berat dengan Dynamic Workers yang jauh lebih ringan.

Kemampuan menjalankan kode buatan AI secara aman dan efisien dalam lingkungan sandbox yang terisolasi.

Integrasi praktis dengan berbagai alat seperti Wrangler, binding loader, dan penyimpanan R2 untuk aset statis.

Contoh penggunaan nyata dalam menjalankan Python melalui agen AI untuk pembuatan grafik SVG secara dinamis.

Peringatan mengenai struktur biaya di masa depan meskipun saat ini masih dalam tahap gratis atau eksperimental.

Timeline

Pengenalan Cloudflare Dynamic Workers

Bagian ini memperkenalkan Dynamic Workers sebagai primitif tingkat rendah yang dapat dibuat secara programatik oleh worker yang sudah ada. Keunggulan utamanya adalah kecepatan yang 100 kali lipat lebih tinggi dibandingkan kontainer tradisional karena penggunaan teknologi isolat V8. Speaker menjelaskan bahwa teknologi ini sangat ideal untuk menjalankan kode buatan AI, otomatisasi khusus, dan pratinjau pengembangan dengan biaya yang sangat murah. Klaim menarik yang disebutkan adalah kemampuan untuk menjalankan hingga satu juta worker per detik jika diperlukan. Pertanyaan muncul mengenai batasan penggunaan JavaScript dan apakah hal tersebut menjadi hambatan bagi pengembang.

Perbandingan Sandbox Linux vs Dynamic Workers

Speaker meninjau kembali video tahun lalu tentang sandbox Cloudflare yang menggunakan kontainer Linux berumur pendek pada durable objects. Kontainer tersebut sangat baik untuk menjalankan OS lengkap dengan sistem berkas dan berbagai bahasa pemrograman atau biner apa pun. Namun, Dynamic Workers diposisikan sebagai alternatif yang jauh lebih cepat dan ringan bagi mereka yang tidak memerlukan lingkungan OS penuh. Bagian ini menekankan bahwa Dynamic Workers memungkinkan eksekusi sandbox bersamaan tanpa batas di dalam lingkungan yang memiliki batasan serupa dengan worker standar. Ini adalah solusi bagi pengembang yang memprioritaskan latensi rendah dan efisiensi sumber daya di atas fleksibilitas sistem berkas tradisional.

Konfigurasi Teknis dan Implementasi Kode

Tutorial teknis dimulai dengan menunjukkan cara menyiapkan worker dasar menggunakan Wrangler dan menambahkan binding loader dalam file konfigurasi. Binding ini sangat krusial karena memungkinkan satu worker untuk membuat dan mengendalikan worker lainnya secara dinamis. Speaker mendemonstrasikan bagaimana mendefinisikan tanggal kompatibilitas dan menulis kode yang akan dijalankan di dalam sandbox, yang strukturnya mirip dengan fungsi fetch pada worker biasa. Contoh kode menunjukkan cara merespons pesan "hello world" dan bagaimana mencegah akses jaringan untuk keamanan tambahan. Selain itu, dijelaskan perbedaan antara memuat worker baru setiap saat dibandingkan dengan menggunakan kembali worker yang sudah ada untuk mempertahankan status atau informasi.

Fitur Canggih dan Integrasi Ekosistem

Di bagian ini, dibahas fitur-fitur yang lebih kompleks seperti penentuan binding khusus dan penggunaan metode stub untuk komunikasi antar worker menggunakan protokol Cap'n Proto. Pengembang juga dapat menggunakan dependensi dari NPM seperti framework Hono dengan membundelnya melalui fungsi create worker. Salah satu fitur yang sangat berguna adalah kemampuan untuk mencegat permintaan keluar guna menyuntikkan kredensial secara aman sebelum data dikirim. Speaker menekankan bahwa fleksibilitas ini membuka peluang besar bagi pengembang untuk membangun aplikasi yang sangat modular. Semua fitur ini dirancang untuk memberikan kontrol penuh kepada pengembang atas siklus hidup dan kemampuan setiap dynamic worker yang dibuat.

Studi Kasus: Agen AI dan Eksekusi Python

Bagian ini menunjukkan implementasi nyata menggunakan SDK Anthropic dan model Claude Sonnet untuk menjalankan kode yang dihasilkan oleh agen AI. Meskipun Dynamic Workers tidak memiliki akses sistem berkas asli, mereka dapat menggunakan pustaka shell virtual atau menghubungkannya dengan bucket Cloudflare R2 untuk menyimpan output. Speaker menunjukkan proses pembuatan grafik SVG melalui kode Python yang dieksekusi di dalam sandbox, lalu menyimpannya ke R2 untuk ditampilkan kepada pengguna. Eksperimen ini membuktikan bahwa Dynamic Workers mampu menangani logika kompleks dari AI secara instan dan aman. Hasil akhirnya adalah halaman web yang memuat informasi relevan dan visualisasi data yang dihasilkan langsung oleh model bahasa besar.

Pengujian Skalabilitas Massal dan Kesimpulan

Untuk membuktikan performanya, speaker melakukan pengujian dengan membuat 50 hingga 10.000 dynamic workers secara instan di infrastruktur Cloudflare. Hasilnya menunjukkan bahwa ribuan worker dapat dibuat dan diakses hampir seketika, dengan masing-masing memiliki ID unik dan mampu merespons permintaan secara independen. Meskipun saat ini teknologinya sangat mengesankan dan tersedia secara gratis, speaker memperingatkan bahwa biaya akan diberlakukan di masa mendatang sehingga pengguna perlu memantau anggaran mereka. Video diakhiri dengan penyebutan perusahaan seperti Zite yang sudah menggunakan teknologi ini dan ajakan untuk mempelajari SDK VIVE untuk membangun generator aplikasi. Ini memberikan gambaran masa depan di mana aplikasi dapat dibangun dan dijalankan secara dinamis dalam skala masif.

Community Posts

View all posts