October 26, 2023
by Ryan Campbell / October 26, 2023
If you’ve made it to this page, you’re likely frustrated with slow, tedious, manual database releases.
Within an otherwise automated and fast-paced software development life cycle (SDLC), database schema management can drag down speed, innovation, culture, and even the progress of the business itself.
We’re going to discuss ways to un-stick the database release workflow, including:
Database DevOps solves the problem faced by 92% of organizations: how to accelerate database deployments, which are a consistent bottleneck in the otherwise speedy SDLC.
Database DevOps integrates DevOps principles into database change management, completing the “last mile” of the continuous integration/continuous delivery (CI/CD) pipeline.
It involves a shift in the collaboration culture and the adoption of database DevOps tools – the best of which deliver real value to organizations through automation, governance, and observability.
DevOps, in its original form, was for software development teams.
Once you understand its origins, you can effectively apply its principles to database development teams for collaboration, speed, productivity, and reliability benefits.
Developers and IT operations teams need to stop throwing things at the wall to see what sticks and hope something works. These teams must align their workflows and goals for better productivity, quality, and speed in the SDLC.
Dev and Ops naturally have opposing priorities.
Development wants to quickly respond to user demands and the rapidly changing competitive landscape with software updates. Operations want to ensure stable, reliable, auditable, and secure customer services.
With one side aiming for speed and output while the other seeks a careful, meticulous approach, the resulting workflow operates below peak efficiency at best. From certain perspectives, they seem to be working against each other instead of toward common goals.
Let’s look at both sides to see how DevOps translates into database change management.
The operations team is supposed to keep apps and infrastructure running smoothly so organizations can deliver value to their customers and revenue to their bottom line.
Many operational problems arise from complexity, fragility, poor documentation, technical debt, and suboptimal workarounds. On top of all that, leadership needs to confirm auditability and efficiency.
The people responsible for the apps and infrastructure promise to fix these issues, but they rarely seem to find the time. You’ve probably witnessed issues get deprioritized for more user-centric or revenue-driving initiatives.
The fragilities are prominent in the most revenue-generating systems or the most critical projects.
The systems most prone to failure tend to be the most important and stand at the epicenter of urgent changes. When changes fail, they jeopardize important organizational promises, such as availability to customers, revenue goals, security of customer data, and accurate reporting. But if the Ops team layers in more rules, checks, and organizational measures, the speed and agility of the SDLC suffer.
Fast, urgent, now, yesterday – Devs are used to these timelines. Development teams might even thrive on the pressure and the speed of their organization’s SDLC.
But often, when tasked with another urgent project that requires solving new technical challenges and finding shortcuts to meet the promised release date, Dev teams take on more technical debt.
The focus is on delivering more features sooner and faster, so fixing previous issues isn’t always on the top rung of the ladder. As this technical debt snowballs, everything becomes just a little more difficult: everyone gets a little busier, work takes a little more time, communications become a little slower, and work queues get a little longer.
As development projects become more tightly coupled and smaller actions cause bigger failures, Ops tightens the leash. Ops teams are more cautious and less tolerant of changes, so progress requires a trail of communication, coordination, and approvals.
Timelines continue to stretch, and quality suffers – not to mention the developer experience is slowly stripped of its autonomy and productivity. But if the Dev team increases its momentum, the quality, stability, and security of the app deteriorates.
If Dev and Ops teams continue to function in this siloed, conflicting exchange, the negative effects ripple out to end-users. Sooner than later, degradations in user experience and capability innovations become problems for finance, marketing, and customer success teams.
By the time the C-suite feels the effects of clashing Dev and Ops teams, the problems are deep-rooted, and the fixes are slow. When an issue grows so large it negatively affects revenue, Dev and Ops teams feel the pressure from above to deliver more, improve UX, and increase reliability.
And the cycle continues.
Adopting a DevOps culture breaks the cycle of misaligned goals, workflows, and output that come with a siloed team.
DevOps is a collaborative cultural approach that merges Dev and Ops, emphasizing efficiency and quality in the delivery process. It combines cultural principles, tactics, and resources to improve operational efficiency compared to traditional siloed methods. It promotes shared responsibility throughout the entire SDLC.
DevOps platforms are commonly used to facilitate CI/CD.
CI/CD is a combination of processes and automation tools that integrate code changes into a shared repository and automate their deployment. In DevOps, CI/CD pipelines play an integral part when it comes to increasing speed and reliability throughout the SDLC. Automated testing, more frequent deployments, and the automation of repetitive, tedious tasks make this happen.
These tools also help enforce consistent management practices that support DevOps culture and collaboration.
By using the same governed automation process across all stages of the SDLC (test, stage, production), the individual stages experience little to no accumulated drift, and early pipeline deployments more accurately predict production deployment outcomes.
Successful DevOps cultures involve all stakeholders, including platform and infrastructure engineering, security, compliance, governance, risk management, and end-users, to achieve optimal results.
Yet, teams that apply DevOps practices to only the code (automating software builds, tests, and deployments) quickly realize that they still have a manual, error-prone bottleneck in the process: database updates.
Source: Liquibase
So you’ve got the basic concepts down regarding DevOps for the software team, but the full benefits can’t be realized until we include the database.
As we shift focus to the database, the same general problems exist between operational and development teams. Database changes require additional considerations to maintain the state required to support a specific version of an application.
Central to database DevOps is infrastructure as code, which may already exist at your company for the broader IT environment. Rather than manually configuring and maintaining database servers and environments, database infrastructure is provisioned and managed by code-based scripts or templates. This usually comes in the form of database version control and CI/CD automation tools.
Database DevOps solves the most common and problematic inefficiencies in database update workflows that hold back the SDLC from the speed and value it’s capable of.
As software Ops and Dev teams whiz along in a rapid, infinite loop of integration and delivery, they charge ahead with new innovations and features that improve UX and drive revenue.
With the DevOps framework and CI/CD pipeline, they move at warp speed – until the time comes for the necessary database schema updates.
Source: Liquibase
App codes require updates to the database more than half the time. All the work gained by the automated pipeline grinds to a halt while DBAs manually receive, review, bundle, and deploy them. Often, DBAs are more like database release engineers, constantly working through a backlog of updates.
With a clunky, manual workflow for database releases, the entire SDLC slows down, chipping away at the velocity of implementing DevOps across the application stack. Not only are releases slow, but they rely on complex and volatile processes facilitated by humans, who tend to make errors that can cause disruptive failures.
Manual database change management also comes with security and compliance risks since necessary modifications can be slow to come to fruition. Breaches can be harder to investigate, and audits can take up excessive time and resources.
Manual audits also carry dangers of inaccuracies, errors, and security concerns.
They take too much time and have limited ability to scale and keep pace with the explosion in the number and frequency of software and database updates. When the database has to be manually migrated, expanded, changed, and audited, it hinders the growth of environments to support new software and features.
At a cultural level, database change management without DevOps leads to frustration and distrust between software and database teams that chip away at the productivity and profitability of the business.
Instead of coordinating and collaborating for exciting innovations, software and database teams remain gridlocked. They slowly and tediously work through updates, going back and forth with code reviews and pushing the update at a snail’s pace, all because of outdated workflows and automation.
Source: DEVOPSdigest
For truly competitive velocity in your SDLC, the CI/CD pipeline needs to extend to include database updates. This is the problem that database DevOps solves.
Just like software code utilizes source control in a DevOps environment, database DevOps uses source control for database change code. Instead of treating database updates as an after-the-fact step in software releases, they’re included in the software build and deployment automation.
Enabling automation, governance, and observability, database DevOps, with the support of CI/CD automation tools, eliminates the bottleneck of database change management to match pace with the speed and acceleration of software releases.
Database teams can automate testing database changes independently from software code. They can also automate validation at commit time to catch errors as early as possible. The result is database changes that always operate as they should and remain in a deployable state.
Database release automation removes manual work and reduces security and reliability risks.
Database DevOps enacts centralized access control to govern database change throughout automation.
This approach builds telemetry for production environments, ensuring database problems are detected and corrected quickly, confirming that everything works as intended. If a rogue error does occur, database DevOps supports change rollbacks while maintaining the underlying information within the database.
The right automation tool maintains database updates with a razor-thin margin of error, running quietly in the background yet alerting DBAs when something goes wrong.
Treating database changes as code allows visibility into change metrics throughout the development lifecycle.
Instead of database teams struggling to keep up with manual updates, they can automate most of the process and instead observe metrics to identify continual improvements to throughput, change frequency, lead time, deployment success rates, and time-to-service resolution.
By building in observability, database DevOps delivers actionable insights for workflow improvements, accelerates error diagnosis and remediation, and simplifies auditing.
Combined, these automated workflows quickly increase productivity, market share, and profitability – not to mention better experiences for developers, DBAs, and everyone on the database, software, and IT teams.
Database teams see more manageable and more frequent releases deployed in less time when they apply DevOps to their work.
Database schema updates become a click in the process rather than a complex, manual detour. In an optimal setting, software and database developers, and DBAs configure and trust their DevOps tools in ways that encourage self-serve database deployments.
DBAs are talented, valuable assets, but they don’t come cheap – and good for them. With average salaries above $100,000, DBAs shouldn’t have to waste their time on manual schema update requests.
Considering their depth and breadth of knowledge, their impact is squandered when stuck in a manual update process.
Innovative initiatives for DBAs
When database DevOps automates the tedious tasks DBAs face surrounding releases, they’re free to pursue more valuable initiatives, such as:
DBAs can also focus on high-value strategic initiatives such as ensuring data integrity across the organization.
By focusing on these areas instead of manual reviews and releases, DBAs can enhance performance, reliability, and security, contributing to better business operations, customer satisfaction, and, ultimately, revenue growth rooted in the database.
An upgraded employee experience does wonders for satisfaction, productivity, longevity, and professional development.
The exponential gains you’ll see in productivity will have the broadest-reaching impact across your company.
This transformation goes beyond efficiency and reshapes the entire work culture, fostering an environment where everyone feels empowered to deliver their best.
By simplifying the change release process, developers don't have to wait for reviews or spend time going back and forth on changes. They can instead release code, get instant feedback, make changes, and move on. This allows developers to continue moving forward without delay. A smooth ride makes for happier and more productive developers, which is tightly linked to productivity.
Database DevOps permits optimally seamless software and feature releases, reducing pressure by adopting dark launch techniques (feature flags). This way, your teams can safely introduce and gradually roll out new functionality to customers by merely changing a toggle or configuration setting.
And if anything goes wrong, automatic rollback mechanisms ensure controlled, predictable, and low-stress fixes.
Database DevOps also emphasizes pre-production problem-solving with early issue detection and correction. You can identify and address issues in their infancy before they reach production and affect customer experience.
This approach minimizes disruption and promotes a continuous learning culture, where developers are encouraged to develop professionally and reap the rewards of activating those learned innovations. The result is enthusiasm, ownership, accountability, and longevity across teams who know their contributions are meaningful to the organization's success.
Database DevOps promotes a high-trust, collaborative culture where risk-taking is rewarded.
Resource allocation can also become more efficient because CI/CD automation eliminates time wasted on dead-end fixes or buggy features. Database DevOps refines workflows and guarantees that teams are focused on goals that matter.
Enacting database DevOps frees up DBAs for more innovative roles while improving developer experience and boosting productivity. These benefits lead to better business outcomes, more revenue, happier customers, etc.
But how do you measure these improvements to prove value to the C-suite, executives, leaders, and even DBAs who haven’t bought into database DevOps?
Look for the following:
If your organization is already tracking DORA DevOps metrics – deployment frequency, lead time for changes, change failure rate, and time to restore service – then you’ll likely be able to show off the value of bringing DevOps to the database through similar methods.
Launching database DevOps requires a cultural buy-in and the right database DevOps tool for CI/CD automation.
Choosing an industry-leading database change automation tool equips you with a cornerstone to support the database DevOps transformation.
While identifying the right database schema migration and automation platform might be easy, the process turns exceptionally difficult when navigating the complex organizational structures of your business.
You’ll need to work with the following roles and communicate benefits specific to their unique goals.
The C-suite wants to attract the best and brightest talent who will drive the most revenue from the database.
They’re looking to bring the speed of CI/CD across the entire technology organization and create space to upskill employees for even better business outputs.
Someone like a managing director of operations, for instance, wants to maximize their investments by increasing capability and capacity.
To do so at the database, they must see DBAs innovating and upskilling, not wasting away in tedium.
A VP of technology or platforms will seek flexibility to fit their existing pipelines.
They’ll want to prioritize the release of more features faster. They prefer to assume database operations work, but they want instant alerts if something goes wrong.
They especially value automation and governance.
The benefits of automation are most evident to DBAs, but they can also be the hardest to convince that change is needed. Emphasize faster reviews and releases, and tell them more time will be available for intriguing innovation initiatives.
They can be better DBA, advance their careers, and shift focus to new, exciting database technology and practices.
Start small – one team, one database.
Bring a team to peak efficiency before moving on and focus on building the right habits. Let your database DevOps team’s natural excitement inspire interest from other teams. Target specific use cases and identify where automation can have the most impact. Plan for integrations with your other DevOps tools and platforms.
With the right tools and approach, you can bring database DevOps to fruition at your organization and turn the database from a hindrance to an accelerant of innovation, growth, and value across your business.
Use the data collected in customer databases to create more personalized customer communications. Learn how to do this with database marketing.
Ryan Campbell is VP of Customer Success at Liquibase, the leading database change management & CI/CD automation tool. He helps teams launch, optimize, & expand database DevOps using wisdom from 20+ years as a developer, engineering leader, & co-founder of CloudBees, the company behind Jenkins.
When a business hinges on optimal app experiences and reliable data, understanding the state...
Artificial intelligence (AI) adoption ranks high on the list of IT investment priorities...
Each engineering team is unique in how they are structured, operate, and execute their...
When a business hinges on optimal app experiences and reliable data, understanding the state...
Artificial intelligence (AI) adoption ranks high on the list of IT investment priorities...