Cloudflare menyingkirkan nginx dan membuat HTTP Proxy (Pingora) dengan Rust untuk digunakan
(blog.cloudflare.com)nginx memiliki keterbatasan
- Karena hanya menggunakan satu worker untuk setiap request, ada ketidakseimbangan dalam pemakaian core CPU
- Karena terdapat connection pool per worker, tingkat pemakaian ulang koneksi TCP dan TLS buruk -> TTFB menjadi tinggi
- Selain itu, mereka juga mengimplementasikan sendiri fitur-fitur yang dibutuhkan untuk mengoperasikan nginx, tetapi nginx yang dirancang dengan C tidak memory-safe sehingga bahkan engineer berpengalaman pun kerap melakukan kesalahan
Pingora
- Cloudflare juga menerima banyak request yang tidak sesuai spesifikasi RFC, tetapi library pihak ketiga (
hyper) diimplementasikan dengan kepatuhan RFC yang ketat, sehingga perlu usaha tambahan untuk memperluasnya dan akhirnya mereka membangunnya sendiri - Rust dipilih karena dapat menggantikan apa yang bisa dilakukan C dengan cara yang memory-safe tanpa penurunan performa
- Untuk memudahkan berbagi connection pool, mereka mengadopsi sistem scheduling berbasis work-stealing, dan tingkat pemakaian ulang meningkat. Dibanding sebelumnya, kini hanya membuat koneksi sekitar 1/3 per detik
- Dibanding sebelumnya, penggunaan CPU 70% lebih rendah dan memori 67% lebih sedikit
- Direncanakan akan dirilis sebagai open source di masa mendatang
5 komentar
CPU 70% dan memori 67% yang menganggur itu benar-benar mengejutkan..
Wah, saya juga sudah lama sangat terbantu dengan nginx, tapi kalau ini dirilis sebagai open source saya benar-benar ingin langsung mencobanya.
Meski belajar Rust, sepertinya tetap tidak ada tempat buat cari kerja.
Rust ya, saya suka.
Dalam pemrograman sistem, Rust tampaknya semakin menjadi yang paling menonjol..