SQLServerCentral Editorial

Deploy the Database First

,

This editorial was originally published on Jan 26, 2015. It is being republished as Steve is traveling.

One of the patterns I've seen in some environments is people are trying to deploy changes rapidly to their database backed applications. That's not news, but what is interesting is some of them are staging the deployment of the database changes first. Not as in I deploy database changes at 8:00pm and then application changes at 8:30pm. These people try to deploy the database changes on Monday, and their application changes will follow on Tuesday, Wednesday, or even a month later.

It's an interesting concept, though I think it requires a lot of forethought in your designs, as well as very tight coding from your front ends that won't be disturbed by extra columns in a result set.  That's not easy to do, but it's certainly possible, and it can even be useful if you deploy feature flags extensively in your application.

As we become more dependent on databases for our applications, and our customers expect systems to be running constantly, I think it behooves us to find ways to make alter and enhance our applications without downtime. While there are patterns to keep applications running when the database goes down, I expect that the reality is that we need to find ways keep the database up as we alter it, which for me means making non-breaking changes.

I think it's possible in many cases to upgrade a database over time by carefully planning your schema changes and accounting for those changes in your front end architecture. However it's not easy, as I mentioned, and you do need to commit to very stable and careful programming practices for your developers.

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating