Home > Workload Solutions > SQL Server > White Papers > SQL Server 2019 Containers on Linux > Use Case 1 review
The key benefit in our first use case was the transformation from the traditional installation and configuration of a SQL Server environment to using Docker containers. The traditional build process is complex and involves a great deal of time and planning. With Docker containers, the traditional build process is transformed into a self-service on-demand experience that enables developers and others to rapidly deploy applications. Using Docker containers offers many advantages. The primary benefit in this first use case is the capability of having a SQL Server container and persistent storage running in a matter of minutes.
While setting up the Docker container environment for this use case, we learned valuable lessons regarding server environment configuration and its impact on the cost of Docker licensing. Use Case 1 planning also demonstrated the importance of selecting the Docker registry location and storage provisioning options that are most appropriate for the requirements of a particular dev/test environment.
Dell Technologies offers a broad selection of servers, enabling customers to configure their compute to match business requirements. The vast PowerEdge server configuration choices means that you can optimize the Docker Enterprise Edition per-core licensing. We recommend investing time into designing a PowerEdge server environment that maximizes your Docker licensing investment. The key to getting the greatest return on your Docker environment is consolidation that maximizes the efficiency of CPU utilization.
When selecting the location for a Docker registry, consider ease of use and support, speed of container provisioning, and frequency of container provisioning. Container provisioning speed and frequency requirements help in determining where the registry resides. For example, for low-speed and low-frequency provisioning, a cloud-based registry approach might be ideal. High-speed provisioning coupled with high-frequency provisioning can mean that a local private registry using a LAN is best.
Provisioning storage from the XtremIO X2 array is fast and easy but is also a manual process that requires coordination between the developer and the storage administrator. In this use case, we demonstrated the manual provisioning of storage, which can work well for small development environments. For larger development environments, or for customers who are interested in automation regardless of the environment size, Use Case 2 shows how Kubernetes combined with the XtremIO X2 CSI plug-in accelerates storage provisioning.
In Use Case 1, we used bind mounts, enabling Docker to use in-host storage and providing fast performance. When bind mounts are used, any server processor or person can access the directory. However, administrators can manage this access by securing database files at the owner and group levels and by using directory and file permissions.
The following table provides a high-level summary of the decisions we made when implementing containerized SQL Server in Use Case 1.
Table 4. Summary of business decisions in Use Case 1
Choice |
Decision |
Explanation |
Docker Community Edition or Enterprise Edition |
Enterprise Edition |
Provides certified images and business support |
Cloud-based private registry or local private registry |
Local private registry |
Offers the fastest provisioning of containers, although increases complexity and support requirements |
XtremIO X2 manual or automated provisioning |
Manual storage provisioning |
Is appropriate for the limited requirements of this use case |
Docker volumes or bind mounts |
Bind mounts |
Provides host-based high performance |