Start United States USA — software Why edge is eating the world

Why edge is eating the world

114
0
TEILEN

A programmer shares his perspective as to why he believes the edge, rather than software, is actually eating the world.
More than 10 years ago, Marc Andreesen published his famous “Why Software Is Eating The World” in the Wall Street Journal. He explains, from an investor’s perspective, why software companies are taking over whole industries.
As the founder of a company that enables GraphQL at the edge, I want to share my perspective as to why I believe the edge is actually eating the world. We’ll have a quick look at the past, review the present, and dare a sneak peek into the future based on observations and first principles reasoning.
Let’s get started.
Web applications have been using the client-server model for over four decades. A client sends a request to a server that runs a web server program and returns the contents for the web application. Both client and server are just computers connected to the internet.
In 1998, five MIT students observed this and had a simple idea: let’s distribute the files into many data centers around the planet, cooperating with telecom providers to leverage their network. The idea of a so-called content delivery network (CDN) was born.
CDNs started not only storing images but also video files and really any data you can imagine. These points of presence (PoPs) are the edge, by the way. They are servers that are distributed around the planet – sometimes hundreds or thousands of servers with the whole purpose being to store copies of frequently accessed data.
While the initial focus was to provide the right infrastructure and “just make it work,” those CDNs were hard to use for many years. A revolution in developer experience (DX) for CDNs started in 2014. Instead of uploading the files of your website manually and then having to connect that with a CDN, these two parts got packaged together. Services like surge.sh, Netlify, and Vercel (fka Now) came to life.
By now, it’s an absolute industry standard to distribute your static website assets via a CDN.
Okay, so we now moved static assets to the edge. But what about computing? And what about dynamic data stored in databases? Can we lower latencies for that as well, by putting it nearer to the user? If, so, how?
Let’s take a look at two aspects of the edge:
1. Compute
and
2. Data.
In both areas we see incredible innovation happening that will completely change how applications of tomorrow work.
What if an incoming HTTP request doesn’t have to go all the way to the data center that lives far, far away? What if it could be served directly next to the user? Welcome to edge compute.
The further we move away from one centralized data center to many decentralized data centers, the more we have to deal with a new set of tradeoffs.
Instead of being able to scale up one beefy machine with hundreds of GB of RAM for your application, at the edge, you don’t have this luxury. Imagine you want your application to run in 500 edge locations, all near to your users. Buying a beefy machine 500 times will simply not be economical. That’s just way too expensive. The option is for a smaller, more minimal setup.
An architecture pattern that lends itself nicely to these constraints is Serverless. Instead of hosting a machine yourself, you just write a function, which then gets executed by an intelligent system when needed. You don’t need to worry about the abstraction of an individual server anymore: you just write functions that run and basically scale infinitely.
As you can imagine, those functions ought to be small and fast. How could we achieve that? What is a good runtime for those fast and small functions?
Right now, there are two popular answers to this in the industry: Using JavaScript V8 isolates or using WebAssembly (WASM).
The JavaScript V8 isolates, popularized in Cloudflare Workers, allow you to run a full JavaScript engine at the edge. When Cloudflare introduced the workers in 2017, they were the first to provide this new simplified compute model for the edge.
Since then, various providers, including Stackpath, Fastly and our good ol’ Akamai, released their edge compute platforms as well — a new revolution started.
An alternative compute model to the V8 JavaScript engine that lends itself perfectly for the edge is WebAssembly. WebAssembly, which first appeared in 2017, is a rapidly growing technology with major companies like Mozilla, Amazon, Arm, Google, Microsoft and Intel heavily investing in it. It allows you to write code in any language and compile it into a portable binary, which can run anywhere, whether it be in a browser or various server environments.
WebAssembly is without doubt one of the most important developments for the web in the last 20 years. It already powers Chess engines and design tools in the browser, runs on the Blockchain and will probably replace Docker.

Continue reading...