xy - Fotolia
Databases are central to many enterprise IT applications, but databases don't fit comfortably into DevOps. DevOps, GitOps and variations thereof focus on software coding and release synchronization. But what about databases?
Database technology poses a challenge for those who create DevOps pipelines. Most enterprises use SQL and relational database management systems (RDBMS). Within this combination, a database is a curious blend of programming and infrastructure.
Databases consist primarily of data, of course. Data presents a situation quite different from executable application code for DevOps cycles. You cannot stage a test database in production -- it would overwrite real user information. To get around this, you can correlate test-data extracts or parallels with the real production environment, and stage parametric and configuration information, as well as code, to attempt an accurate facsimile of the live environment. But, even with strategies to abstract, DevOps database automation presents unique challenges -- not the least of which include security and compliance.
Database automation vendors address these DevOps database challenges within the enterprise. In this product faceoff, we'll compare two leaders in this market: DBmaestro vs. Liquibase. Liquibase is a commercial vendor formerly known as Datical.
The hazards of database tool reviews
A modern SQL/RDBMS or other structured database stores and accesses information in a way that aligns with most business needs. The notion of a query and a table come from this SQL/RDBMS combination. Essentially, a structured database builds a programming language around its structure, its model of access.
The goal of database DevOps is to align DevOps practices and tools to create a pipeline for the database from source control through production release, just as DevOps teams do for application features. Just as handoffs between dev, test and ops delay application delivery, so too can friction occur upon the database administrator (DBA) reviews. DBA change reviews typically accompany, and sometimes even drive, application updates.
Databases fall outside the typical DevOps scope, which means the DBA's review is a human-caused delay in an increasingly automated release cycle. Even more frightening, DevOps teams might skip reviewing the database changes entirely, because their tools don't cover these kinds of reviews or they have no policy in place for them. An unproven database change released to production poses a major risk to governance and database integrity.
To reduce the DBA's efforts in a safe manner, organizations can replace manual reviews with policy-based controls for database changes. In many cases, they can automate the handling of database changes in a similar manner as they would for new features or configuration code. Database release automation can cut weeks off the SDLC, a critical benefit when Agile or rapid development is the goal.
Database automation approach
Both DBmaestro and Liquibase allow policy controls as input for database changes, and flag exceptions for review by a DBA. The two vendors take different approaches to the tasks.
Liquibase Enterprise was previously known as Datical DB, before the company rebranded as a commercial version of the open source Liquibase. Liquibase Enterprise, which we're evaluating here, includes many added features and a better GUI over the open source version.
Liquibase integrates database DevOps with software-code DevOps, and applies policy controls created by the DBA to maintain data governance and stability. DBmaestro also enables DBA control and integrates gradually with the DevOps flow of the code.
DBmaestro's tagline is, "Automate and govern database releases to accelerate time-to-market while preventing downtime and data loss." While reuse of components is merely a goal in development, it's required for databases. Information content in databases is diverse and dynamic, and so are the information access process tools. DBmaestro supports this implicit pipeline to unify the inherent diversity of databases.
Liquibase's tagline reads, "Agile Database Release Automation: Accelerate your app releases with database DevOps." The Liquibase Enterprise product aims for faster releases, consistent with rapid development and CI/CD, so that database changes and reviews don't slow down application development.
The DBmaestro vs. Liquibase comparison even diverges in user engagement and strategy: DBmaestro focuses on customers directing development strategy, while Liquibase is geared toward tactical users. DBmaestro provides specific uses of its approach in documentation. The vendor sees DevOps as a proven means to a strategic end and believes the customer should focus on it. Liquibase aligns itself and its documentation specifically with DBAs, with the goal to bring DevOps to databases rather than push the DBA out of the pipeline.
What users like about Liquibase and DBmaestro
Liquibase, like many open source software packages, was built to address a specific need: the synchronization of database and code. Users who considered Datical, and now Liquibase Enterprise, think that the commercial version did a great job of addressing issues in the open source database DevOps tool. The commercial version provides a less geeky version of Liquibase, they say, and they like the vendor's role-based GUI support.
DBmaestro and Liquibase rated comparably for their features that:
- control database versions;
- align database changes and development releases; and
- audit the state of databases or versions.
Neither product's GUI stands out as exceptionally better than the other's. Senior management and compliance teams, however, seem to prefer DBmaestro's high-level features as compared to Liquibase's offering.
Each vendor supports a range of databases with their products. As of this writing, DBmaestro lists Oracle, Microsoft SQL Server, DB2, MySQL, MariaDB and PostgreSQL. Liquibase Enterprise supports a broader range of databases through the contributions of its open source community, including all of the above, plus Apache Derby, Firebird and SQLite.
One feature is critical to users in the database DevOps market: policy control over values and parameters that a DBA would set, such as naming conventions and preferred data types. Without this feature, DBA approvals become a bottleneck in development. Liquibase offered this feature first, but DBmaestro followed in 2018, so it's available from both vendors.
Policy controls are important in DevOps database products because automation means, to some extent, pulling the DBA out of the direct path of changes and change management. In this setup, organizations treat database code like application code; they store it in a repository and subject it to typical app release disciplines. The DBA injects policies to enforce database compliance, rather than personally reviewing database code.
DBmaestro's users like the tool's focus on continuous delivery and automation of the whole development-through-operations pipeline. These users highlight DBmaestro's ample documentation on broad principles, because it suits their strategic initiatives. For example, IT leadership might decide to follow a database DevOps model in response to broad company goals for hybrid cloud.
Users also like the depth of control that DBmaestro provides; the tool automates and audits about as much as Liquibase, but users like how it works. DBmaestro also catches almost every potentially destructive change made to a database, such as an update in test databases not yet rolled into production and vice versa. However, while senior management and compliance teams love DBmaestro's feature set, some DBAs think it takes away too much hands-on control over the environment.
Liquibase focuses on solving a specific problem with a set of capabilities. These capabilities can then expand to address other, related problems for DBAs. Datical users, now working on Liquibase Enterprise, like that it supports, but doesn't mandate, tight integration between database DevOps and the code-centric DevOps pipeline or variants like GitOps. For DBAs who are not comfortable in the policy-setting role, Liquibase's capacity for manual control of database releases is a plus.
Both database automation tools integrate with other DevOps tools, such as Jenkins and XebiaLabs. DBmaestro also counts a variety of Microsoft, Atlassian and IBM products among its vendor integrations. The tools' ability to connect into a DevOps pipeline are fairly equal.
Users do prefer some features of one vendor over the other. Liquibase's policy and rules mechanism has the edge over the later-arriving DBmaestro. However, DBmaestro's GUI and overall higher-level focus draw favor over Liquibase's approach. For most users, it all boils down to that question of high-level strategy verses a tactical approach.
Which database DevOps tool should you choose?
Which vendor gets the nod in this DBmaestro vs. Liquibase Enterprise showdown? To some extent, it depends on your ongoing initiatives and roadmap.
DBmaestro might be the preferred choice to facilitate a major initiative. DBmaestro is a good fit, for example, if you plan to adopt CI/CD, add a major cloud front end to an application, or absorb another company's applications and data. The product encourages -- some would say enforces -- a top-down, compliance-structured, multirole vision of database DevOps. In this vision, DBmaestro is simply part of a bigger picture. The product will do what it is designed to do under the scrutiny of management audits, compliance questions and user references.
For organizations that already take advantage of CI/CD, but have tripped over their approach with databases, DBmaestro might take too much time to get in place and require too many changes to existing practices and policies. Alternatively, Liquibase Enterprise targets a specific role within the larger IT and software organization: the DBA. The product's features aim to relieve the DBA's problems and pressures, and that is the ideal strategy for this type of organization.
We declare Liquibase Enterprise the winner in this database DevOps tools faceoff. For most database DevOps evaluators, a comprehensive strategic approach will be difficult to adopt. First, many software teams have already committed to CI/CD and DevOps practices, which makes it easier -- and less of a tooling need -- to include database release automation. Second, even enterprises that think strategically about DevOps and databases are likely to consider database DevOps an approach to integrate with the larger plans, not a co-driver of those plans.
The DBA is, in nearly every case, the critical player in assessing both database DevOps tools and strategy. Liquibase's approach favors the DBA's role and tactical integration of database DevOps with CI/CD -- and, thus, addresses the current market needs.