In my last post blog post, Microsoft SQL Server Licensing – A Deeper Look, we looked at different use cases of Microsoft® SQL Server® such as environmental considerations, multiplexing, SQL Server embedded in 3rd party applications and Intranets. In this installment, we are going to continue by looking at Software Assurance Benefits, SQL Server components and SQL Server 2017.
Software Assurance Benefits
Software Assurance benefits were introduced by Microsoft as a way of delivering greater value to it’s customer base outside of the commonly perceived version upgrade use cases. Microsoft offers a range of product specific benefits such as the ones outlined for SQL Server below in Table 1 – SQL Server Software Assurance Benefits Overview.
I see these benefits representing significant flexibility and with them, delivering significant cost savings by allowing customers access to use rights such as active/passive failover rights, cold disaster recovery (DR) and license mobility. A quick cost-based analysis of an environment where these benefits don’t exist (for example when licenses are required for a fail over system, DR or additional systems in a server farm – the license mobility 90-day rule) will show that investing in Software Assurance can be a worthwhile pursuit.
|Software Assurance Benefits Overview|
|Unlimited Virtualization||Allows customers to run any number of instances of SQL Server 2016 Enterprise Edition software in an unlimited number of VMs. Applicable under the core licensing model only.|
|Failover Servers||Allows customers to install and run passive SQL Server 2016 instances in a separate OSE or server for high availability in anticipation of a failover event.|
|License Mobility within a Server Farm||Allows reassignment of SQL Server 2016 licenses within a server farm more than once every 90 days. Does not apply to SQL Server PDW.|
|License Mobility through Software Assurance||Allows license reassignment of SQL Server 2016 to third party shared servers. Does not apply to SQL Server PDW.|
|Disaster Recovery Rights||Allows backup instances of SQL Server 2016 software for temporary use in a server dedicated to disaster recovery.|
|Special Migration Offers||Provides license grants and additional use terms for legacy SQL Server 2008 R2 customers who are still migrating to current SQL Server 2016 product editions and license models.|
|SQL Server Appliance Updates||Allows access to new product features and functionality between major appliance software releases. Applies to SQL Server PDW deployments only.|
|Additional Benefits for SCE Customers||In addition to the benefits noted above, Server Cloud Enrolment (SCE) customers may also qualify for premium benefits, including Unlimited Problem Resolution Support.|
Table 1 – SQL Server Software Assurance Benefits Overview 
The key item to note however is that these benefits are only applicable for as long as the SQL Server licenses are covered with active Software Assurance. Should a customer choose not to renew Software Assurance, none of these benefits would be available.
SQL Server Components
I occasionally see confusion regarding the licensing of SQL Server components such as SQL Reporting Services. I sometimes hear “its a component – not the full installation of SQL. Surely I don’t need a SQL Server license for that do I?” The short answer is “yes, yes you do”. When components are installed on the same device as SQL Server, there is no issue as the license consumed by SQL Server also covers all the installed components.
If any of the components are on a separate device however, these also need to be licensed with a SQL Server license (Core or Server + CAL model). There may be extenuating circumstances justifying this architecture such as distributed workloads etc. Where possible, however, the SQL Server landscape should be architected in a manner that enables an optimised licensing state.
Note: There are no Microsoft licenses that cover just the components.
SQL Server 2017
Microsoft released SQL Server 2017 at the end of September 2017. Regarding the licensing options for 2017, these are the same as for the 2016 version. There are two editions available (Standard and Enterprise) as well as the same licensing models (Server + CAL or Core based). There are however, some additional features that have been incorporated in the new release. These include:
- Support for deployment on Linux platforms such as:
- RedHat® Enterprise Linux®
- SUSE® Linux Enterprise
- Support for Docker container technology
Note: SQL Server 2017 licensing is platform agnostic. The same licensing models apply irrespective of the operating system being used (if the operating system is supported).
So, what is a Docker container?
A Docker container is like a virtual machine whereby only a fraction of the processing power may be required to run a given application. The below illustrations demonstrate how the two differ in configuration.
A typical virtual machine configuration shares the same physical hardware, but each virtual machine will have it’s own operating system and applications (otherwise known as an OSE) (See Figure 1 – Typical Virtual Machine configuration).
Figure 1 – Typical Virtual Machine configuration
Where a Docker container differs from virtual machines is that the containers share the same hardware and operating system, but the applications are stored in the containers (refer to Figure 2 – Typical Docker Container configuration). The container method is less resource intensive and allows for faster deployment of services. Docker container technology may also bring cost saving opportunities for the operating system. In this configuration, Microsoft Windows® Server Standard edition would be sufficient. This is seen as a single OSE and supports unlimited Windows Server container use rights.
Figure 2 – Typical Docker Container configuration
How many licenses do I need to license individual containers using the Per Core licensing model?
The process to determine this is essentially the same as for determining the cores under a virtual machine configuration scenario. For example:
Example 1 – I have a server that has two SQL Server containers, one with access to two virtual cores and the other with access to four virtual cores. I would adopt the following approach to determine how many SQL Server core licenses I require:
- Ascertain how many individual containers are present
- Count the total number of virtual cores in each container (keeping in mind there is a minimum requirement of four cores per container):
- Container 1 has access to two virtual cores but doesn’t meet the minimum requirement of four virtual cores. As a result, four SQL Server core licenses will be required
- Container 2 has access to four virtual cores. The same number of four SQL Server core licenses will be required
- A total of six virtual cores are present, but since a minimum of four virtual cores are required for Container 1, the total licenses required are eight. I would need to purchase 4x SQL Server Per Core licenses.
Note: SQL Server core licenses are sold in packs of two.
Figure 3 – Example 1 – Per core licensing model
How many licenses do I need to license individual containers using the Server + CAL licensing model?
When licensing SQL Server under the Server + CAL model, customers are required to purchase one server license per container running SQL Server regardless of the number of virtual processors allocated.
Note: The Server + CAL model is only supported by the SQL Server Standard edition license.
I would adopt the following approach to determine how SQL Server and CAL licenses I require:
Example 2 – This scenario has two SQL Servers, the first server has one SQL container and the second has two containers. There are also two users accessing the SQL Server containers:
- Ascertain how many servers have SQL Server deployed, and how many servers have Docker containers being accessed:
- SQL Server 1 has a single container: one SQL Server license is required
- SQL Server 2 has two containers: two SQL Server licenses are required
- Count the total number of users accessing the SQL Servers
- Two users are accessing the SQL Servers: two SQL Server User CALs are required
- A total of three containers are being accessed across the two servers, and two users are accessing these instances, which brings the total licenses required to three SQL Server licenses and two SQL User CALs.
Figure 4 – Example 2
In my next post, I will shift focus to other Microsoft products including Microsoft Office 2019 with a view of providing some “tips and tricks” on how to understand the varying licensing complexities and how they may relate to you and your IT environment.
 Be sure to check with your software reseller and Microsoft for confirmation on supported OSE / Docker container license configurations.