I am a DBA!, ¿what do I need to know to understand the application of DevOps practices for Databases?
In a hyper-connected and data-driven world, companies are constantly updating development and testing continuous integration and DevOps support. Those who know Database well can contribute with their deep knowledge to build pipelines that focuses on enabling Databases as part of a Continuous Integration process, with several Databases engines artifacts.
Traditionally, database changes begin with developers creating the modifications that they will use to write the files in Databases . From the application layer, developers introduces changes more faster and these changes modifies the data model for different reasons. Any data model definition change in the application layer maps to a schema change in the database.
In a traditional model, a database administrator (DBA) reviews the changes made after the code was build and deployed. This sounds like a solid and crucial process. But the common problem is that the database administrator usually shows up just before being deployed to production when it is too late and it turns out to be very costly to make the appropriate changes.
This is a typical scenario that companies face. So these processes are changing, and automation makes the process run more smoothly. But DevOps for databases isn’t just about the automation process.
Automation is part of the equation. To implement DevOps it is necessary for the Development, QA, Operations and Security areas to work in close collaboration, to achieve a common objective, to deliver VALUE:
With this approach performance and data issues will appear and resolve more reliably than the current approach that involves building a development database and then comparing it to production.
It is necessary to verify the changes with dwith reliable data, that is online and that resembles the environment in production. Performing validations and tests with this cloned data will allow us to gain confidence and avoid problems in production
We need to uses the same principles that have been widely accepted in DevOps, some of the most important are:
- Collaboration
- Source Control
- Unit testing
- Continuous delivery
According to the 2020 State of The DevOps Report https://puppet.com/resources/report/2020-state-of-devops-report/ and 2019 https://services.google.com/fh/files/misc/state-of-devops-2019.pdf reports, but specially the The State of Database DevOps 2020 report published by Red Gate, you’ll discover that while many respondents noted a willing shift toward Database DevOps adoption, there were still a significant number of respondents stuck in siloed databases.