Cloud

A Better Hybrid Cloud: move .NET and SQL Server Server Apps between AWS and Azure in 90 Seconds!

We've been working on proving the use of containers for High Availability and Disaster Recovery, and in this blog we explore workload migration and suport for cloud based development.


The continued growth of AWS and Azure is testament to the preeminence of cloud computing, but public cloud adoption by the enterprise has been constrained by inadequate portability of VMs and enterprise data. Gartner has recently offered new insights and continues to emphasize that Hybrid clouds are strategically important.

WinDocks is a port of Docker’s open source project to Windows, with support for .NET and SQL Server containers, and the full Windows Operating System family. We partnered earlier this year with NetApp, and our efforts have taken a step forward recently with the addition of DevOps and Automation expertise of WireStorm. This project owes much to the good work of the WireStorm team.

A New Approach to Hybrid Cloud: Containers combined with NetAPP DataFabric

The ambition to move into the public cloud is hindered by the challenges of application and data portability. These challenges stand in the room like two great elephants, leaving us scratching our heads searching for a solution.

Containers give us a new ability to move, deploy, and re-deploy applications quickly. Integrating containerized applications with NetApp’s Data Fabric technology should open up new options for moving workloads between on-premise and the public cloud. In this project we combined containers with NetApp Data Fabric to pursue the following goals:

  • Provision an entire .NET + SQL Server environment with the latest production data and code in under two minutes
  • Leverage a cloud-based Disaster Recovery environment to support development
  • Push the limits on application and data consolidation to achieve a minimum of 10:1 consolidation in virtual machines used for development

.NET + SQL Server with the latest code and data, in a new Cloud, in 90 seconds

Our test is based on a production 200 GB database that is replicated via a VPN between a NetApp ONTAP Cloud system in Amazon and a second system in Azure. The replication moves changes to the database, so once the starting copy is completed the ongoing traffic is minimal. To support a development process, a PowerShell script is run against the replicated data to create a new set of FlexClones based on the replicated snapshot copy and mount the clones to SQL Server container instances. As a port of Docker’s open source project to Windows, WinDocks is compatible with standard Docker client commands and DockerFiles, which are used in the PowerShell script to accomplish these steps. The process continues by building a .NET container, pulling the latest code from the Source Control system, and starting the .NET application. The architecture of the solution is illustrated below.

Hybrid Cloud Image2 650x177

In this environment, the production database server lives in an Amazon EC2 instance and the databases reside on a NetApp ONTAP Cloud system. NetApp SnapMirror technology is used to keep the sites, in this case cloud environments, in sync over an IPSEC VPN between AWS and Azure. Since the data is already replicated, we can leverage the built-in cloning technology of NetApp to present full copies of the storage to the SQL Server containers. Each database is almost 900GB in size but clones in a matter of seconds. This integration allows each WinDocks container to instantly start working with a dedicated copy of the database and the cloning delivers tremendous storage savings.

In 90 seconds integrated and running .NET + SQL Server environments are provisioned with a mounted cloned database, using the latest data and code. We can deploy ten or more of these isolated and integrated environments on a single, dual core VM with 8 GB of RAM. This drastically reduces the number of build environments and lowers the cost of maintaining copies of data. Using NetApp cloning we saw a 10:1 space savings for the ten container sets that were deployed. Where it is common for a team of 10 to require as many as 20 or more VMs, this solution delivers great performance on a single VM, yielding dramatic license and operational savings.

High Availability and Disaster Recovery

The premise of our design is that many organizations are employing a public cloud to support Disaster Recovery, and these systems can provide support for cloud based development. For Disaster Recovery the time to recovery could be shortened by mounting the recovery database to a container, which would yield a time to recovery roughly equivalent to the development environment (90 seconds). On the other hand, many enterprises would choose to start a new VM to host the production database (without a container), in which case the time to recovery would be a handful of minutes to launch the new VM. For this project, we have a stand-by server built using our automation and is ready to start. Because the storage handles the replication, we can leave this system powered off and reduce the cost of our cloud disaster recovery solution.

Conclusions

.NET and SQL Server containers combined with NetApp solutions is a new option for hybrid cloud support that provides compelling benefits:

  • .NET + SQL Server containers combined with NetApp Data Fabric delivers application and data portability between private and public clouds.
  • A DR system can be used to support .NET and SQL Server development environments, provisioned in seconds, on a single VM.
  • .NET and SQL Server containers allow a dramatic reduction in VMs used in development (up to 20 to 1).

Not surprisingly, the Wirestorm and WinDocks team will be demonstrating the solution at NetApp Insight later this month (Las Vegas, September 26 – 28, 2016). To learn more about how containers can work for you, visit our web site and download a free Community Edition of WinDocks at WinDocks Community Edition

Similar posts

Get notified on new test data management insights

Be the first to know about new insights on DevOps and automation in the test data management space.