DevOps Research and Assessment (DORA) published a detailed report on the state of DevOps entitled "Accelerate: State of DevOps 2018: Strategies for a New Economy". While there are many research reports one can find on DevOps, this one is notable because it is based on 30,000 interviews and five years of study. The report itself is very thorough, weighing in at an impressive 78 pages! Fear not … I have summarized some of the most interesting aspects that I will opine upon here.
While there are various ways to define DevOps, any serious definition eventually gets to quantifiable measurements. In this report the notion of Software Delivery Performance is introduced as a way to measure DevOps teams by Throughput and Stability:
- Throughput as a measure of deployment frequency and the lead time for changes
- Stability as a measure of time to restore service and change fail rate
The best DevOps teams can deploy database changes many times per day with as little as one hour notice for a required change, experience very low failure rates for changes, and can restore from failed changes in minutes or less. These companies understand that failure is an excellent teacher and improve by trying new things until they get better. Cautionary companies implement database DevOps more slowly, and while they experience fewer failures, they actually require much more time to restore from failure and are far less responsive to the needs of the business.
Improving your Software Delivery Performance
The study has demonstrated a clear link between certain practices and successful software delivery performance. These can be organized into infrastructure choices and technical practices.
Infrastructure choices
Companies that build applications for the cloud, fully adopting the goals of cloud computing flexibility including on-demand self-service, resource pooling, rapid elasticity, etc. are 80% more likely to rate very high for both throughput and stability (as defined above). It comes as no surprise that DevOps teams prefer cloud computing infrastructure, but it is interesting to note that 40% of respondents said they use more than one cloud. An even larger percentage of respondents say they are using hybrid cloud, and to be honest, the distinction between hybrid cloud and multi-cloud can be a bit blurry for most teams — but one thing is clear: any solution supporting database DevOps needs to be multi-cloud ready.
Many DevOps teams report a strong use of open source software, showing it to be a key infrastructure choice, similar to what we see with cloud. Companies that embrace open source software are 75% more likely to be very successful in Software Delivery and Performance. We see this in the database arena as well, with many popular databases derived from open source, both in the SQL and NoSQL categories.
Technical practices
With the right infrastructure in place, highly successful DevOps teams implement several technical practices of note including monitoring and observability and database change management. The best tools work with multiple clouds and multiple database platforms, including open source databases. These tools should also present common consistent yet role-appropriate views for developers, testers, database administrators and operations staff.
Idera offers various tools that can be used to address these technical practices. This is not an exhaustive list, but some of the key points include:
- Database change management
- Aqua Data Studio provides an easy-to-use IDE-like interface for developers, testers and administrators to implement version control for database changes with integration to popular source controls systems such as Git.
- Aqua Data Studio supports over 28 SQL and NoSQL databases on cloud and non-cloud platforms from a single tool, allowing DevOps teams to implement consistent tooling for all team members.
- Monitoring and observability
- Just like change management spans developers, testers and operations, monitoring for DevOps teams similarly spans all these functions. The best tools must be able to provide situationally relevant data for all teams.
- SQL Diagnostic Manager supports cloud and non-cloud SQL Server, MySQL and MariaDB with rich information that improves time to restore service and reduces change fail rate.
- With SQL Diagnostic Manager, developers can profile their database queries and test under simulated load to isolate potential bottlenecks. Testers can observe results and monitor improvement. And developers can improve their queries with built-in expert tuning recommendations — all before deploying to production in under a day — enabling teams to deploy more quickly and cut back on failure rates.
- Views designed for operations teams quickly point out problem spots after deployments occur, providing detailed information on all failures to developers, enabling them to make changes, retest, redeploy and restore service.
With time, the mystery of DevOps has been reduced to a set of clear goals and practices that can be followed almost like a recipe, resulting in an elite team with excellent Software Delivery Performance. With a mix of hybrid and multicloud infrastructure, sound technical practices and the right change management and monitoring tools for the job, the database becomes fully integrated into DevOps teams — resulting in higher throughput and stability.