Development Servers?

It is rare these days to find anyone who is doing development work within their live infrastructure, especially when it comes to the bigger sites which is running on multiple servers. So how practical is it to keep development servers up and running?

Depending on the size of your code base and also the frequency of on-going development, the answer is not very as you could effetely be running your architecture again so will need to invest time in keeping it up-to-date and also the day to day house keeping of the machine(s). This along side the costs of running the servers can tempt you into doing your development on the live infrastructure, after all what harm can a few changes to your code do?

There are some ideas you can follow to help keep costs and the time you invest down;

    Are your development servers in the cloud where you pay by the hour, if so do you need them powered on 27/7? Unless you have development teams spread around the world working all day every day then there can be cost savings by turning them on and off automatically via a CRON job on one of you live boxes.
    Do you only do active development for x months of the year? If so then it will be cheaper to only have servers provisioned for that time, this does lead to the question of how you keep the code up-to-date on a box which is powered off for most of the year. The simplest solution is that you write a script which checks out your current branch of code from your version control system or simply syncs the data from live when the machine is booted.
    Do you have multiple developers working on your code? Depending on the development methodology your developers are using you could have multiple developers (outsourcer and internal) all wanting to work on different parts of the code at the same time for short periods of time, to ensure that they do not start causing problems for each other because testing puts the machines under high load then you can use the same methodology as the first two items to give the developers their own boxes for the duration of their current task. Building an instance which has an up-to-date copy of the code copied to it each time it is booted which can then be terminated each time the developer has finished with it.

These are just a few ideas on how you can try and keep the temptation of making changes directly on your live servers away.

This entry was posted in Managed Hosting. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>