If Pantheon used traditional architectures (e.g. shared hosting, VMs, or clusters) we'd never achieve our goals. "Hosting" is too slow, clunky and manual, even in the era of virtual machines. We needed something that could be fully automated via software, and could deliver breakthrough performance, scalability, and efficiency.
Ok, that’s still a lot of buzzwords. How does the Pantheon Platform work in practice?
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, which we call "endpoints". 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 configuring.
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 routes the request to a container running the proper customer application.
Each endpoint in the Runtime Matrix runs many containers, and the grid is made up of many endpoints. 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.
Any endpoint could be powering any site at any time, based on the containers it's running, all of which is controlled automatically by Pantheon's software.
Inside a 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, and passes dynamic requests to PHP.
Runtime containers are "share nothing", but backing services (database, filesystem, etc.) are available via the Content Base. 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.
Charles Babcock editor-at-large at Information Week writes a detailed commentary about containers.
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.
Our Content Base is structured similarly to the Runtime Matrix. It’s N+1 redundant, scalable, completely automated, and leverages our containers technology to provide breakthrough value. In addition to the required services of Database, File System, and Version Control, it also provides pathways for optional enhancements, like Redis key/value cache, Apache Solr search, and more.
The Database Service uses MariaDB and a container architecture similar to the Runtime Matrix to provision DBs and perform workflow operations. Instead of scaling via load-balancing, the DB layer can provide redundancy and horizontal scalability by supporting a self-healing replication topology, which is managed automatically.
The Pantheon File System
Our PFS (Pantheon File System) is 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.
Our core data-system is a highly redundant "big data" database, which tracks everything that happens on the platform. Every site, every environment, every user. This allows us to orchestrate all the activity across the platform from a single, centralized developer Dashboard.
The Dashboard is a real-time interface into Pantheon. It includes everything you need to build, launch and run sites. You can create new projects, manage team access, interface via SFTP or Git (version control), and track miscellaneous tools like backups. It also allows you to deploy and scale your sites.
You're not stuck with a web UI, either. Terminus, a command-line interface to the platform, lets you script and automate everything from imports to testing to go-live. The CLI allows you to leverage existing DevOps resources to move even faster with the Pantheon platform.