Question:
I am looking for links or personal accounts of lessons & experiences on setting up sets of servers\systems for developers. In particular I am interested in the amount of automation and if it has turned out to be more work than it is worth or a god-send. I realize depending on the nature of the products developed, this may be simplier or more complex. I am also new into this area (<4 months) so my perspective is very limited :( The following are points I am most interested in:
- Version control you use and why?
- Is anything automated?
- Do you have developers work with the repository directly for general day to day use?
- Do you take advantage of repository scripted hooks?
- Do you tie any of your tools together or integrate them with each other in any way?
- Do developers use console-based or graphical tools?
- What is your #1 priority when you are upgrading infrastructure or improving things?
My Limited Experience
In my case the team develops web applications utilizing MySQL and PHP. The updated infrastructure I have been working on gives them version control with Mercurial and the project management system Redmine. We also have dev, test, and production servers for the site as well as a database server. I combine the version control and project management onto one server.
From a strict usability perspective the above sitting on their own servers is enough, but I have been working on approaches using post-commit hooks to send the newest incoming commits to the dev server automatically, script processing (like minimizing CSS and JS files), and integrating the triggers of publishes to test and dev into the Redmine UIs with permissions control. I have also added hooks into Redmine to do custom Repository creation and deletion (with custom hooks).
I have also experimented with custom Dreamweaver plugins to grab commit messages from developers and automatically handle the commit process (minimizing time spent switching windows and clicking around in TortoiseHg.)
As I am still testing, I am unsure what will make it into the final product. I was just curious what others did as far to the extents they ran.