Different combination in the game of tech create a winning roll of the dice and other times create a loss. Better communication between teams can offer a better opportunity to deter from holes in development cycle tools, especially when DevOps is the solution you’re striving for.
It doesn’t hurt to have a map to help guide you. This interactive map from XebiaLabs can help offer a little clarity to the solutions, but there’s definitely some holes in multiple places that could be clarified a bit more.
The power of this periodic table of DevOps tools, isn’t just that they are broken up by the tool type, but that you’re able to easily filter by open source, freemium, paid or enterprise level tools. This assists in reach the goals of your solution. As we all get educated, I’ll focus horizontally in future posts, but today, we’ll take a vertical look at the Database Management tier and where I specialize first.
Apples aren’t Apfel
When comparisons are made, it’s common to have the inability to do apple to apples. Focusing on the Database Management toolsets, such as Delphix, I can tell you that only Redgate I view as a competitor and this only happened recently with their introduction of SQL Clone. The rest of the products shown don’t offer any virtualization, (our strongest feature) in their product and we consider Liquidbase and Datical partners in many use cases.
Any tool is better than nothing, even one that helps you choose tools. So let’s first start to discern what the “Database Management” tools are supposed to accomplish and then create one of our own. The overall goal appears to be version control for your database, which is a pretty cool concept.
The first product on the list is something I do like because the natural “control issues” I have as a DBA. You want to know that changes to a database occurred in a controlled, documented and organized manner. DBMaestro allows for this and has some pretty awesome ways of doing it. Considering that DevOps is embracing agility at an ever increasing rate, having version control capabilities that will work with both Oracle SQL Developer and Microsoft Visual Studio are highly attractive. The versioning is still as a code change level and not at the data level, but it’s still worthy of discussion.
That it offers all of this through a simple UI is very attractive to the newer generation of developers and DBAs will still want to be part of it.
This is the first of two companies we partner with that are in the list. It’s very different from DBMaestro, as it’s the only open source in the database management products and is works with XML, JSON, SQL and other formats. You can build just about anything you require and the product has an extensive support community, so if you need to find an example, it’s pretty simple to do so online.
I really like the fact that Liquibase takes compliance into consideration and has the capability to delay SQL transactions from performing without the approval from the appropriate responsible party. It may not be version control of your data, but at least you can closely monitor and time out the changes to it.
Where Liquibase partners with Delphix is that we can perform continuous delivery via Liquibase and Delphix can then version control the data tier. We can be used for versioning, branching and refreshing from a previous snapshot if there was a negative outcome in a development or test scenario, making continuous deployment a reality without requiring “backup scripts” for the data changes.
Redgate SQL Control
Everybody love a great user interface and like most, there’s a pretty big price tag that goes along with the ease of use when adding up all the different products that’s offered. There’s just a ton that you can do with Redgate and you can do most of it for Oracle, MSSQL and MySQL, which is way cool. Monitor, develop, virtualize, but the main recognition that you’re getting with the periodic table for DevOps tools is for version control and comparisons. This comes from the SQL Control product from Redgate and offers quite a full quite of products for the developer and the DBA.
This is another product that we’ve partnered with repeatedly. The idea that we, as DBAs can review and monitor any and all changes to a database is very attractive to any IT shop. Having it simplified into a tool is incredibly beneficial to any business who wants to deliver continuously and when implemented with Delphix, then the data can be delivered as fast as the rest of the business.
Idera’s DB Change Manager can give IT a safety net to ensure that changes intended are the changes that happen in the environment. Idera, just like many of the others on the list supports multiple database platforms, which is a keen feature of a database change control tool, but no virtualization or copy data management, (CDM) tool exists or at least, not one exists any longer.
So where does Delphix fit in with all of these products? We touched on it a little bit as I mentioned each of these tools. Delphix is recognized for the ability to deploy and that it does so as part of continuous delivery is awesome, but as I stated, it’s not a direct apple to apples comparison as we not only offer versioning control, but we do so at the data level.
Delphix Jet Stream
So let’s create an example-
We can do versioning and track changes in releases in the way of our Jet Stream product. Jet Stream is the much loved product for our developers and testers.
I’ve often appreciated any tool set that allowed others not only to fish instead of me fishing for them, Offering the Developer or Tester access to the administration console meant for a DBA can only set them up to fail.
Jet Stream’s interface is really clean and easy to use. It has a clear left hand panel with options to access and the interaction is direct on what the user will be doing. I can create bookmarks, naming versions, which allows me the ability to
If a developer is using Jet Stream, they would make changes as part of a release and once complete, create a bookmark, (a snapshot in time) of their container, (A container here is made up of the database, application tier and anything else we want included that Delphix can virtualize.)
We’ve started our new test run of a new development deployment. We’ve made an initial book mark singing the beginning of the test and then a second bookmark to say the first set of changes were completed.
At this time, there’s a script that removes 20 rows from a table. The check queries all verified that this is the delete statement that should remove the 20 rows in question.
SQL> delete from kinder_tbl where c2 like '%40%'; 143256 rows deleted. SQL> commit; SQL> insert into kinder_tbl values (...
When the tester performs the release and hits this step, the catastrophic change to the data occurs.
Whoops, thats not 20 rows.
Now, the developer could grovel to the DBA to use archaic processing like flashback database or worse, import the data back into a second table and merge the missing rows, etc. There’s a few ways to skin this cat, but what if the developer could recover the data himself?
This developer was using Jet Stream and can simply go into the console, where they’ve been taking that extra couple seconds to bookmark each milestone during the release to the database, which INCLUDES marking the changes to the data!
If we inspect the bookmarks, we can see that the second of three occurred before the delete of data. This makes it simple to use the “rewind” option, (bottom right icon next to the trash can for removing the bookmark) to revert the data changes. Keep in mind that this will revert the database back to the point in time when the bookmark was performed, so ALL changes will be reverted to that point in time.
Once that is done, we can verify quickly that our data is returned and no need to bother the DBA or the concern that catastrophic change to data has impacted the development or test environment.
SQL> select count(*) from kinder_tbl where c2 like '%40%'; COUNT(*) ---------- 143256
I plan on going though different combinations of tools in the periodic table of DevOps tools and show what strengths and drawbacks there are to choices in implementation in upcoming posts, so until the next post, have a great week!