When it comes to DevOps, developers increasingly recognize databases to be code sets that require ongoing integration and deployment. They are “another code deployment which can and should be managed, tested, automated, and improved with the same robust, reliable methodologies applied to application code,” according to the authors of a recent survey of 2,000 developers.
The survey, published by Redgate Software, uncovered a rise in the number of DevOps deployments for databases, with almost half of respondents saying they deploy database changes to production weekly or more frequently.
The survey report emphasized the importance of including databases in DevOps, which represents “the union of people, process, and products to enable continuous delivery of value to our end users. The most important word of this definition is value. To deliver value you must deploy all changes, including those to your database.”
Changes in database technology require a shift in mindset in the way they are managed and deployed within enterprises. “Databases, which were formerly seen as configurable repositories much like fileshares, are now seen as stateful data, controlled by code. This evolving viewpoint is transformative; changes to databases are recognized in another code deployment which can and should be managed, tested, automated, and improved with the same robust, reliable methodologies applied to application code.”
Database DevOps differs from DataOps, which focuses on automating the flow of data through enterprises. DevOps—which concentrates on the flow of application delivery and deployment—will help in ensuring the capabilities and qualities of databases, which essentially are very large, sophisticated applications.
More than two-third of respondents, 68%, are in some phase of DevOps adoption, and another 18% said they have adopted DevOps “across all projects.”
There is also significant movement toward Database DevOps. Forty-six percent of respondents are performing some form of database deployment automation. A majority, 60%, believe they will be moving from traditional database deployments to fully automated deployments in a year or less.
Slow release cycles are seen as the main impediment to database development, as cited by 24% of respondents. Another 21% cite the inflexibility of current database environments—an inability to respond quickly to changing business requirements. Accordingly, the main reason developers apply DevOps to databases is to increase the delivery of database changes, the survey found. Developers also see opportunity to free up their time from more mundane database support tasks (see Figure 1).
Bringing databases into the DevOps flow is not without its obstacles. The leading roadblock to successful Database DevOps consists of synchronizing application and database changes, cited by 31% of respondents, and overcoming different approaches to application and database development, as cited by 24% (see Figure 2). Another 18% of respondents expressed concern about increased risk of failed deployments or downtime when introducing changes as an issue with database deployments.
The survey also revealed convergence between developer and DBA roles. Developers in the survey consider databases to be part of their job responsibilities. In the survey, 78% reported they are responsible for both application and database deployment. And database deployments keep increasing in frequency—49% of respondents said they need to deploy database changes weekly or on-demand, up from 37% in a similar survey in 2017.
Database DevOps is delivering results, respondents confirmed. Those who reported that all or nearly all their database deployments take place within DevOps say they have seen lower lead time for changes and lower defect rates. Thirty-seven percent of respondents embracing Database DevOps have seen virtually no code defects which require hotfixes.