No Database Left Behind - Fusion PPT

No Database Left Behind

As discussed in previous blogs, many organizations use Agile and Lean software development and DevOps practices to help increase the speed at which software is delivered to end users. While these best practices bring greater efficiencies in delivering working software, there remains an opportunity for improvement in the process.

Changes to applications almost always spawn updates to its supporting database. Typically, changes to the database involve soliciting help from knowledgeable data administrators (DBAs), who are in high demand but limited in number. The DBAs use of manual review/validation processes impacts the speed of the application release cycle. Historically, there has also been a lack of tools or automation to account for database changes at the same pace as Agile software development.

In recent years, new solutions have become available to address this problem.  Known as Database Lifecycle Management (DLM) tools, they are used in the DevOps automation pipeline to:

  • Provide earlier feedback to developers
  • Lessen impact to DBAs in conducting manual reviews/updates
  • Eliminate database change bottlenecks in the automation pipeline
  • Support standardization of database changes across all environments (e.g., Dev, Test, Staging, Production)

Several vendors have come to the market to fill this needed gap in capabilities to manage database changes in the way delivering software is done. A few examples that have been considered by Fusion PPT to help meet customers’ needs are listed below (in no particular order):

Vendor Product Notes
DBmaestro DBmaestro Release Manager and DBmaestro Source Control Supports Oracle and Microsoft SQL
Redgate Compare, Data Compare, Source Control, SQL Prompt Supports Microsoft SQL, Oracle, and MySQL

 

LIQUIBASE LIQUIBASE Open Source Solution with support for several database solutions (e.g., SQL, Oracle, MySQL, PostgreSQL, and others)
Datical Datical DB Database Neutral

(all RDBMS platforms)

Depending on the tool being considered, some example capabilities these tools can provide include:

  • Packaging, verifying, deploying and promoting database changes, just as with application code
  • Automating the creation of database deployment scripts
  • Automating deployment of database changes to dev, to test, and to production
  • Providing visibility into why a deployment will fail and what structure, code or data conflicts between environments
  • With available APIs, integrating with continuous integration/continuous delivery (CI/CD) toolchain applications for supporting automation of end-to-end pipeline activities
  • Supporting configuration, change management and audit trail activities
  • Generating database diffs to allow comparisons of development and production databases to generate change lists
  • Finding and fixing errors caused by database differences
  • Comparing and synchronizing schemas of two databases
  • Supporting database code branching and merging
  • Version control of schemas and reference data, roll back changes and maintaining the referential database integrity

In summary, when organizations consider use of Agile, Lean and DevOps methodologies they should also consider including the use of DLM tools to help in the automation of the database change process and speed the time to delivery of application functionality for end users.