The Compute Layer for the Modern, Distributed Cloud: Our Investments in Fly.io

By Nick Washburn and Alexandra Farmer

It all began with a simple question we asked ourselves:

If you were a full-stack developer and could take an existing application, package it in a Docker image, and distribute it as close to your end-users as possible using a wonderful developer experience without any refactoring, why wouldn’t you?

This question was prompted by an extremely popular thread we read in March 2020 on Hacker News upon the official launch of the Fly Global Application Platform.

As we digested the lengthy conversation in the thread, we kept centering on this golden question. It just seemed obvious to us that this was the way applications needed to be distributed. So we set off to stress test our assumptions and look for reasons that this shouldn’t just become… the standard.

To the Edge and Beyond!

Cloud architecture continues to push closer to the edge and end-users, as latency fundamentally impacts user experience. Users love “instant” applications. Think about the last time you used an application that lagged – it’s an annoying experience. Sadly due to pesky things like the speed of light, you can’t really deliver an application “instantly.” But for a full-stack application, 100 milliseconds (ms) is the magic threshold. Response times below 100ms feel instantaneous to end-users. 40ms all the better!

Historically, the Content Delivery Networks (CDNs) have done a good job leveraging locational caching for static content. Innovation within the front-end community around the JAMStack (JavaScript + APIs + Markup) has similarly greatly simplified front-end delivery (e.g., Netlify and Vercel). Hosting and rendering that static content in a point of presence (PoP) close to an end-user helps drive this “instant” feeling.

However, the back-end/full-stack engineering community had yet to really see a similar platform because the intelligent routing of application logic – including dynamic content and online transactions– to end-users at these thresholds is extremely complex for most developers. Not to mention terribly costly if done improperly.

But the market dynamics are there: users expect fast applications and happy users drive better business metrics. Whether it is the CDN market segment forecasted to grow from $14.4B in 2020 to $27.9B in 2025, at a CAGR of 14.1%, or the edge computing market segment forecasted to grow from $3.6B in 2020 to $15.7B in 2024, at a CAGR of 34.1%, or the serverless architecture market segment forecasted to grow from $7.6B in 2020 to $21.1B in 2025, at a CAGR of 22.7% - any way you slice it the market is pulling compute closer to the end-user.

You Can Do Magic!

So back to our original question. As we read more about Fly’s platform, it was clear the team created an amazing and intuitive developer experience, particularly when compared to the status quo.

Modern applications are commonly packaged into containers and capable of carrying all the code needed to operate. Sadly, they are often deployed into specific datacenters and never moved. This ends up in a vicious cycle of globally duplicating resources in every datacenter near(ish) end-users – which is the furthest thing from sustainable.

Think about a shipping container – they are built to a universal standard and intentionally meant to be transported to where needed. This was the Fly platform in a nutshell -> moving compute around the world to where the demand is without additional headaches.

The Fly architecture is highly abstracted and on a unified architecture leveraging bare-metal servers in established regions. From flyctl (a CLI tool installed into local machine), a developer simply needs to add 4 lines of code. There is no refactoring of any application logic. So long as the code can be put in Docker image, it can leverage Fly.

When the developer ships the app to Fly, it is deployed on a very lightweight Firecracker microVM to a number of locations (typically starting with the developer’s location), each connected via WireGuard (a networking security mesh), and is given a singular global IP address via BGP Anycast. By default, Fly listens for HTTP and HTTPS connections, but can be configured for any type of TCP traffic.

Then when traffic comes in, the Fly platform can identify the location via IP address and dynamically assigns compute resources in datacenters closest to that traffic.

So stepping way back, a back-end/full-stack developer can take an existing application, add 4 lines of code, and from the CLI globally distribute the application to scale closer to end-users. It just seemed… magical.

Fly Me To the Moon

As we continued to monitor Fly’s progress from afar throughout 2020 and early 2021, we quickly realized we were not the only folks that were very jazzed about what the Fly team was doing. Whatever internet rabbit hole we went down, we would find early users of Fly that loved the platform. (Sidebar:  this love continues to this day.) Fortunately, one of our good friends Daniel Doctor at Dell Technologies Capital had participated in the Fly seed round and graciously introduced us to Kurt Mackey, Co-Founder and CEO.

We immediately hit it off with Kurt with a shared vision. The individual developer was key, as the developer experience on the Fly platform was critical. Kurt was extremely smart about listening to the needs of various full-stack communities and helping them solve business challenges. For instance, take Fly’s love for Elixir -> which led to Chris McCord joining Fly and the launch of the Phoenix Files.

In addition, the remainder of the Fly founding team was incredible. Together, Kurt, Jerome, Michael and Thomas not only built an incredibly sophisticated platform that users loved, they had also established a world-class company culture driven by compassion and deep empathy for the end-developer.

Couple that with the explosive growth we were witnessing in the platform since launch, we had to partner with Fly. As a result, we subsequently led the Series A round in August 2021 and got to work.

Since that time, the continued growth and innovation within the Fly platform has been incredible to watch. Whether it was the launch of Free Postgres, Fly’s acquisition of the Litestream project, or the availability of Fly Machines for building your own FaaS service, the hits keep on coming! It is amazing how a community behind a wonderful product can help drive innovation.

Beyond that, we continue to have a deeply held belief that the modern, distributed cloud is quickly emerging. It is table-stakes that it will have a wonderful developer experience at each layer (something the large CSPs and CDNs sorely lack). And center to this new cloud stack is intelligent, distributed compute -> where we believe Fly will become the standard.

Congratulations to the Fly team on today’s joint announcement of our original $12M lead Series A round, as well as the subsequent $25M Series B round led by a16z! Back to building!