Shift Left: How Database DevOps creates stronger and more streamlined database operations

By Kevin Kline, SolarWinds database technology evangelist.

  • 8 months ago Posted in

When things go wrong, people are often quick to point the finger of blame. And when it comes to information technology and especially application performance, the database is one of the first components to be singled out. 

Indeed, some database practitioners and experts estimate up to 70% of all application performance issues can be blamed on databases. 

The issues affecting databases are typically either the poor quality of SQL code, bad administrative practices, or poor governance. So, what may have once been regarded as an asset can quickly become a costly and time-consuming burden, especially on teams without a talented database professional or DBA. 

Instead of delivering the benefits associated with a data-driven organisation, such shortcomings can cause operational inefficiencies exposing businesses to unnecessary risk and poor performance. 

And yet, there is a solution. By incorporating database application development into DevOps, those responsible for the integrity of databases and related systems can help ensure data and applications run efficiently. 

DevOps can bolster databases 

DevOps is a set of practices aimed at enhancing collaboration and communication between development (Dev) and operations (Ops) teams. It is aligned to automation, continuous integration, and continuous delivery (CI/CD) to help IT professionals achieve better results via a culture of efficiency, collaboration, and rapid, iterative delivery. 

Should the worst happen, DevOps helps businesses and other organisations avoid downtime, reduce deployment rollbacks, tighten security, and eliminate system crashes. That’s because application development teams who use CI/CD can quickly rollback software updates, including changes to the database, with ease.

 

But there is a problem. The increasingly complicated nature of the data upon which so many organisations rely means companies often struggle to bring data into their DevOps framework. As a result, many businesses steer clear, preferring not to get tied up by a tangle of database complexity.

By improving database visibility, they can integrate data, database schemas, and stored procedure code into their DevOps practices in the same way that developer teams do with their application source code 

As a result, teams canstreamline database development and design through a process known as Continuous Integration/Continuous Deployment (CI/CD). Using the CI/CD process can also enhancie security and reduce the possibility of downtime and system crashes. In fact, there is a branch of DevOps which seeks to emphasize security earlier in the development process called DecSecOps.

In a similar way, smart dev teams could  introduce database observability solutions to reveal the inner workings of their database systems, thus delivering “DevPerfOps”. Crucially, bringing performance observability early into the development process enables IT professionals to see inside the black box, understand the root cause of performance issues, resolve issues faster, and proactively optimise poor performance to help prevent future issues. Compare the forward-looking perspective of DevPerfOps to the typical approach of dev teams, i.e. roll out a new application without evaluating performance, then attempt to improve performance based upon user complaints. Seems backwards, doesn’t it?

Even better, incorporating observability into the DevOps framework becomes much easier once your databases themselves are under observation. There is an industry term used to describe moving an element from late in the development process. It’s known as “Shift-left”. By shifting left with security, developers ensure that security is not an afterthought (and a gaping security hole) in their applications. In the same way, shifting left with application performance means that developers do not have to plan to constant performance tweeks once their application has moved to production.

If you’re still in any doubt about the benefits, here are six of the top benefits organisations can realise through this framework:

1 Streamlined deployment and software delivery: Organisations can integrate database development and operations into DevOps to enable a streamlined and automated approach to software delivery. As a result, teams should be able to meet the needs of their business or organisation through faster deployment cycles and the delivery of new features and updates.

2. Increased collaboration across teams: By bringing together developers, operations teams, and database administrators, businesses are better able to encourage collaboration and communication across different departments. This can lead to better alignment of goals, improved understanding of requirements and more efficient problem-solving.

3. Improved agility and flexibility: Organisations need to respond rapidly to evolving business needs and market demands — no matter where they are on their digital transformation journeys. By automating database provisioning, configuration, and deployment as they do with their application code, teams can more easily scale their infrastructure, roll out new features, and adapt to the evolving needs of the business.

4. Reduced risk and downtime: By automating and standardising database deployments using CI/CD, organisations can minimise the risk of human errors and reduce the potential for downtime. Database DevOps practices can help ensure changes are thoroughly tested and validated before being deployed. This reduces the chances of data loss or service disruptions. And if deployment of new database code goes wrong, CI/CD can make it quicker and easier to roll back to the last good version.

5. Efficient database management: Virtually all applications within an organisation require a database. Implementing DevOps  that includes the database code and design gives organisations a structured approach to managing databases and any data changes through version control. This approach to tracking and managing changes to software code guards against any ‘uncontrolled’ changes, structure, or configuration of a database. This means it’s easier to rollback a faulty software release, helping to ensure changes can be managed efficiently and safely, or even reversed when needed.

6. Improved compliance and security: Database DevOps emphasises including security and compliance measures throughout the development lifecycle. By integrating security controls and best practices, organisations can factor in data protection, privacy, and regulatory compliance requirements earlier in the process. 

By integrating your databases into your DevOps process, the disparate teams within an organization (IT operations, DevOps teams, and database administrators) can help ensure that their database infrastructure realises the same benefits as other application development teams using DevOps. 

Not only can organisations implementing database observability and a DevOps framework that caters to the complex needs of their diverse and growing business requirements, but it can also help them design robust database architectures, fulfil database performance needs and drive successful digital transformation and modernisation initiatives.

By Anugraha Benjamin, Manager, Infrastructure at Progress.
By Hans De Visser, Chief Product Officer, Mendix.
By Andy Mills, VP of EMEA for Cequence Security.