Camps: Better development environments
Time: Aug 29, 6:00 p.m.
Location: SI 258
Everyone knows they should develop code in a development environment, not directly in production, but this doesn't always happen. Those with a development environment have trouble keeping it up to date, not to mention coordinating multiple simultaneous projects and developers. Even the traditional ideal of fully automated development/staging/production environments doesn't scale as more developers need to join the fun. Over the past 5 years we've grown a solution to this problem, called "camps". Having made most every mistake in the name of expediency, lack of time, resource efficiency, etc., we've settled on a system (software and conventions) that seems like overkill for smaller projects but quickly becomes indispensible. Some things people like about camps for web development: * Any number of camps, each created or destroyed with a single command. * Works with popular version control systems (Git, Subversion, SVK, CVS, and soon Mercurial and Bazaar). * 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 presentation will describe the key components, weigh tradeoffs, and show real-world examples of camps. The camp system is being released as a free software project, but even if it's not directly used, people will likely find ideas to borrow for their own work.






























