The point of containers is they aren't VMs, yet Microsoft licenses SQL Server in containers as if they were VMs
- Reference: 1588917671
- News link: https://www.theregister.co.uk/2020/05/08/sql_server_container_licensing/
- Source link:
Spotted by the license-scrutineers at [1]Licensing School in Microsoft’s [2]May 1 Product Terms update [.DOCX], licensing works as follows:
“For purposes of licensing use of SQL Server software running within a container on a container runtime such as docker, cri-o, or containerd, (i) a container is considered to be a Virtual OSE, and (ii) the Physical or Virtual Cores available to that container are considered to be Hardware Threads. Customer’s use is subject to the Per Core License Model and any other License Terms relevant to the SQL Server Licenses Customer has appropriately assigned to the Licensed Server in connection with that use. For clarity, notwithstanding anything to the contrary, if hyperthreading is enabled, Customer must assign a Core License for each Hardware Thread mapped to a container, subject to a minimum of four Licenses.
A “Virtual OSE” is essentially a virtual machine so Microsoft is telling us that it considers containers to be VMs and the usual rules of per-core licensing apply, even though multiple containers can share one OS and a “classic” VM has its own.
And with containers often used to help applications scale by creating multiple parallel microservices, or running for short periods, the risk of container sprawl carries with it the risk of SQL server licensing sprawl.
So stick that in your continuous delivery pipeline and smoke it, before it smokes your SQL Server bills. ®
Sponsored: [3]How To Accelerate Brilliant Digital Experiences With Low-Code
[1] https://www.licensingschool.co.uk/licensing-blog/2020/05/07/sql-server-with-container-technology/
[2] https://www.microsoftvolumelicensing.com/Downloader.aspx?documenttype=PT&lang=English
[3] https://go.theregister.co.uk/tl/1936/-8552/how-to-accelerate-brilliant-digital-experiences-with-low-code?td=wptl1936
The reason that Docker Desktop on Windows creates a Hyper-V container is that it needs a Linux operating system to allow you to run Linux containers. Because containers aren't VMs, they rely on a host operating system to provide the low level services that they need to function (CPU, memory, I/O, ...). One way to think of it is that you're doing cross-platform development. If you wanted to do Android development you would need to run an Android emulator on your machine to run your applications without deploying them to a phone - this is pretty similar.
This isn't representative of using containers in production. This is just a development setup that you can use while working with containers locally.
Like Oracle....
... I think I heard some gnashing and wailing from that building across the road where our org's org sits (HR, licenses, law, anything administrative - nothing tech related), and I think Oracle's licenses are even worse, but Borkzilla is getting there.
Yeah, smells like "embrace, extend, ..." of Oracle's bullshit VM policies...
... but I do not expect the usually following "extinguish" in this case, though ...
Where there is a will, there is a way
For the arcane licensing conditions imposed by the likes of Microsoft and Oracle to shaft you then they will do so and hit your costs hard.
Such is the way of the world.
Really, why would anyone think this would be done any other way. You are installing an instance of SQL Server, so you license it on how many cores it has, like a VM.
If you are running in the 'cloud' and using BYOL, then you will be paying for each instance you deploy, as you have no control over the hardware and the number of cores it has (you are sharing it with others).
If you are running on your own hardware, want unlimited instances of SQL Server, buy licenses for all the cores on your hardware you intend to run them on, run as many instances are you want in containers or VMs. Moving SQL Server to a container isn't changing what it is.
If they wanted to move their licensing model to a more container / micro-service approach, they could add a per DB license model, or Data Volume model.
Agreed, containers are merely "lightweight" VMs. Lightweight only refers to the way the virtualisation is implemented.
And if they're genuinely lightweight, with this model you would, core-for-core, expect to get more performance per currency unit out of a container-based instance than the same number of cores in a VM.
Of course, if you're not irrevocably tied to SQL Server, you could use PostgreSQL instead and not have to worry about the licensing costs.
What's a VM These Days Anyway?
With so much of the IO being punted back to the host via very thin virtual devices, and often running a single application, such a VM is really nothing more than a fancy green threads scheduler sat on top of a host OS.
Cloud is a joke
I think all this Docker container stuff is a total joke. It's nothing but a way for corporations get you to pay rent. PostgreSQL is good enough now that there really is no need for SQL Server anymore.
Re: Cloud is a joke
I'm conflicted ... I somewhat disagree with the first part of your post and somewhat agree with the latter!
Re: Cloud is a joke
While containers aren't a joke they are definitely overrated and often incorrectly used. The main reason behind them is being able to deploy specific services quickly, and in exactly the same way on multiple machines. Of course, this is almost identical to deploying VMs but the start up time and resources required for a container is less.
Surely people like this? You chose a non-opensource solution, you obviously *want* to pay out of the backside.
There are many alternatives, if you need that support (often used as an argument) then why not pay. And pay extra because you are asking for support in a number of different chrooted environments.
Microsoft are only in the wong by profiteering from people making bad choices.
Microsoft are only in the wong by profiteering from people making bad choices
Surely this summarises the entire tech industry, from phones to music and onto doorbells and lightbulbs?
"Microsoft are only in the wrong by profiteering from people making bad choices."
Microsofts take on containers almost completely misses the point of using containers as a lightweight, self-contained environment on top of a minimal OS as an alternative to a VM environment by making you run that said lightweight environment on top of all the crap you would normally deploy anyway.
That customers then compound the idiotic product offering by being so sure that they need Docker without spotting the architectural flaws that the are willing to pay over and over again.
Two wrongs may not make a right, but they certainly provide a lucrative sales opportunity.
Docker desktop on Windows uses Hyper-V and creates a VM when it’s installed.
I only know this because i saw it in Hyper-V manager, and to be honest despite using Docker containers for more than a year now I still haven’t got my head round them.