Slashdot Mirror


How Do You Manage Dev/Test/Production Environments?

An anonymous reader writes "I am a n00b system administrator for a small web development company that builds and hosts OSS CMSes on a few LAMP servers (mostly Drupal). I've written a few scripts that check out dev/test/production environments from our repository, so web developers can access the site they're working on from a URL (ex: site1.developer.example.com). Developers also get FTP access and MySQL access (through phpMyAdmin). Additional scripts check in files to the repository and move files/DBs through the different environments. I'm finding as our company grows (we currently host 50+ sites) it is cumbersome to manage all sites by hacking away at the command prompt. I would like to find a solution with a relatively easy-to-use user interface that provisions dev/test/live environments. The Aegir project is a close fit, but is only for Drupal sites and still under heavy development. Another option is to completely rewrite the scripts (or hire someone to do it for me), but I would much rather use something OSS so I can give back to the community. How have fellow slashdotters managed this process, what systems/scripts have you used, and what advice do you have?"

4 of 244 comments (clear)

  1. How slashdot does it by sopssa · · Score: 5, Funny

    How have fellow slashdotters managed this process, what systems/scripts have you used, and what advice do you have?"

    I do the same as Slashdot.org does - Make the changes on live code, except a little downtime and weird effects and then try to fix

    it - while actually never fixing it. After all the results are not that significant:

    - if someone posts about it on a thread, mods will -1 offtopic it and no one will hear your complain
    - many people will "lol fail" at the weird effects, like when kdawson decides to merge two different stories together

  2. You are not a n00b by davidwr · · Score: 5, Insightful

    You may be a new system administrator, but you are not a n00b.

    A n00b wouldn't realize he was a n00b.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  3. Most important thing in my book by BlueBoxSW.com · · Score: 5, Interesting

    Most important thing is to treat your code and data separately.

    Code:

    Dev -> Test -> Production

    Data:

    Production -> Test -> Dev

    Many developers forget to test and develop with real and current data, allowing problems to slip further downstream than they should.

    And make sure you backup you Dev code and you Production Data.

  4. Tools, Practices and Standards by HogGeek · · Score: 5, Informative

    We utilize a number of tools depending on the site, but generally:

    Version Control (Subversion) for management of the code base (PHP, CSS, HTML, Ruby, PERL,...) - http://subversion.tigris.org/
    BCFG2 for management of the system(s) patches and configurations (Uses svn for managing the files) - http://trac.mcs.anl.gov/projects/bcfg2
    Capistrano/Webistrano for deployment (Webistrano is a nice GUI to capistrano - http://www.capify.org/ / http://labs.peritor.com/webistrano

    However, all of the tools above mean nothing without defining very good standards and practices for your organization. Only you and your organization can figure those out...