From Azure Functions to FreeBSD

24 points by wezm


david_chisnall

Azure Functions are so bad. They wanted to be able to run arbitrary Python or npm packages and so each one is backed by a full container, with all of the associated deployment time and overheads. But they have a bunch of limitations and must be written for specific APIs that terminate HTTPS for you and give you a request-response model. You can’t do long poll or similar without leaving the function running (you can’t mark the socket with the infrastructure and just be handed it back when either there’s more data from the client or when you receive some other even that you want to handle).

The thing I want from a FaaS environment is something that isn’t POSIX, that is a lightweight environment designed entirely around the network as the only IPC primitive, with first-class integration with backplane services like message queues and storage, where a trivial function can fit in under 1MiB of RAM, where I can scale it down to nothing when not in use and scale it up to a million concurrent requests trivially.

Azure Functions is zero of these things.