Pantheon's infrastructure includes a number of layers. Our edge layer provides robust caching to help your site perform quickly under a traffic spike, but when it comes to generating unique pages and serving logged-in users, the real "horsepower" is in the DROPs
(D)rupal (R)untime (O)ptimized (P)rocesse(s)
Pantheon's infrastructure is based on a "grid" model. We serve our customers by provisioning isolated worker-processes with an optimized PHP stack in place. Each DROP includes its own Nginx, APC cache, and PHP worker agent. They are deployed with a checkout of your codebase and service-bindings to use a database, shared filesystem, and potentially Redis cache or ApacheSolr search. Everything you need to run your site.
Every environment for your site (dev, test, live, etc) runs on its own DROP. In the case of a live site, at the Pro level and above you can have many DROPs serving your site.
What's in a DROP?
Common questions about our infrastructure:
Each PHP process can use up to 512Mb of memory.
All DROPs are created equal. Free accounts are not underpowered.
All environments run PHP 5.3.
Other than error reporting settings — which are turned up on dev — the runtime configuration is the same across environments.
We do not support custom PEAR or PECL modules at this time, but can work with you to make common-sense libraries available globally.
Your DROPs can access a whitelisted set of binary tools (e.g. wkhtmltopdf). Contact us if you have specific needs.
Performance and Scalability
It is important to understand the distinction between performance and scalability when planning your project on Pantheon.
Performance: the speed at which an individual request is handled.
Scalability: the ability to handle many concurrent requests.
While these are related topics — e.g. performance often suffers under high concurrency as shared resource become overwhelmed — they need to be evaluated separately for your project. You should be sure you understand what your goal is with your optimizations.
Typically the best practice is to optimize for performance first, and then begin to look at handling scale. In most cases, if you are able to deliver an individual request quickly, handling more requests is primarily a matter of adding more DROPs up to the point where other bottlenecks (typically SQL queries) emerge. At that point, the next step really depends on your application.
Because Pantheon does not handicap or limit the dev/free DROP instances, you should be able to get a good sense of your sites live performance as you develop. Support is happy to answer questions about site performance if you feel it's not up to where it should be. We also provide tools (e.g. New Relic) to give you insight into where time is being spent in your application.