Video
Accelerate Testing with Data Bookmark, Test, and Rewind in Perforce Delphix: Tutorial
Data Management,
DevOps
Testing with fresh, compliant data is essential for faster releases and efficient QA. Traditional data provisioning often slows teams down, creating delays and bottlenecks. Perforce Delphix removes these barriers by giving teams self-service access to lightweight, production-quality data environments they can manage on demand.
This video demonstrates how Delphix transforms test data management. Principal Solutions Engineer Carlos Cuellar walks through key features — including bookmark, test, and rewind — showing how you can quickly create virtual databases, save and restore data states, and automate testing workflows through Jenkins and Delphix APIs. The result: faster, more reliable testing with less effort.
This video will show you how to:
- Provision Lightweight Virtual Databases: Deliver fast, compliant copies of production data to non-production environments without the storage overhead.
- Utilize Data Bookmarks: Create immutable snapshots of your data at any point in the testing process to establish a reliable baseline or save a specific state.
- Execute Isolated Tests: Run multiple, parallel tests on independent data copies without impacting other development or QA activities.
- Instantly Rewind Data: Roll back a database to a previous state in minutes, allowing you to quickly reset after a failed test or re-run tests on a clean dataset.
- Automate Data Operations: Integrate Delphix into your CI/CD pipeline, as demonstrated with Jenkins, to fully automate your test data lifecycle.
- Accelerate Release Cycles: Significantly compress testing timelines, identify defects earlier, and increase overall developer productivity.
Ready to Transform Your Test Data Management?
See how Delphix can empower your teams to build, test, and release software faster. Request a personalized demo today to discover how Delphix data virtualization can help you achieve your DevOps goals.
Accelerate Testing with Delphix
Full Transcript
Hi, everyone. My name is Carlos Cuellar. I'm a principal solutions engineer for Perforce Delphix. And today, we are going to be talking about Delphix's bookmark, test, and rewind capabilities.
Let's do a quick recap about what Delphix is. Delphix is a DevOps data platform that will allow you to deliver production data to non-production environments in the form of lightweight copies, which we call virtual databases.
Throughout that process, we also have the ability to discover where you have sensitive information and mask that data with realistic but fictitious data with the added value that we remain consistent across multiple data sources.
Once you have virtual databases, we also have a self-service functionality that will enable development, test, QA, and application teams to be able to use their data for every project that they're working on, refresh with latest data from production, take backups, and even roll back to a previous point in time.
So, talking a little bit more in detail about how that virtualization works, Delphix connects to where your data is in a production environment.
It will use backups to ingest that data. Since Delphix is not disruptive, it is going to construct a timeline with all the backups that we keep ingesting. This will enable you to create multiple copies of how the data was when that backup was taken.
Delphix is going to compress those backups by up to one-third, and then it is going to allow you to create these lightweight copies, these virtual databases.
And because we are not copying block-by-block, these are going to be extremely small at the beginning.
And on top of that, because Delphix is creating these VDBs, Delphix will also create a timeline for every VDB, and that will allow you to execute data operations, which means you are going to be able to refresh with latest data from production, take backup, and go back in time because Delphix will keep track of everything that is happening on that database.
And with self-service, you are going to have full control in terms of all these data operations, and you are going to be able to give those privileges to application teams so they can execute by themselves all the operations that they need for development, testing, or anything that they want to do. So they will be able to get the data that they need for every activity and execute test and see the data that they needed on that particular phase in their testing or development process.
So this is a very quick example of how that will look. You can create a bookmark, which is effectively taking a backup, run a test, a couple of tests, and then go back in time. So this will allow you to accelerate releases, catch defects earlier, and you are going to be able to, at the end of the day, increase the productivity within your organization.
So now let's go to my environment, and I can show you how it looks.
So I have this source, which is the representation of the backup that I have ingested from an Oracle database that is called Oracle master, and I have created a copy of that Oracle master, a virtual database called VDEMO1.
So if I go here, I can show you that I have VDEMO1, and this is the database that I am going to be using for this testing.
What kind of data do I have? Well, I have only three tables I am going to be using to demonstrate all these operations.
I have a connection to my production source.
I'll execute these queries so you can see what kind of data I have.
For my clubs
table, I have 30 rows. For my players
table, I have 950, and for national_teams
I have 20.
And then my VDEMO1 virtual copy has the same amount of data because it's a full copy, a like-for-like copy of production. So you will see that also we have 30 records for clubs.
We have 950 for players, and we have 24 for national teams. So, that's our baseline.
So what are we going to be doing with this?
This next slide is a representation of the process that we are going to be going through.
With Delphix, we are going to accelerate this test cycle. So here, we are assuming that we are going to be running three tests.
So we'll rely on bookmarks and rewinds operations in Delphix to be able to execute this test the way that we need it and with the data that we need. So first, we will create a bookmark so we have a backup before we start.
We run test number one, which is inserting data in a couple of tables that we are working with. We create another bookmark after test number one, and this is going to be key. We'll see a little bit later why.
We'll run test number two, where we'll drop one table.
We'll take another backup. We'll create another bookmark after test number two. And then test number three is going to be to update some values that we inserted initially.
But because we dropped one table, we are not going to be able to do it. So, we need to go back and present the data that we had after test one. So we will roll back to how the data was right after test one, and then we will run test number three. We'll create a bookmark after test number three, and then we will validate. And that's going to be our entire workflow.
I'm going to be switching back here to my demo environment. And, for this demonstration, I'm going to show you as well how you can automate these processes. So here in Delphix, you can see the sources, VDBs. You can execute all the operations here, but I'm using the API to execute all those operations.
So I'm going to go here to my pipeline that will represent every phase, and I'll show you the output and also from the GUI how everything gets executed.
So now I have started executing my process, and I'll show you the workflow of how everything is going. So right now, we are creating that very first bookmark before we execute anything. So if I go back to my Delphix dashboard, I will be able to see that operation being executed.
And because it's going on, Delphix is already representing that we are creating a bookmark. So if I go to my VDEMO1 database, I'll see that Delphix is creating this particular bookmark.
Go back to Jenkins, and once this is completed, it will move forward step-by-step.
Now we can see that it has moved forward. So my automated process already created that first bookmark before anything happened, then it ran test number one. We can see it is going to add records to both players
and clubs
tables. We started with 950 rows in the players
table and 30 in the clubs
table. If I go all the way down, we see that we added five records on each table.
Then right now, we are creating another bookmark after test number one. And why are we doing this? Because we want to see that data, and we are going to use those records to be able to update them on test number three.
Now if I go back to Delphix, I'll see that, yes, that bookmark is being created and that operation is taking place.
So we can see here that in Jenkins, this operation of create bookmark is being executed, and this is from the Delphix side.
Now that bookmark has completed, we have a new bookmark after running test number two, but we need to roll back to how the data was after test number one so we can execute test number three. So now we are executing our rollback operation so we can present the data that we need to be able to execute our test number three. This operation is going on right now, and we can see from Delphix as well that it's happening and it's going back to that point in time where we need to see the data, how it was after that test number one was executed.
Now our rollback operation has completed, so we went back to the state that we needed for our testing.
Then we ran our test number three, and here we can see what are the things that we ran.
So we first validated what are the records that we're going to be updating from the players
table.
So that means that we recovered that data and we went back to the state that we needed, and then we updated that data. And we can see here that we changed the club ID for these particular three players.
Then after this test was completed, we're finally taking another backup, creating a new bookmark.
And then after that, we're only going to validate that the execution was successful.
So our pipeline has completed. We have successfully executed every single step, and we are validating that everything ran fine in our process. Now we can go back to Delphix, and we can confirm all the bookmarks that we created for this particular VDB, which are the different states where we saw after every test that we ran.
So here we have before executing anything, after test number one, two, and three. So this is a very powerful component that you can leverage Delphix for, where you can present the data and have the data in the state that you need it for every single test and for every single development task. This will accelerate every process that you are going to be executing.
So thank you very much for your time.