DelphixOracle

Development and the Importance of Containerizing

I’ve been at KSCOPE 2017 all week and it’s been a busy scheduled even with only two sessions.  Its just one of those conferences that has so much going on all the time that the days just speed by at 140MPH.

As with most major conferences, KSCOPE abstract submission was about 9 months ago.  This was a time when I was just coming to grips with how much Delphix could solve in the IT environment and may have been one of the first abstracts I submitted as a Delphix employee.  I wasn’t too thrilled with my choice and thank KSCOPE for still accepting me as a speaker, so the end product that I presented was very different than what I submitted.

I was in the DBA track, but after arriving, I started to push out on my network that I was building a developer presentation perspective with our development/tester interface, Jet Stream.  One of the challenges I experienced as a developer, a release manager and my many years as a database administrator was in releasing to multiple tiers.  This complexity has become an increasing pain point with the introduction of agile methodologies.

The demonstration example was an agile development team of a web developer, a tester and a database administrator team.  They were to bulk load new employee data to save the business from having to manually enter data and ensure that the numbering order of the employee ID was sequenced.

I proceeded to build out an environment this week in the cloud that would represent such an environment.  It consisted of our common employee web application, an Oracle database to store the employee information, some structured flat files of employee information and some scripts to load this information from the files.  These were all then used to create development and test environments and created containers to track changes via Jet Stream as each new step of the development and testing occurred.

In newer agile development shops, the DBA may also be an integral part of the development team and in this scenario, this demonstrated how we may solve problems in the database can be in conflict with how an application was designed to function, causing downtime.  With the container of Virtual Database, (VDB), Virtual File Directories, (vfiles)-  virtualized development environments that are complete read/write copies to use for development and test, we were able to use Jet Stream to version control not just the code changes, but the data changes, too.

In my demo, I showed how the bulk load process, designed by the DBA, had created a sequence and trigger on the table used to populate the employees table with data from the structured flat file, then proceeded to load it.  The data loaded without issue and the employee ID was now sequential-  requirement solved and job complete.  It was simple to then create a bookmark in the timeflow and noting what had been done in that iteration.

The problem was, post the bulk load of the data, the change actually broke the application and no new employees could be added through the interface.  We proved this by attempting to add an employee in the application and then querying the database to verify that it wasn’t just the application that wasn’t displaying the new employee addition.

I was able to demonstrate in Jet Stream, that instead of using rollback scripts and backing out files to previous versions, I was able to quickly “rewind” to the “Before 2.7 release bookmark” and all tiers of the container were reset to before the data load, saving considerable time and resources for the agile team.

If you’d like to learn more about Jet Stream, Templates, Containers or how this can provide incredible value in our hectic agile DBA and development lives, check out the following links:

Delphix Jet Stream PDF

Valuable Jet Stream Concepts

Jet Stream Container Overview

 

 

Kellyn

http://about.me/dbakevlar