Chaos Engineering • Cloud Native Systems • Containers • DevOps • DevSecOps • Distributed Data • Emerging Tech • Kubernetes • Microservices • MLOps • Monitoring and Observability • Production Engineering • Resilient Systems • Secure Systems • Serverless • Site Reliability Engineering
Cloudflare’s Zack Bloom will be speaking about Isolate Computing at the inaugural Texas Scalability Summit this year. Check it out!
Isolate Computing Zack Bloom - Cloudflare
For forty years computation has been built around the idea of a process as the fundamental abstraction of a piece of code to be executed. In that time, how we write code has changed dramatically, culminating with serverless, but the nature of a process has not.
Processes unfortunately incur a context-switching overhead as the operating system moves the Processor from executing one serverless container to another, wasting CPU cycles. Processes also can only do IO and other critical tasks by firing interrupts into the kernel which waste as much as 33% of the execution time of an IO bound function. Processes also incur startup time as heavyweight virtual machines like NodeJS are initialized, which we experience in the serverless world as a cold start. The fear of cold starts require us to do complex work to warm serverless functions, and require even infrequently used functions to consume precious memory to avoid them.
There may be an alternative. Web browsers have solved the same problem, the need to run many instances of untrusted code with minimal overhead and start new code execution lightning-fast, in an entirely different way. They run a single virtual machine, and encapsulate each piece of code not in a process, but in an ‘isolate’. These isolates can be started in 5 milliseconds, 100 times faster than a Node Lambda serverless function. They also consume 1⁄10 the memory.
Beyond serverless, being able to initiate execution of server-side code in less time than it takes for a web request to connect opens dramatic possibilities. Services can be scaled to millions of requests per second instantaneously. They can be deployed to hundreds of locations around the world with the same economics as deploying to just one. Even better, by eliminating process-related overhead, it brings us close to the economics of running on bare metal, but with the ergonomics of serverless programming.
Leaving this presentation attendees will have an understanding of where Isolate-based serverless might be more appropriate than other forms of compute. In those situations, they will be able to deploy code which can be affordably ran close to every Internet visitor, which can autoscale instantaneously, and which can be as much as three times less expensive than container based serverless systems per CPU-cycle.