Staging for Geniuses

Track: 
Coder
Experience: 
Intermediate

While there are many sessions geared towards deployment and migration to production this one will concentrate on how to setup a shared staging environment. With small projects and simple edits you can sometimes skip the staging step but with larger tasks and more stake holders a staging environment quickly becomes a necessity for the majority of projects.

The goal of this session is to demystify the LAMP stack a little and provide you with enough knowledge, how-tos and starting scripts for you to quickly roll out a staging server and setup your version controlled project sites with minimal effort.

Things we'll cover:
* How to deal with permissions in a shred environment--I'll mention jailed users but that's too deep for this session.
* Basic security steps for your new staging server. You don't want clients peaking behind each others curtain after all.
* Common configuration specifics for a staging server such as the php.ini file, the mysql config file, Apache vhosts and cron entries. (custom configs provided)
* Practical repository layouts and what should and should not (usually) be included in your repos.
* How to deploy a staging site using a configurable interactive bash script that will create your staging directory, check out the repo, create the database, setup the associated vhost files and finally add a crontab for your new staging site. (scripts provided)

Intended audience: 

This session requires some knowledge and a little admin experience in traditional LAMP environments. It's fit is for intermediate to advanced users who want to incorporate a staging environment in their development process.

Questions answered by this session
Question 1: 
How does a staging environment fit into the development process?
Question 2: 
What are the basic security steps I should go through to keep this a safe, sane but easy to use environment? (how to set umask for shared use, SSH, what to turn off, htaccess is your friend, etc.)
Question 3: 
What are some hardware and configuration issues I should consider and how do I go about setting up the basics? (config files provided)
Question 4: 
Are their any best practices for my project's version control layout and release objectives?
Question 5: 
Are their any scripts to automate and speed the staging site setup process? (configurable site rollout bash script for Linux/Mac environments providedl)
3.88
Your rating: None Average: 3.9 (25 votes)

Diamond Sponsors

 
VPS NET
Palantir.net

Platinum sponsors

 
Trellon
workhabit

Gold Sponsors

 
Drupal Connect
Chapter Three
Microsoft
NorthPoint
HotDrupal.com
Duo
Treehouse Agency