Sōzu, a hot reconfigurable reverse HTTP proxy
summary
Sōzu is a reverse HTTP proxy that aims for zero-downtime binary upgrades and configuration changes, handling thousands of apps across volatile VMs. It parses HTTP as a stream with a streaming HTTP parser with nom, uses single-threaded workers using mio inside a multi-process master/worker design to sandbox crashes, shares config over JSON channels, preallocates fixed buffers to bound memory and rejects excess connections, uses OpenSSL today, supports splice to avoid userland copies, and demonstrates working live upgrades with graceful draining.
AI-written summary · about
chapters (36)
- 0:00Thank you
- 1:01Steam
- 1:30What is Szu
- 1:54Cheap proxy
- 2:28New application
- 2:47Changing configuration
- 4:45Github repository
- 5:27HTTP parser
- 5:51Community
- 6:07Na passes
- 6:40Na terminates
- 7:09List of rules
- 7:22Split the passer
- 9:07Its a big goal
- 9:18Recovery from failure
- 9:42Multiprocess architecture
- 10:46Trust rust
- 11:15How to avoid this
- 12:38List of workers
- 13:15Channel abstraction
- 14:36File descriptors
- 15:17Blocking mode
- 15:40Master process
- 16:17Add new frontend server
- 17:02Why do we have processing
- 17:38Why do we use mule
- 18:03Mule
- 18:19Pole
- 18:55Edge triggered
- 19:59E readiness and interest
- 21:10Proxy complexity
- 21:32Tokyo
- 22:05Tools
- 23:36TLS termination
- 25:28Questions or slides
- 30:03whats left
related talks
19mSuki: Choreographed Distributed Dataflow in Rust
37mBreaking the 125µs @ 1Mhz barrier w/ Tokio and what it means for your Tokio Web Server
32mTechniques for writing concurrent applications with asynchronous I/O
22mAntimony: a real time distributed stream processing system
17mZero-Copy Chaos. When everything you knew about tokio...
39mLightning Talks
18mA better way of doing Async Rust
50mHigh Performance Network Programming in Rust
