This post was authored by Rohan Kumar, General Manager, Database Systems Group

SQL Server 2017 makes it easier and simpler to work with data, with more deployment options than before and monthly preview releases offering regular innovation and improvements. The momentum behind these new options is clear. We are excited to mark a new milestone: Last week, SQL Server on Linux passed 1 million pulls of its container image! The image has been on Docker Hub for the six months since we first launched the SQL Server on Linux public preview in November 2016, with steadily growing customer use. In fact, we now have customers like dv01 going into production with SQL Server 2017 in Docker containers using the production support agreement from our Early Adoption Program (EAP). The container image is also available in the Docker Store, where it’s currently one of the featured images.

Customer interest in containers is high because of the benefits for production, and especially development and test: consistent and reliable behavior across environments, in a lightweight and easy- to-use format. Containers are fast to set up, can easily be stopped and started, and give users the ability to spin up multiple containers together using tools like docker-compose to easily start and interconnect database, application, and other services containers in a micro-services architecture.

SQL Server on Linux containers has been tested extensively in our test lab over the course of SQL Server 2017 public previews. We have been deploying SQL Server on a 150-node Kubernetes cluster in Azure to test each successive monthly Community Technology Preview (CTP). For each test pass, we automatically deploy 750 containers and run over a million tests. In addition to Kubernetes, we are testing on other container platforms with our partners and the community, including Red Hat OpenShift, Docker Swarm, and Mesosphere DC/OS.

Financial technology startup cuts database management time by 90 percent

Customers are already adopting SQL Server in containers. dv01 is a Wall Street startup, offering a reporting and analytics platform to institutional investors interested in greater insight into consumer lending markets. dv01 had initially based its solution on PostgreSQL and Amazon Redshift, but moved to SQL Server 2016 in Windows Azure Virtual Machines for faster query response times and scalability as its data grew. Because the firm runs all its other workloads on Linux, dv01 signed up for the Early Adoption Program for SQL Server 2017 to get Microsoft advice and assistance on migrating its solution to SQL Server on Linux. This move will help the company avoid managing multiple operating systems within its environment. It opted to deploy the application to production on Docker Engine, using a SQL Server 2017 on Linux image. Its choice to implement SQL Server and Docker containers has cut database management time by 90 percent, freeing its development team to focus on adding new capabilities to the product. To learn more about dv01’s SQL Server 2017 journey, you can read its story here.

“SQL Server 2016 offered the combination of performance and scalability that we needed,” said Dean Chen, VP of Engineering, dv01. “Expensive queries that were taking 30 seconds or more with our previous system now take 1-2 seconds, which means we’re able to do analytics queries in close to real time for our users.”

Making SQL Server on a Linux Docker container easy

With SQL Server 2017 CTP 2.1, available today, we continue to add to the manageability features for SQL Server on Linux Docker containers. We have introduced the ability to configure the SQL Server configuration settings through environment variables passed as parameters to docker run. This enables some of the most common SQL Server configuration scenarios in Docker containers, such as setting the server collation when creating a new SQL Server instance in a container. If you’d like to learn more about the SQL Server 2017 CTP 2.1 release, read our detailed blog for information on the other enhancements and how to get started with the preview.

We want to make it as easy as possible to get started with this technology. If you’d like to learn about how to get started with building a data-centric CI/CD pipeline using SQL Server on Linux containers, join SQL Server engineers Travis Wright and Tobias Ternstrom for this how-to video from the Microsoft Build event for developers.

Reasons to consider running SQL Server in containers

In many ways, container technology is at an inflection point much like hypervisors were 15 years ago. The benefits are immense and increasing every day and include the following:

  • Reduced size on disk for better hardware utilization
  • Reduced CPU/memory consumption, which also results in better hardware utilization
  • Reduced deployment size for faster deployments and scale up/down
  • Reduced patching for less effort, less vulnerability, less down time
  • Better composability using layers of Images, applications defined as multiple containers
  • Easier sharing with Docker Hub and Registry

But in some cases, there are still areas for improvement. For example, configuring high availability in a container platform is not well defined yet. Persistence to local and remote storage is still relatively new and is a complex area of any container platform. Because containers are still new, finding people that are experienced in working with containers can be a challenge. We look forward to working with the community to expand on and refine the capabilities of container platforms in the months to come.

The road ahead for SQL Server in containers

We are targeting support for SQL Server on Linux containers by General Availability of SQL Server 2017 later this year. Customers in our Early Adoption Program can deploy into production on containers right now with full support of our support and engineering teams. We have created a GitHub repository called mssql-docker where you can get Dockerfiles, example entrypoint scripts, and provide us with feedback and feature requests. It’s also a great place to engage with other people running SQL Server in containers.

We are also working on testing SQL Server in Windows containers, including SQL Server 2016 SP1 Developer and Express editions and SQL Server 2017 Evaluation edition. The Windows container images are available now on Docker Hub for testing and experimentation as well.

Thanks again to our community for your interest in and support for SQL Server in containers. We look forward to your continued feedback.

–Rohan Kumar, General Manager, Database Systems Group