Deploying Drupal Like a Pro
Deploying Drupal Like a Pro
Building a Drupal site is difficult, developing a Drupal Based application is more difficult but correctly managing, deploying and keeping alive an application who's customer is paying you a 4, 5 or even 6 figure number per month is even more difficult. And if you want to do that one last thing in a cost effective way you must do it yourself.
What? That is wrong! Everyone will tell you to focus on your bussiness. If that is developing applications then it is not maintaining the supporting stack. That is true... until whoever is supporting the stack for you ends up eating your business. I know a business case where a Drupal application was moved away from Acquia, and the customer halved hosting costs saving $5,000/month while increasing the available hardware resources. Yes, their new hosting does not provide all the bells and whistles that come from an all inclusive hosting, but... with $5,000/month and depending on which country you do your business in you can easily get 2 full time senior developers.
And you can still get the most of the business critical parts of the add-ons such as test automation, workflow maganement, stagging and production environments all by your own and by saving thousands of dollars.
And the way to go regarding deployment and automation is not clear after all. A few years ago full cloud was the rage. Now Rackspace has started offering On Metal Servers. These are like private colocated servers but with the flexibility of the cloud (spun up and down in minutes). Of course, with the price to performance ratio of colocated. In the end, it is not so clear in what scenarios it is good to delegate all your deployment to a third party, and when not.
In the Deploying Drupal Like a Pro series of posts we will introduce you to what are (some) best practices for deploying a Drupal application to help you handle in a cost effective way your application supporting stack (managing your own infrastructure, of course).
Remember that every business case and application is unique, and that these series of articles are just "basic" guidelines.
When we talk about deployment we will be dealing with:
- File structure
- Application files and content files
- Sample setup
- Deploying with the PHP deployment tool
- WebServer site, FastCGI and PHP configuration
- Sharing a PHP binary set between your applications
- Completely isolating the PHP runtime between applications (while sharing the binaries)
- The PHP Virtual Runtime: know and control what logs, data and temporary files belong to what application.
- PHP settings for optimum performance
- Tunning Web Server Performance
- Output Caching
- Cron Jobs
- How to properly set them up
- Development and Production Environments
- From you development box to production: an easy, simple but error proof flow.
- Patch based testing.
- Using the HOSTS directive of your PHP.ini to realtime debug your production environment with no permformance impact.
- Server Setup
- The Basics
- Scaling horizontally is not easy. When should I do it?
- Caching Backends
- Memory based caching
- Memcache / Couchbase
- Why you should be using it
- How to install it
- Basic usage
- The PHP Deployment tool
This table of contents is not definitive, we'll be updating it as the articles are writen! The first article Deploying Drupal Like a Pro - Part 1: File Structure is already available.