At first glance, it may seem that we have already achieved “peak automation.” Companies have adopted DevOps process in droves, and app development pipelines are becoming ever more streamlined and automated.
But, no matter where you look, the database is left out of the loop. Automation breaks whenever databases are involved. There are many manual processes in play, making life difficult for the Database Administrators (DBAs,) developers, IT professionals, CISOs and anybody else who works with stateful applications.
But automation is only one piece of the puzzle. As I will argue in this article, database delivery automation is only one of the many benefits of adding the Database into DevOps processes. Version control, compliance enforcement, and role management are all extremely important when it comes to database delivery automation.
Every year DBmaestro conducts an in-depth survey to gauge the state of database devops. Last year, over 250 organizations took part in the survey
(you can access the last report there –> 2019 DBmaestro Database DevOps Survey)
What we discovered is that database automation lags behind across the board.
55% of respondents confirmed Continuous Delivery (CD) adoption for application development and almost 40% claimed to have this in place for their testing processes as well. However, when it came to Database DevOps, the number was down to just 25%.
With application CI/CD now a reality, DBAs are finding themselves spending more of their time on delivery changes, at the direct expense of work related to security and optimization. The numbers never lie. DBAs spent 23% of their time on security tasks in 2018. This number was down to a mere 13% in 2019.
Did You Know?
There are still a large number of professionals who think that DevOps is just a set of software solutions that allow iterative development. While this is not entirely wrong, DevOps is much more than that. It’s about working together to improve performance metrics and elevating software quality.
So it stands to reason that a healthy DevOps ecosystem needs to involve developers, IT professionals, security staff, and also database administrators. It doesn’t make sense to exclude the database from the pipeline.
Lack of Transparency and Visibility
Many organizations manage to get hold of the right software tools to implement DevOps, but fail when it comes to managing everything as one big functional ecosystem. This is often caused due to the lack of a centralized monitoring and governance solution to make management easier.
Besides the challenges caused by manually managing the various solutions and development environments, decision makers have little to no ability to access database delivery data to improve performance. This means that the two biggest benefits of DevOps, better quality and faster time-to-market, are lost in the database.
Vulnerabilities and security issues
Security needs to be built into DevOps. Also commonly known as DevSecOps, this philosophy needs to be instilled within every development ecosystem today. Besides enforcing best practices and creating a comprehensive security training program, organizations now need to get proactive.
With application code changing almost everyday and multiple developers accessing the code from different locations (often overseas), only a comprehensive governance solution can help make Continuous Integration and Continuous Development (CI/CD) a safe methodology to implement.
Not including such a critical element as the database into a DevSecOps process is a disaster waiting to happen.
Did You Know?
The Urgent Need To Bring The Database Into The CI/CD Process The database is often overlooked in the hyper-automated CI/CD pipelines. Lets touch upon the importance of Database DevOps. This is becoming the most common missing link when it comes to creating a smooth DevOps pipeline that allows one-touch database release capabilities.
The lack of database automation is a big pain point in organizations that are operating without any viable database delivery automation solution. Failure to treat database code as application code quickly snowballs into configuration drifts, release bottlenecks, downtimes, and failed policy enforcements.
Lack of database delivery automation means that organizations are still doing things old-school way – manually.
Developers get frustrated when finished code gets stuck with the DBAs prior to release, and DBAs get overwhelmed by tickets with nearly a third of their time being sucked into deploying database changes. More and more DevOps adopters are finding the lack of database automation to be a huge roadblock. What is even worse, as DBA time shifted into change delivery, it did so at the expense of security.
The Manual Database Code Deployment Pipeline
Just like we found solutions for automating app code delivery, there is a way for DevOps release automation workflows to involve the database.
Database release automation eliminates the need for manual reviews, validation, and execution procedures. Automating these steps eliminates bottlenecks and speeds up the database release process, freeing up the DBAs to focus on other things.
There are many benefits of adding database delivery automation into your CI/CD process:
Reduced Downtimes and Issues
Imagine having a database release without service interruptions or manual processes, something that was once considered an unachievable feat. With 24/7 availability becoming a baseline in today’s dynamic global market, zero downtime is no longer optional.
Database release automation enhances your ability to strategize your maintenance scheduling, minimize (or avoid altogether) human intervention and the resulting errors.
Automating database delivery helps detect database issues and mitigate them before they create bottlenecks. Also, Database DevOps helps DBAs perform audits with a single click, making it easy to identify issues and monitor who does what, when, and where when it comes to database schema changes.
There is one common requirement from all DevOps stakeholders today – need for speed. Database delivery automations helps achieve just that.
Everything happens faster with Database DevOps. Code reviewing, testing, and also monitoring to detect issues faster. You are version-controlling your database to speed up your DevOps pipeline and allowing the developers to focus on what really matters – innovating and focusing on code quality.
Optimal Security and Compliance
Most modern database DevOps solutions allow you to centralize your role and permission management operations. First and foremost, you gain visibility into your entire ecosystem, regardless of the physical location of the stakeholders working on your database. You always know who is touching the code (and why.)
Furthermore, you no longer have to create your audit lists manually. All access details and history is recorded automatically, which translates to painless compliance and security audits. This kind of on-demand access to activity logs, along with the ability to manage roles and permission, optimizes security levels.
Despite all the aforementioned benefits of Database DevOps, the majority of DBAs are still not in the thick of things. As evident in the 2019 DBmaestro Database DevOps Survey, organizations are still not prioritizing the automation of their databases and keeping DBAs out of the DevOps loop.
Not automating your database results in DBAs being increasingly pulled into manual processes, which will inevitably increase risks and reduce release quality.
There are a number of issues plaguing organizations that are not embracing Database DevOps. The biggest issue is configuration drifts (over 70%), something that can be easily eliminated by automating the database with a tight version-control solution that can enforce your database change policy.
After diving deeper into the survey report, it is evident that over 70% of database related issues are solved within 24 hours, but when seen as development time, this can seriously impact the organization’s time to market, which eventually negatively impacts it’s bottom line and brand reputation.
|Did You Know?|
Developing quality software is a costly process. You need to have a good team of developers, professional IT support to answer their needs, a competent security team, and of course a productive DBA who makes life easier for everyone. Most companies also have many freelancers on their payrolls.
The average hourly pay for a developer in the United States is currently a little more than $40 an hour. If database issues cost you 100 monthly hours of unexpected downtime, automation will save you almost $48,000 per developer annually! This alone can save you millions of dollars every year, without diving into savings on the DBA side.
But this is just one monetary benefit. By implementing database delivery automation, you also get to reap the financial benefits of the following:
- Lower Cost of Releases – Incremental and more frequent releases mean there are fewer issues to fix and less QA procedures involved.
- Faster Development – Deploy faster, speed up testing, and free up the DBA, while shifting your entire focus to quality.
- No Compliance Issues – General Data Protection Regulation (GDPR) fines start at €10 million or 2% of the company’s annual global turnover. Not a risk most organizations are willing to take.
|Did You Know?|
The bottom line is that besides saving a lot of money and resources, Database DevOps is also capable of speeding up your time to market without sacrificing code quality. Many organizations cut corners to meet tight deadlines and get caught up in post-release patching cycles. We can avoid all this by expanding the CI/CD pipelines into the database.
Your DevOps ecosystem is incomplete without database automation. Besides the obvious financial benefits, conquering this final DevOps frontier will allow you to establish better cross-department dynamics that will result in better productivity and faster time to market.
All managers and employees gain from Database DevOps implementation. The CEO enjoys demonstrated results and better ROI. The CISO or CIO can easily pass compliance audits. IT Managers and Tech Leads can streamline the development pipeline and optimize resource usage while scaling up.
Ignoring or overlooking the database is no longer an option if you want to embrace and implement DevOps in your organization. Get proactive now.