The role of the database within DevOps and what it means for the DBA

After years on the outside, it can finally be declared that the database is a staple in the DevOps tool chain. For many in the industry, especially for those that have been pushing for the database’s inclusion in the DevOps tool chain for some time, this comes as a welcoming sentiment in the DevOps community. However, accompanied with the inclusion of the database in DevOps comes a greater responsibility for the database administrator, or DBA. The DBA is an invaluable member of the DevOps management team and plays a major role in its success. The DBA’s role has evolved to the point where they are deeply involved in every step of the application release process, both with the development and operations teams, which is beneficial because a database that is well incorporated can drastically affect organisational efficiency in a positive way.

The evolution of the DBA 

For years, IT departments did not have the reputation of being most cohesive unit – until DevOps came along. DevOps requires the sharing of information between the development and operations teams, which leads to a much safer and more efficient automated application delivery process. One of the consequences of this increase in volume of application releases and code updates was a greater workload placed on the database and its administrator, the DBA. 

Responsible for manually implementing, recording, testing and managing all changes to the database, DBA’s experienced backlash from the development and operations teams, as they were blamed for delays in releases. This suddenly increased workload created a point of congestion, or bottleneck, as DevOps was automating processes and DBA’s were manually implementing changes. 

The database subsequently gained the reputation of being the most vulnerable part of the application delivery process, often to the chagrin of the business executives, who were upset that glitch filled apps and delays in releases were causing them to lose money.

Earlier this year at the DevOps Summit in Brussels, IT expert Dan North explained what he thought source of the disconnect was, and why. 

“Sadly, too few developers understand what goes on in a relational database...On one hand it makes it easier to develop basic applications…but things quickly become complex when your desired domain model diverges from the database schema, or when there are performance, availability or scaling considerations. At this point having a helpful DBA as part of the development team can be invaluable.”

DevOps finally accepts the database

Then, the seemingly impossible happened. The development and operations teams realised that managing source code, tasks, configuration, and deployments were incomplete if they did not incorporate the database into the DevOps tool chain. While the idea of database automation seemed unrealistic and risky, it had to be tried. If the database could be incorporated into DevOps with automation, DBAs could deliver applications faster, reduce downtime, enforce regulation compliance, and most importantly, get rid of the bottleneck.

Specialised database automation tools, such as enforced database source control, database build automation, and database verification processes were incorporated to allow the database to become a stable resource in the DevOps tool chain. 

Organisations soon realised that establishing the right culture was the backbone of successful DevOps implementation. Fostering an environment that brings DBA’s, developers, and operations together is crucial to the successful implementation of the DevOps philosophy. This involves removing hierarchies of the past and decentralising IT to empower developers - creating highly effective teams. 

Obviously, having an accomplished DBA as part of the development team is imperative. The rapid evolution from rigidly structured data to databases that can handle different data structures has allowed for each database administrator to work with developers to customise the intricacies of building, developing, and reserving their database to meet their specific needs. 

As the catalyst in the organisation that successfully integrates the technical advances of agile development into operations, the DBA handles any database-related issue and defines database management and maintenance processes that are carried out by the operations team. In short, while operations teams monitor the systems, diagnose issues, and generally make sure everything is functioning, DBAs are doing the same thing with the database.

Database automation is DevOps greatest achievement

What was once the reason the database was not included in the DevOps tool chain, database automation is now widely practiced, and sometimes DevOps’ greatest asset. Database automation frees the DBA from the bottleneck of the past that delayed application releases, as manually implementing, testing, and managing changes to the database are no more. DBAs, relieved of the pressures of constantly having to juggle and merge various teams’ database changes, are now free to help their organisations take bigger steps forward in ongoing innovation.

Vinay Joosery, CEO of Severalnines, believes that this allows the DBA to focus on other critical tasks such as “performance tuning, query design, data modelling or providing architectural advice to application developers, further elevating the performance of your DevOps.” While database deployment automation is not a simple process, it increases productivity, reduces risk of error in new releases, and increases the quality of the application. 

Conclusion

A database that functions like a well-oiled machine is critical to the implementation of an efficient and high performing DevOps strategy. The reason is simple; a slow database produces slow results – which is bad for business. In addition, within DevOps, DBAs can focus on helping their organisations make strides in innovation.

Independent development teams, faster and earlier corrective measures, as well as more stable deployment configurations are characteristics of database administration that directly affect the success of DevOps initiatives.

The mission of the DBA is to expand the database's range of functionality. In this ever evolving industry, the objective remains the same: “help organisations extract value from data, integrate it with new and traditional sources, and ensure quality and security.”

While optimising the database for DevOps is a must for organisations, rushing into the transition unprepared could be a detriment instead of an improvement. Understanding your organisation’s goals as well as evaluating the capabilities of your DBAs, developers, and operation managers is imperative for the transition to be a success.  

Yaniv Yehuda, co-founder and CTO, DBmaestro