Integrating the database into DevOps for business success

The benefits of DevOps have been known for some time, but this year’s Accelerate State of DevOps report shows that successful companies are extending the advantages they get from adopting it. The longest-running research of its kind, the report from DevOps Research and Assessment (DORA) represents five years of work surveying over 30,000 technical professionals worldwide.

Based on their input, the report previously split organizations into low, medium and high performers. This year it added a new category – elite performers – who are embracing DevOps to raise the bar when it comes to the benefits they gain. Elite organizations are able to deploy code 46 times more frequently than low performers, lower lead times from committing to deploying changes to less than one hour (compared to 1-6 months in low performers), and recover from incidents 2,604 times faster.

For the first time, the report also focuses on the vital importance of the database to successful DevOps, echoing research from Redgate. As it points out, deploying changes to the database is often a bottleneck, slowing down DevOps. To overcome this the Accelerate report recommends integrating database work into the software delivery process, based around four good practices:

1. Strong communication and cross-team collaboration

Traditionally, the teams involved in application and database development have had different priorities and responsibilities. The biggest concern with the database was to limit change in order to keep data safe, while application development was all about creating features, often without regard to what impact they would have on the database.

With DevOps, this has changed. The faster releases of smaller changes it encourages means the database cannot be a logjam at the end of the development pipeline. Instead, it needs to be part of the same workflow, so good, ongoing communication is vital.

In many organizations this is already happening – 58% of respondents in Redgate’s 2018 the State of Database DevOps Survey said that collaboration between developers and Database Administrators (DBAs) was either good or great, showing that the processes and teamwork are in place to break down any walls between departments.

2. Comprehensive configuration management

Using configuration management tools for software development is a central part of achieving successful DevOps results. To avoid issues, these same practices and tools need to be extended to cover the database as well. Handling changes systematically creates a seamless flow that enables faster releases and dramatically reduces issues – vital when over a third of respondents to the Redgate survey said they deployed database changes either daily or more than once a week.

3. Extending version control to the database

As part of taking a holistic view, the Accelerate report found that extending version control from application code to database code delivered major benefits. Elite and high performers store database changes as scripts in version control and manage these changes in the same way as application changes. This is a task that is shared between DBAs and developers – 75% of respondents to the Redgate survey said that application developers now build database deployment scripts, and were responsible for deploying these database changes to production in nearly half (47%) of organizations.

4. Building a strong culture

Culture is a strong factor in whether DevOps succeeds or fails in an organization. This is unsurprising given that DevOps is a very different process to those it replaces, focusing on speed, collaboration between teams and a willingness to be open and continually learn and improve.

Many people are familiar with the work of sociologist Ron Westrum, who characterized the culture within organizations as one of three types:

  • Pathological (power-oriented) companies work in silos, don’t co-operate and are quick to apportion blame if something goes wrong.
  • Bureaucratic (rule-oriented) companies are more open, but are still suspicious of novelty and tolerate limited co-operation between teams.
  • Generative organizations are most suited to successful DevOps, with a focus on co-operation, surfacing problems, breaking down silos, holding postmortems to understand why things have not gone well and continually experimenting to drive improvement.

To create the right environment for DevOps, leaders need to encourage a generative culture which builds trust within and across teams, empowers them with autonomy and uses good communication to ensure everyone understands their role and goals.

Summary

The latest Accelerate State of DevOps report has a simple topline message – higher software delivery performance enables better business outcomes. Achieving this requires taking a development-wide approach to DevOps, incorporating the database seamlessly into DevOps flows, communicating and collaborating between teams, sharing technical practices, and building a strong, open culture across organizations. Only then can they become high or elite performers, with an agile infrastructure that underpins their success.

This article was originally published on DevOps.com in October 2018