Windocks 2.0 - The First Port Of Docker’s Open Source With Integrated Web UI And Database Cloning

Windocks 1.0 was released in April of 2016, featuring support for the full windows OS family and support for Microsoft’s full technology stack, including all editions of SQL Server 2008 onward. In the year since, thousands have explored the use of .NET and SQL Server containers, and Windocks has become popular for delivery of SQL Server environments for development and test.

During the year we benefitted from extensive customer feedback, and the opportunity to work with a number of ISVs and partners. We support customers that combine SQL Server containers with snapshots and clones provided by NetApp, EqualLogic, and other storage arrays. These solutions work great, but aren’t available for many, and can be complex to implement and maintain.

The consistent feedback has been, “give us a simpler, affordable method for working with large data environments.” To address these needs, we developed the first container engine with both an integrated web UI, and database cloning. This article outlines the Windocks 2.0 web UI. 

Windocks 2.0 installation and starting the web UI

Windocks features a fully automated installation that will set the required Windows roles and features on any edition of Windows 8, Windows 10, Windows Server 2012, and Windows Server 2016. While support for .NET is included with redistributable DLLs, SQL Server image support is based on a default installation of SQL Server on the host. The advantage of this approach is the freedom to add containers to existing systems, and use Microsoft’s current licenses with containers (SQL Server licenses include additional “named instances”). Microsoft’s new containers built into Windows Server 2016 will include new, yet undisclosed, license terms for use with SQL Server. 

A fresh install of Windocks 2.0 takes 10-15 minutes, and requires a reboot of the system to complete the setup. Existing Windocks system can be updated with a momentary stop of the daemon, an update of the Windocks binaries and restart of the daemon. Existing containers are not affected during an update.

Upon completion the web UI is launched by opening a browser with a “localhost” address. The web UI is directed to the localhost (127.0.0.1) or a network based host. In the example below we work with an AWS hosted instance. The UI provides a listing of available images, and containers, and a tool to select Dockerfiles and folder to build new containers and images. A full range of options for managing containers is also included.

Windocks

A tool for Developers, Testers, and DBAs too

The web UI was designed to provide an alternative to Docker’s standard CLI, for developers and testers. A single click on an image will deliver a container in seconds with data. SQL Server DBAs can build images using the standard Docker client CLI or use the web UI. The “Choose Files” tool is used to select a Dockerfile and associated databases and scripts to build a container or image.

Dockerfiles define the configuration of a container, beginning with the image and followed by files that are copied and run in the container. A sample Dockerfile is shown here from the Windocks samples folder: \\windocks\samples\testdotnet.

Windocks 

To build the container navigate to the folder, select the files, right-click and “select,” and click on “new container.”

Windocks

Within a few seconds the container is built, and can be started and committed to form a new image.

Windocks 2.0 with database cloning

Feedback from early Windocks 2 users is very positive on the new web UI, but feedback is equally bullish on the integrated database cloning. Windocks SQL Server database cloning utilizes Hyper-V virtual disks. A parent Docker container image is created using database files (mdf, ndf, and ldf), or by restoring a backup. Each parent image is a full byte copy of the database environment, and can incorporate data masking implemented with SQL scripts. The parent image is cloned to deliver SQL Server containers with mounted cloned databases. A 1 terabyte environment is cloned and delivered with a SQL Server container in seconds, and requires less than 5% of the storage of the parent image.

Parent clonable images are built with a single command and Dockerfile, as shown. Once the clonable image is available, a single click on the web UI is used to provision running containers with the cloned data environment. Each cloned environment is writable, and can be updated with Differential backups. 

Windocks

Deliver Production data environments for Dev and Test in seconds

Windocks 2 cloning is based on Hyper-V, but the design is extensible and we’re collaborating with other vendors to provide support for alternative cloning solutions. SQL Server containers align with Microsoft’s and industry movement to embrace Docker based tooling to deliver named instances in seconds. Combining containers with a one-step process of creating a clonable database image, based on backups, is the easiest, most efficient, and affordable solution on the market. 

Check it out yourself by downloading a free download of the Windocks 2.0 Community Edition.