2

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.

Montag451
  • 248
  • 1
  • 4
  • 19
Joshua Enfield
  • 3,404
  • 8
  • 41
  • 58
  • Try googling "continuous integration" and "continuous deployment" and you'll see exactly what the range of possibilities are. There are companies out there that have automated the complete process from developer check in to deployment. – Fred the Magic Wonder Dog Apr 17 '14 at 15:33

1 Answers1

7

My answer to that question would always be: ask the users, in your case the developers. IT systems do not have an intrinsic value of their own, they always fulfill a role within the context of the business they are used in. Therefore the better you can make them do what is needed in that context, the better for the business.

Some more specific answers:

Version Control: we use svn, cvs and git (legacy reasons, there are moves under way to consolidate this into git only).
Automation: plenty. Each of these systems has hook scripts galore. Due to the fact that requirements keep on changing, the engineering teams actually have a "tool maker", i.e. a particular software engineer who does nothing else but provide and improve the tools for everybody else. The IT team doesn't actually get involved with this at all, we focus on the servers as such (hardware, OS, upgrades, performance, networking, etc.)
Console vs. GUI: Anything goes. And we in IT don't really care what they use as long as it does the trick, can be installed/upgraded via package management (we also have our own package repository for our internal tools) and doesn't violate any laws or infringes any copyright.
The #1 priority is always uninterrupted service to all users.

wolfgangsz
  • 8,767
  • 3
  • 29
  • 34
  • 1
    +1 for "IT systems do not have an intrinsic value of their own, they always fulfill a role within the context of the business they are used in." <-- One of the best IS-related comments I've ever seen. :) – Zayne S Halsall Aug 28 '10 at 15:56