by ekzhang on 12/2/24, 8:04 PM with 66 comments
by ekzhang on 12/2/24, 9:06 PM
As a serverless platform we hit a bit of a tricky tradeoff: we run multi-tenant user workloads on machines around the world, and each serverless function is an autoscaling container pool. How do you let users give their functions static IPs, but also decouple them from compute resource flexibility?
We needed a high-availability VPN proxy for containers and didn't find one, so we built our own on top of WireGuard and open-sourced it at https://github.com/modal-labs/vprox
Let us know if you have thoughts! I'm relatively new to low-level container networking, and we (me + my coworkers Luis and Jeffrey + others) have enjoyed working on this.
by jimmyl02 on 12/2/24, 9:41 PM
an unfinished project I worked on (https://github.com/redpwn/rvpn) was a bit more ambitious with a global control plane and I quickly learned supporting multiple clients especially anything networking related is a tarpit. the focus on linux / aws specifically here and the results achievable from it are nice to see.
networking is challenging and this was a nice deep dive into some networking internals, thanks for sharing the details :)
by qianli_cs on 12/3/24, 12:02 AM
by heinternets on 12/3/24, 12:09 AM
by cactacea on 12/2/24, 9:53 PM
by stuckkeys on 12/3/24, 1:44 AM
by ATechGuy on 12/2/24, 10:05 PM
Looks like Modal hosts workloads in Containers, not VMs. How do you enforce secure isolation with this design? A single kernel vulnerability could lead to remote execution on the host, impacting all workloads . Am I missing anything?
by klysm on 12/3/24, 1:26 AM
by handfuloflight on 12/3/24, 12:08 AM
by fusjdffddddddds on 12/2/24, 11:25 PM
Even longer for QUIC/H3.
by eqvinox on 12/2/24, 10:05 PM
by techn00 on 12/3/24, 8:30 AM
by nodesocket on 12/2/24, 11:53 PM