IronFunctions is a serverless application platform. Unlike AWS Lambda it’s open-source, can run on any cloud — public, on-premise, or hybrid, and language agnostic, while maintaining AWS Lambda compatibility.
The initial release of IronFunctions received some amazing feedback and the past few weeks were spent addressing outstanding issues. In this post I will be highlighting the biggest feature with the upcoming release, Hot Functions.
Hot Functions improves IronFunctions throughput by 8x (depending on duration of task). By re-using containers or what we call Hot Functions each call is reduced by 300ms.
Before Hot Functions, IronFunctions would spin up a new container to handle every job. This led to a 300ms overhead per job due to container startup time.
With Hot Functions, long-lived containers are able to serve the same type of task without incurring the startup time penalty. They do this by taking incoming workloads and feeding in through standard input and writing to standard output. In addition, permanent network connections are reused. For more information on implementing Hot Functions, see the Github docs.
We ran our benchmark on a 1 GB Digital Ocean instance and used honeycomb.io to plot the results.
Simple function printing “Hello World” called for 10s (MAX CONCURRENCY = 1).
Hot Functions have 162x higher throughput.
Complex function pulling image and md5 checksumming called for 10s (MAX CONCURRENCY = 1).
Hot Functions have 139x higher throughput.
By combining Hot Functions with concurrency we saw even better results:
Complex function pulling image and md5 checksumming called for 10s (MAX CONCURRENCY = 7).
Hot Functions have 7.84x higher throughput.
There’s more to this release as well. IronFunctions brings Single Flight pattern for DB calls as well as stability and optimization fixes across the board.
Also stay tuned for upcoming announcements by following this blog and our developer blog.
Hacker News conversation here.