One of the most powerful measures of progress in computing has been the reduction of incidental complexity (a.k.a. yak shaving): all the stuff you have to do before you can do the one thing you really want to do. Serverless technology is the latest result of that progress. But while it’s taken away much of the operational overhead once placed on developers’ plates, it still leaves something to be desired in the way of benefitting the end user. A new generation of serverless is making that a thing of the past.
But first, a history lesson
To build a website 20 years ago, you had weeks of work to complete before you could write your first line of code. You had to order the parts and physically build a computer. You had to connect it to the internet. You had to install and maintain the operating system. You had to configure and run a web server. Then, finally, after all that, you could start on your original task of building a website. And if the site became popular? You had to be prepared to do it all again (and again and again) to handle the load.
We've spent the last two decades removing layer after layer of this complexity. Data center providers took care of the internet connection. Managed hosting companies provided computers that you didn't have to build yourself. Central cloud providers, like Amazon, Google, and Microsoft, offered virtual machines that reduced provisioning time from hours to minutes. Platform-as-a-Service took care of everything but the web application itself and added rudimentary autoscaling in response to load. Today, central-cloud-based serverless platforms abstract away even more complexity, removing the need for developers to directly manage application data and allowing them to write stateless functions that only run in response to requests.
The last 20 years have been undeniably great for software developers. But what about end users? They benefited from increased reliability as servers moved out from under desks and into data centers. But the improvements made possible by the innovations mentioned above did not extend to the user experience. This is most apparent when it comes to regional latency. Users that happen to live in a handful of locations close to central cloud infrastructure enjoy a fast, consistent experience. But the speed of light is still the same, and users everywhere else in the world are still at the mercy of long-distance connections that may be slow, flaky, or both.
The next generation of serverless aims to benefit both developers and users
In contrast to previous technologies, a new wave of serverless is poised to benefit users as well as developers. The flexible, decentralized nature of serverless apps makes them able to be deployed someplace previously impossible: the edge.
Edge serverless enables the logic of serverless apps to be distributed around the world, giving all users the same performant experience no matter how close they are to the central cloud. Our serverless solution — Compute@Edge — runs this logic from 72 locations simultaneously, as close to end users as possible, providing someone in São Paulo or Stockholm with the same great experience as someone in San Francisco.
Edge serverless architectures combine the power of central cloud compute with the responsiveness of local apps. This app — built on Compute@Edge by Fastly Solutions Architect Leon Brocard — uses Markdown as input, converts it into HTML, and returns the rendered results. Because it runs on our edge cloud, it's performant enough that a round-trip request can be made for every single keystroke. That's a level of interactivity that's never been — and can never be — possible in the central cloud.
Edge serverless: the future of the web
At Fastly, we believe that developers and end users should benefit from advances in computing. We're building Compute@Edge to enable the kind of edge-first serverless architectures that bring new levels of responsiveness and personalization to all users — no matter where they are in the world. And we invite you to build there alongside us — to be notified when access is broadened, join the Compute@Edge community of developers.