Jon Jensen (jon_jensen). YAPC::Europe 2011 Riga.
Developing web applications on a local computer has numerous problems: setup time, different platform or software versions, inability for other users to try out new code in development without pushing it somewhere else, and differences from production that are more significant than expected. Some people end up making changes in production despite the risks, or pushing out code without others having tested it.
Those with a server-based development environment have trouble keeping it up to date, or coordinating multiple simultaneous projects and developers. Even the traditional ideal of fully automated development/staging/production environments doesn't scale as more developers join in.
We've grown a free solution to this problem, called "DevCamps". Some things people like about camps for web development are:
* Any number of camps can be made, each created or destroyed with a single command.
* Works with existing version control and other tools.
* A separate completely independent web server, app server, and database for every development environment.
* The database can be automatically updated as needed, leading to real-world testing of queries with production data.
* Separate http and https just like production.
* Cookies are kept separate in each camp.
* Development normally happens on the exact operating system and software stack used in production.
* Development code gets backed up, and can be accessed by end-users, because it's not hidden away on developer workstations.
The camp system has been particularly useful to us to help modernize older but mission-critical Perl web applications by creating a safe place to do incremental development on them.
The presentation will describe the key components, weigh tradeoffs, and demonstrate the camp system in action.
The DevCamps website is at http://devcamps.org/.