Database DevOps Guide
What is Database DevOps?
Database DevOps is a process by which a team identifies and streamlines the application development and release process. A big part of driving improvement begins with identifying the parts of the dev and release process that create bottlenecks.
This issue surrounding the ability to deliver stable, secure software using DevOps seems to be cropping up more often lately. IT professionals are more and more considering the promises of DevOps. Issues like information security and regulatory compliance would be top-of-mind as these teams consider adopting any new approach. The pressure on enterprise teams to maintain highly available applications which are both stable and secure is enormous, which is where DevOps for the database can help.
How Can Database DevOps Help Enterprise Business?
According to a 2014 survey conducted by Forrester Research, incorporating proper DevOps metrics helped produce fast results without sacrificing quality. In the survey, automated testing and smaller batches were used during release cycles. The results showed that, by using best DevOps practices, teams were able to shrink the size of releases, increase testing, and produce more stable product at a lower risk.
This seems hard to believe. Operations have been burned by failed deployments too often in the past to easily swallow the prospect of actually releasing more often. It’s natural they would be suspicious about DevOps practices.
But large, infrequent releases containing hundreds of changes means that each of those changes has to be tracked and monitored during a deployment. This creates an enormous amount of overhead on the deployment team. And, the interdependencies between all those changes increase the number of items that need to be tracked and monitored through the deployment. This leads to a list of thousands of things the deployment team needs to check and re-check during the deployment.
DevOps gets operations teams and development organizations to work smarter, not harder. Instead of trying to accomplish too much in a single project, using the right database DevOps tools can split up objectives among smaller projects. Releasing in smaller batches allows operations to do less complex work and exercise more control during the deployment process. Because of this, the chances of a successful deployment increase.
A proper DevOps process allows team members to have more space and time to think about the process itself. It also allows for thought on where the process can be improved for the next release. Less issues mean less time spent after the maintenance window performing fixes. After using database DevOps to fix problems, teams find that it is possible for them to release more frequently without a loss in quality.
Best Practices for Database DevOps
There are a lot of different approaches to DevOps. Datical has found that these are the best practices running through the most successful DevOps teams in our field:
1. Minimum Viable Product
Deliver the smallest amount of functionality that will produce value, as fast as you can. Close the feedback loop with your market segment & incorporate that feedback into the product quickly, delivering value incrementally.
2. Dedicated Teams
Think Special Forces. Alpha teams are made of experts across a range of skill sets because these guys never know what they’re going to come across – medical, intel, heavy weapons, demolition, etc. You want cross-functional teams that are “a mile wide and an inch deep.” When alpha teams are planning a mission, they are in lockdown – no one is allowed to intrude on their business. The same should hold true for your DevOps teams.
3. Loosely Coupled Architecture
Both within and between applications. This reduces complexity and simplifies the delivery of small increments.
4. Minimize Hand-offs, Maximize Flow
More time gets lost during handoffs than when actually doing the work. This is because the person receiving the handoff often has other tasks they are working on. Get rid of as many of these handoffs as possible to protect flow throughout the entire system.
5. Deliver in Small Batches
Exposes the issues with the most uncertainty first. This gets you feedback about what users find most valuable quicker.
Transparency into progress helps everybody to see where you are at any point. Good transparency also allows visibility into risk without decreasing productivity.
7. Reduce Overhead
Regular manual status reports and meetings take time to prepare, discuss, and action on. Reduce these, and you’ll gain back time and increase productivity.
8. Automate Testing Using APIs
Shifting away from a reliance on heavy manual testing automates the process. This removes the risk of human error, improving test accuracy and software quality, and protects flow throughout the system.
Read more about the business benefits of DevOps in our white paper The Business Case for DevOps.