Our Architecture

Smooth scaling in containers. Fully automated by software.

If you care about performance, scalability, and efficiency, then you should know the risks of running your website on traditional hosting, or even cloud infrastructure like EC2. Architectures like shared hosting, VMs, and clusters offer little protection against downtime. That’s because they still require manual infrastructure and server configuration.

Unlike hosting, Pantheon delivers true smooth scaling through automation in software. Our massive, multi-tenant platform uniquely leverages containers on top of a dedicated infrastructure. Here’s how it works.

The Edge—Caching and Load Balancing

The Edge is the exterior of Pantheon—the part that directly touches the public internet. The Edge has a built-in, ultra-fast cache that's automatically enabled for every site. It improves page load times for our customers and helps sites to cruise through viral traffic spikes without breaking a sweat.

The Edge also knows how to intelligently route and load-balance requests across the entire Runtime Matrix. When an end-user's browser wants a page that isn’t cached, or that can't be cached, the Edge dynamically routes the request to a container running the proper customer application.

Runtime Matrix—The Engine of Pantheon

Our Runtime Matrix is where the action happens: it executes the code for your website. Hundreds of thousands of Linux containers run across a big grid of powerful dedicated machines.

Containers are an order of magnitude faster, lighter, and more reliable than virtual machines. They're provisioned and managed by our software, in just seconds, without any need for manual configuration.

Each machine in the Runtime Matrix runs many containers. Routing to the right one is important—our platform management tools let us shift containers very quickly, so we can route around failures and scale sites smoothly.

Inside an Application Container

The essence of a runtime container is a highly tuned PHP-FPM worker and its connections to the outside world. Incoming requests come via an nginx web server which handles requests for static assets—images, css, js—and passes dynamic requests to PHP.

Runtime containers are "share nothing" and easily scale horizontally. A control interface for developers to access a particular container directly exists via a special encrypted SSH interface, giving access to CLI tools like rsync and SFTP. It’s everything you need to power a site.

Content—Database and Files

The application runtime is only half the equation. Websites depend on stateful data, namely their content. How do you effectively manage and scale database and file services? This is the Achilles heel of traditional hosting architecture, and something often glossed over in many 12-factor architectures.

We've broken through multiple technical barriers to achieve uniformity and scale for backing services across the entire platform.

The Database Service uses MariaDB and a container architecture just like the Runtime Matrix to provision DBs and perform workflow operations. Instead of scaling via load-balancing, the DB layer provides redundancy and horizontal scalability by supporting a robust replication topology, which is managed automatically.

The other piece that's critical to our architecture is our PFS (Pantheon File System, aka "Valhalla"), a breakthrough in network-attached storage. It is backed by a self-healing elastic cluster architecture, and its advanced FUSE client rivals local on-disk filesystems for performance, thanks to a thoroughly modern leveldb caching layer.

The PFS is resilient to network disruptions, and because it's designed to handle content, it performs workflow operations at unbelievable speed by synchronizing metadata instead of hauling around actual binary content data.

We use this same architectural pattern to provide the connections to other "backing services" like ApacheSolr search, Redis cache, and Git version control. These are all provided in smaller containerized grids, and dynamically connected to application runtime environments via automated configuration management.