According to the 2016 Gartner Report, Avoid Failure by Developing a Toolchain That Enables DevOps, DevOps toolchains emerge from the need to deliver applications in faster and more agile ways.
Correctly adopting and implementing these tools and practices are necessary to not only have a seamless shift to DevOps, but to successfully implement it.
Accordingly, the report explains that “aid in the delivery, development, and management of applications throughout the software development lifecycle” can significantly shorten time to market, increase productivity and product quality, and reduce risk.
In the past I've covered the 11 tools you must have in your DevOps toolchain. In this blog, I want to specifically focus on database tools, as I believe it has not gotten the attention it deserves from DevOps experts and advocates.
The Database as a DevOps LynchpinManaging source code, tasks, configurations, and deployments are incomplete if the database is the weak link. Using specialized database tools such as enforced database source control, database build automation tools, and database verification processes, will help ensure your database is a stable resource in your DevOps chain.
Enforced Database Source Control
Adding a source control management functionality to your database, which covers database lifecycle management - from development through build and deployment - provide the following benefits:
- Guarantee a single source of truth for your database development assets
- Enables teams to work safely and simultaneously within the same environment
- Eliminates the possibility of overriding critical changes made by another developer
- Rapidly implements changes without lengthy development cycles that include time-consuming, frustrating manual processes
- Enforces version control not only on database objects, but relevant data as well
- Integrates with existing development tools, allowing your team to work within the environment they’re already comfortable with, while taking advantage of advanced functionality
Database Build Automation Tools
As continuous integration and delivery has become the norm for application code, particularly in today’s agile environment, databases are frequently being left behind. These automation tools bridge the gap between application code and database development, enabling true merge and build automation for the database. Benefits include:
- A 95% reduction in deployment costs
- The ability to deploy database changes in accordance with business requirements
- Utilize impact analysis – not damage control – with three-way, baseline-aware analysis
- Merge database code with unparalleled ease
- Build a continuous integration environment containing all database changes
- Deployment risk mitigation and substantially reduced downtime
- Achieve true database release automation
Database Security and Regulatory Compliance
Security and regulatory compliance are increasing concerns for companies in today’s complex business climate. In certain instances, this is a more substantial concern than in others, in which unauthorized database changes can spell disaster. Controlling and verifying changes to database objects helps enforce roles and responsibilities, and enables you to:
- Define and enforce database change policies through the assignment of roles and responsibilities. (for example: SQL Server, Oracle)
- Prevent unauthorized and undocumented changes to the database, with the ability to define access levels down to the individual object and data level
- Get a complete, reliable audit trail while minimizing manual documentation requirements for your development team
- Prevent team members from straying from the defined, efficient process, ensuring smooth development and deployment
- Segregation of duties (SoD)
No implementation of the DevOps “culture of collaboration” is complete without the adoption of the tools described above. These tools provide transparent work flow - from development through operations - for the DBA and the database to integrate safely into DevOps.