Over 300 days, 30 builds, 4,000 beta users and 1,000 cups of coffee later and … we’ve shipped version 1 of our new database provisioning tool, SQL Clone.
So what is SQL Clone? What’s in version 1? What’s on the roadmap? Oh, and some of you may be wondering, what’s the sheep all about? Let’s start by taking a look at the problems those carrying out database provisioning constantly face.
The first is simply the time it takes to create a database copy on each of the various development, test and delivery environments, either by restoring the latest backup or by performing a build and then importing test data. The second is the disk space that is required to do all this.
Of course, both problems intensify for bigger databases and for those that contain sensitive data. Add to all this the pressure to meet the team’s demand for refreshed copies, which are often unplanned, and the process can feel like a long, inefficient and disruptive task.
What is SQL Clone?
SQL Clone is a database provisioning tool that removes many of these concerns. With SQL Clone, database copies can be created in seconds and each copy uses just tens of megabytes of disk space, no matter the size of the original database.
Provisioning requests can be dealt with very quickly, and each developer can work in isolation on their own local copy. After all, every developer makes mistakes and when using a shared development database this can sometimes bring the entire team to a complete standstill.
Compare that to most development teams, where the database provisioning process involves some element of compromise. Teams will often work with up-to-date schema but just a small sample of data to keep the disk footprint small. This may be sufficient for some tests but doesn’t accurately reflect how the application will behave in production against larger volumes of data with realistic distribution.
SQL Clone removes the uncertainty of encountering unexpected results in production and allows teams to test code against up-to-date schema and data. Instead of spending hours provisioning different copies of the database for development, testing, or QA, and using terabytes of disk space, SQL Clone makes it fast, small and simple.
How does SQL Clone work?
Well it’s not quite magic, it’s just clever use of the proven virtualization technologies built into Windows but, like any good magician, SQL Clone makes it look incredibly simple.
Creating a database clone is a two-step process, and because of this there are two concepts you need to understand. The first is an ‘image’ and the second, a ‘clone’. Ultimately you want to create a database copy, a clone, on each target server, but before you can create these instant clones you first need to create a data image.
The image is a full copy of the database at a point in time and includes the schema and data, with the image taken directly from a live database or a backup file. As the image is a full copy of the database, it will take as long as a backup or restore to create and will require the same amount of disk space. However, the inbuilt PowerShell functionality means this can be automated, for example during a night time maintenance window.
The image is independent of the original database and is immutable, meaning it cannot be edited or changed. Once you have the image, you can create and deploy multiple clones. The clones take seconds to create and use just megabytes of disk space, and this is where you’ll start to think it’s magic:
Multiple clones can be connected to a single image and, while each clone references the source image for data, any changes made to each local clone are stored in a local differencing disk, meaning that these changes are isolated.
Sounds smart? We think so! Over the past ten months, we’ve been building, testing and rebuilding SQL Clone with feedback from over 4,000 early access users across the world, in industries ranging from finance to technology.
SQL Clone is already transforming the way some organizations provision and work with databases to improve the entire development cycle. One of our early access users, Paymentsense, managed to reduce provisioning time and massively improve testing by giving individuals cloned databases to accurately develop and test against:
We’ve cut the time for database provisioning by more than 85%, which is a really quick win for us.
Ahmed Althamari, Senior SQL Server DBA, Paymentsense
If you’d like to find out more about the Paymentsense story, check out the case study.
What’s in version 1?
So after all this testing and rebuilding, what’s made it into version 1?
- The creation and management of images and clones through a central management web UI (SQL Clone Server)
- The ability to view the progress on any outstanding tasks, such as the creation of images
- Automation and scheduling to create and remove images and clones through a versatile PowerShell interface
- The facility to create a new image from a clone, allowing for sensitive data to be manipulated
- The addition of permission settings to control who can access the SQL Clone Server and PowerShell cmdlets
- Automatic updates to agents when updating the SQL Clone Server
Want to know what additional features are coming up? Like every development team our backlog is full of ideas for how we could progress SQL Clone in 2017. Take a look at the roadmap.
Over to you
So there you have it. With SQL Clone, database copies can be provisioned in seconds using just megabytes of disk space. Individuals can now work locally on up-to-date, isolated database copies to speed up development, accurately test code, and fix issues faster.
We think it’s Bahhhrilliant! (A bad pun, but there is occasionally a time and a place for them.)
For a short introduction to the software in action, why not watch our demo video?
Was this article helpful?