“Communication between all participants, consistent tooling and transparency are indispensable criteria in the database segment”
The database sector is an often underestimated area, in which DevOps principles can play a decisive role. In our interview at the DevOps Conference 2019 in Berlin we talked to Eero Mattila, Principal Systems Consultant for Information Management at Quest Software, about typical errors in agile environments and practices for the optimal implementation of DevOps in the database segment.
JAXenter: Which aspects of database development have to be considered when introducing DevOps and Continuous Delivery?
Eero Mattila: Structural changes to a database usually require a downtime for the application, since the changes cannot be made during active operations. While many phases in application development are automated, most steps in databases are performed manually, often turning the database into a bottleneck. Automated processes can significantly reduce the risk of unplanned downtime and data loss, accelerating development cycles and improving application quality.
JAXenter: What are typical issues in an agile environment and how can developers address them?
Eero Mattila: The most common problem is the lack of consistent tools and non-standardized procedures. Tasks such as unit testing, versioning and code reviews are often carried out only on a rudimentary basis – and if so, mostly manually. This often involves extensive, unplanned post-processing. An end-to-end tool set such as Toad Developer Edition for Oracle supports the developer through seamless integration with a versioning system, unit testing for database code, automated code reviews, script generation, and so on.
JAXenter: What is the ideal process for implementing DevOps in the database segment?
Eero Mattila: Not different from all DevOps projects: Communication between all participants, uniform tools and transparency are indispensable criteria also in the database segment. The first step towards agile development is the consistent use of a versioning system such as Git, Subversion, TFS, or similar. As with all applications, database code should also be tested with a unit test tool and in regular code reviews for readability, maintainability, conventions and coverage of all use cases. Finally, the generation of scripts to modify all required database objects should be automated as far as possible.
JAXenter: What are the factors that determine the success of DevOps and Continuous Delivery?
Eero Mattila: The goal of DevOps and Continuous Delivery is to improve code quality while shortening release cycles. The less unplanned code rework is required, the more successful the project will be.