Sergey Nivens - Fotolia
A new breed of software tools is driving DevOps processes deep into the persistence layer, as database automation and continuous deployment come together.
The adoption of highly scriptable cloud-based technologies, along with the emergence of continuous integration (CI) and continuous deployment (CD) tools, has created an environment in which every operations process should be scriptable and all manual processes targeted for automation. Organizations with a DevOps approach to application lifecycle management should automate every process imaginable, but they often hit a wall when they reach the persistence layer. Emerging technologies have the potential to make that limitation disappear.
Apply DevOps lessons to database release management
"Database release automation is a real problem," Datical CTO Robert Reeves says. "You've got lots of great ways of automating the application and provisioning servers. But we are still asking DBAs [database administrators] to just work faster, work harder, as they do manual updates."
So, why can't we take the lessons we learned from Agile or the progress DevOps has made and apply them to the persistence layer?
"Because of state," Reeves explains. Unlike applications, a database can't simply be deleted and recreated on the fly as though you were deploying and undeploying a microservice packaged in a Docker container. "You can't just zap it."
Issues beyond the persistence layer
The persistence layer presents one problem, but there are also unique regulatory, technical and corporate standards issues that affect databases.
Robert ReevesCTO, Datical
From the corporate side, tedious enforcement issues -- like naming conventions -- waste DBAs' monitoring time. On the technical side, certain best practices need to be enforced. DBAs need to make sure the number of indexes applied to a table or a column with 1 million populated rows isn't accidentally changed. That all has to happen in an evironment dominated by regulations.
"Enterprises have some of their brightest DBAs, their most senior IT folks, looking at this stuff," Reeves says. "They're doing tedious, manual work, and it isn't moving the organization forward."
Integrate automations into the persistence layer
To get automation in the persistence layer, integrate database release automation into key DevOps processes, such as CI/CD of code. With Datical, a software developer can update a Datical project at the same time they check in code requiring a database change. A CI tool, like Concourse CI, will then run all of the required unit, integration and regression tests that the software must pass to move to the next stage of delivery. If the tests pass, the team builds an application and creates a deployable software artifact.
"Once the artifact is created, Datical will look at the database changes, make sure they adhere to standards, do a fork simulation of that change and make sure its application won't blow anything up," Reeves says. And if nothing blows up? "Then, you actually do it. Once the database is updated, then you move out the new application and new containers, do your blue and green stuff, whatever you want, and you're done."
For insight into how new technologies will make database release automation a reality, along with perspective on how database automation is extending DevOps beyond normal operational tasks and deep into the persistence layer, listen to the accompanying podcast between TheServerSide's Cameron McKenzie and Reeves.