Deploying SQL Instance(s) for Development work

  • How do you deploy development instances in your environment?  I'm curious what others are doing, and what the pros and cons are that they see.  Especially interested in peoples opinions and experience around each dev having an instance on their local machine.

    The three scenarios I am considering are for a new data warehouse project are...

    1. Local instances on each developers laptop (we only have 3 developers at the moment).

    2. Separate databases on a shared SQL Instance.  One database per developer.

    3. One development database shared by all developers on a single instance of course.

    Thanks, and take care!

  • Don't do #3. Down that path lies tons and tons of pain.

    Yes, if you do #1 or #2 (and I lean heavily to the first option, the developers work locally on their own laptop), you'll still need to have some kind of integration testing. However, having everyone on a single database means that every time any one developer messes something up, or even makes a legitimate change, they take other developers offline. Development is hard enough without everyone having their code break over and over through the day.

    This is actually a pretty dense topic. I've got a free book available that can help get you started. The key to getting this done is lots of automation. You want to ensure that the developers can self-provision their databases, whether locally to their laptop or into a shared instance (other options are, distinct instances, one for each developer, distinct VMs, one for each developer).  Here's another article on the topic to help out.

    Step one, figure out how to get your database code into source control, same as application code. Step two, figure out how to automate building your development databases. Whether that's just scripting them from source control, scripting then loading data, backup/restore, or something sophisticated like SQL Provision (my employer by the way), you have to build out a database. Then, automate integration testing and automate moving between environments. It's a lot of work, there are a ton of resources to help.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • Thanks Grant!  I created a reminder to read through your book!

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply