Topics

Featured in Development

Peter Alvaro talks about the reasons one should engage in language design and why many of us would (or should) do something so perverse as to design a language that no one will ever use. He shares some of the extreme and sometimes obnoxious opinions that guided his design process.

Featured in AI, ML & Data Engineering

Today on The InfoQ Podcast, Wes talks with Katharine Jarmul about privacy and fairness in machine learning algorithms. Jarul discusses what’s meant by Ethical Machine Learning and some things to consider when working towards achieving fairness. Jarmul is the co-founder at KIProtect a machine learning security and privacy firm based in Germany and is one of the three keynote speakers at QCon.ai.

Featured in Culture & Methods

Organizations struggle to scale their agility. While every organization is different, common patterns explain the major challenges that most organizations face: organizational design, trying to copy others, “one-size-fits-all” scaling, scaling in siloes, and neglecting engineering practices. This article explains why, what to do about it, and how the three leading scaling frameworks compare.

DBmaestro Brings DevOps for Database to Microsoft SQL Server

The database source control and deployment system DBmaestro now offers SQL Server support. This tool, which is also available for Oracle, is designed to be used in environments where multiple instances of a database exist in development, QA, and staging branches that need to be kept in sync with source code changes.

One of the features that make DBmaestro unique is that it doesn’t just version objects. It can also version data, which has been historically a major problem for development teams that use a lot of static lookup tables.

Another distinctive feature of DBmaestro is their enforced change control support for databases. A major risk for companies is the application of ad hock changes to the database. In theory anyone with reasonably high access to the database can just go in and start making changes to table structures, stored procedures, and the like.

DBmaestro’s Change Policy Enforcement, first offered for Oracle, integrates with the database itself to ensure no unauthorized changes are made. DBmaestro claims that database integration is essential here,

Change policy enforcement is integrated with the database engine to make sure it is never bypassed. This unique technology makes sure there are no “out of process changes”. If change policy was not enforced in the database engine, but rather through an application, one could easily bypass it by using another Oracle client tool, various IDEs or even with command line tools. DBmaestro TeamWork makes sure out of process changes are denied execution, and prevented before creating any damage to the database, or your company’s due processes.

To execute a command that changes a database object, the DBA or database developer must use the Check-Out Action to unlock the object within DBmaestro TeamWork. This action guarantees that each change is documented correctly. After the DBA or database developer completes the changes and performs the Check-In Action, DBmaestro TeamWork closes the change cycle by saving the object’s new definition in the repository and setting the object’s status to “locked.

On the deployment side DBmaestro’s deep integration with source control really shines. Most tools simply compare the current database state (objects and/or data) with the desired state. DBmaestro uses a three-way merge that takes into consideration the source of the difference. Their justification for this design is,

There are compare-and-sync tools that compare two database schemas and show the differences between them, but there is a huge risk in relying on these tools. The risk results from the inability to determine the origin of each change. Was the change made in a team’s development environment or in the integration environment after another team had already integrated their changes? This question is difficult to answer without comparing the database schemas to a baseline and without having an accurate audit trail of the changes in each environment (which is an important aspect of version control).