Global Application Deployment

Fly’s global application platform runs your backend apps all over the world, auto scales based on actual load, and balances capacity to get your users the lowest latency possible.

Quickstarts

Standard Applications

You can build and run many applications with flyctl deploy or by connecting a GitHub repository.

Ruby → Go → Deno →

Docker images

You can run almost any app packaged as a Docker image. Images work best if they’re lean, under 256MB is ideal.

Deploy a Docker Image →

Architecture

We run physical servers in 17 different cities to operate your applications. We scale apps in each region based on user activity, for most of our customers this means semi-permanent VMs in one or more hotspot regions, and temporary VMs in bursty regions.

If traffic patterns change, we rebalance VMs automatically. Many applications have a “follow the sun” workload, with the bulk of their traffic hitting Asia Pacific early UTC time, Europe a few hours later, moving to the US east coast later on, then the US west coast, and so on. VMs move with them.

MicroVMs

We extract Docker images and launch them as KVM based virtual machines using Firecracker. These are very quick to boot, and better isolated that most container systems.

Compute resources

Each VM includes one dedicated physical CPU core, no two applications will share CPU time.

If you have different CPU/memory requirements let us know! Larger VMs are on the agenda.

Networking

Each Fly application has dedicated global IP addresses, one ipv6 address and one ipv4 address. We accept traffic (and terminate TLS) for these requests at all of our datacenters, and then connect visitors to the nearest available virtual machine.

The router individual HTTP requests to application VMs with additional proxy appropriate headers.

If you’re interested in handling other kinds of traffic, like gRPC, raw TCP connections, or even UDP, tell us about your app!

Pricing

Application hosting is free during the preview period. At general release, we expect to charge metered rates for compute resources.