DevOps isn't just for application deployments, it also applies to database development. DataOps is a variation which encourages automating the flow of data through enterprises, from source to storage. At the same time, DevOps -- which focuses on the flow of application delivery and deployment -- is increasingly being applied to databases, which are very large, sophisticated applications in their own right. "Databases are recognized as 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 Kendra Little, DevOps advocate at Redgate Software.
This conclusion is validated by Redgate's survey of 2,000 developers, which finds a rise in the number of DevOps deployments for databases, with almost half of respondents reporting they deploy database changes to production weekly or more frequently.
A majority, 68%, are in some phase of DevOps adoption across the board. About one in five, 18%, say they have adopted DevOps "across all projects," up from 15% a year ago. Forty-six percent of respondents are performing some form of database deployment automation. Managers within larger enterprises are bullish on database DevOps: more than 60% believe they will be moving from traditional database deployments to fully automated deployments can be achieved in a year or less.
"Databases, which were formerly seen as configurable repositories much like file shares, are now seen as stateful data, controlled by code," according to report co-author Kellyn Pot'Vin-Gorman. "However, databases present unique challenges in using change methodology due to the very nature and value of data. In particular. Data loss can put the continued existence of the company at risk. This results in database deployments requiring more care than standard change management to ensure the code that's deployed and data quality aren't impacted. The natural state of a database environment is growth, so as the surface area naturally spreads, the challenge of change management and releases becomes more daunting."
Slow development and release cycles (24%) and the inability to respond quickly to changing business requirements (21%) are seen as the top two drawbacks to siloed database development, the survey shows. In today's environment, data needs to be constantly available, and another 18% of developers see increased risk of failed deployments or downtime when introducing changes as an issue with database deployments.
Putting things in perspective, developers, for the most part, consider databases to be part of their jobs. In the survey. 78% report they are responsible for both application and database deployment. And database deployments keep increasing in frequency -- 49% report they need to deploy databases changes weekly or on-demand, up from 37% in a similar survey in 2017.
However, the survey also finds, only 47% of those that deploy weekly or more frequently say they are using version control for their database, which means that many are making changes to the databases directly, and not storing those changes in version control. This directly ties to respondents also reporting that their deployments contain defects that require hotfixes.
Developers also report working more closely with database administrators in their daily work, especially when DevOps practices are put in place. Eighty-two percent of developers in DevOps settings report they and DBAs work together as a team, versus 58% of those in non-DevOps settings.
DevOps approaches to database changes and upgrades are delivering results. Respondents who reported that all or nearly all their database deployments take place with the system online also reported lower lead time for changes and lower defect rates, the survey shows. Thirty-seven percent of those who have adopted DevOps across all projects report that one percent or less of their deployments introduce code defects which require hotfixes, compared to 30% for all other groups.