Let's talk a little RMS. As with all enterprise applications, a database sits in the back quietly storing and processing our data. As with all applications, there is always progress to be made and changes to affect. This isn’t limited to just code changes in our application, our data structures change as well. However, unlike application versioning, database versioning is another matter.
It’s always fairly easy to release the next version of the application, or rollback, whether it be a website, a Windows Form application, or a WPF application – it’s all just source controlled code and scripts that get compiled to binaries (you are using source control, right!?).
Unfortunately, a database isn’t that simple. Oh, sure, the structure is easy enough to change, but there’s always that pesky data that makes us put on the brakes full force before we execute that script.
- Will I lose that data?
- Is that data important?
- Do we have a backup?
What We Learned
This is exactly the situation we recently found ourselves in here at Oakwood.
We have a client that has a very heavy Azure PaaS presence and it’s time we started automating the deployment of databases without the fear of data loss, and in a timely manner.
Introduce Release Management for Visual Studio
As a process, all of the database changes are filtered through a database project, which, just like our code, can be compiled and statically checked against a set of code analysis rules.
Utilizing RMS not only can we setup an Continuous Integration build to compile our database project and run our database unit tests against those changes, at the very end we can kick off an automated deployment process that will (in the most efficient manner) commit our changes to a LIVE database without fear of data loss.
If we run into issues during the deployment (which isn’t just limited to database) we use the workflow in RMS to commit custom rollback steps for the application and database all at one time. The great thing about RMS is that this rollback isn’t just limited to the deployment process. As part of RMS approvals must go through the appropriate channels.
If your deployment gets all the way to the end of the pipeline and gets rejected, this same rollback workflow will still apply.
Since 1981, Oakwood has been helping companies of all sizes, across all industries, solve their business problems. We bring world-class consultants to architect, design and deploy technology solutions to move your company forward. Our proven approach guarantees better business outcomes. With flexible engagement options, your project is delivered on-time and on budget. 11,000 satisfied clients can’t be wrong.