May 9th, 2017 by dbakevlar

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.

DBMaestro

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.

Liquibase

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.

Datical

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

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.

Fitting in

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!

 

 

Posted in Delphix, devops Tagged with: ,

September 30th, 2016 by dbakevlar

The topic of DevOps and and Agile are everywhere, but how often do you hear Source Control thrown into the mix?  Not so much in public, but behind the closed doors of technical and development meetings when Agile is in place, it’s a common theme.  When source control isn’t part of the combination, havoc ensues and a lot of DBAs working nights on production with broken hearts.

together

Control Freaks

So what is source control and why is it such an important part of DevOps?  The official definition of source control is:

A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, computer programs, large web sites, and other collections of information.

Delphix, with it’s ability to provide developer with as many virtual copies of databases, including masked sensitive data, is a no-brainer when ensuring development and then test have the environments to do their jobs properly.  The added features of bookmarking and branching is the impressive part that creates full source control.

Branching and Bookmarks

Using the diagram below, note how easy it is to mark each iteration of development with a bookmark to make it easy to then lock and deliver to test, a consistent image via a virtual database, (VDB.)

  • Screen Shot 2016-03-09 at 1.28.07 PMNote the feature branches, but every pull and checkout should be a test of the build, including the data.
  • How do we include the data? We connect the source databases (even when the source was multi-terabtytes originally) to Delphix and now we have production data in version control synchronized from all sources
  • This is then a single timeline representing all sources from which to develop, branch and test.
  • After each subsequent development deployment, a branch is created for test in the form of a VDB.  The VDB’s are all read/write copies, so full testing can be performed, even destructive testing.  It’s simple to reverse a destructive test with Delphix Timeflow.
  • After each test succeeds, a merge can be performed or if a problem occurs in the testing, a bookmark can be performed to preserve the use case for closer examination upon delivery of the VDB image to development.
  • The Delphix engine can be kept keep the environment sync’d near real-time with production to deter from any surprises that a static physical refresh might create.
  • Each refresh only takes a matter of minutes vs. days or weeks with a physical duplicate or refresh process.  VDBs save over 70% on storage space allocation, too.

Delphix is capable of all of this, while implementing Agile data masking to each and every development and test environment to protect all PII and PCI data from production in non-production environments.

Delphix, DevOps and Source Control-  a match made in heaven.

Posted in Delphix, devops Tagged with: , ,

  • Facebook
  • Google+
  • LinkedIn
  • Twitter