Microsoft has suspended its SQL Server on Windows Container beta “with immediate effect.”
The statement yesterday (early on a US public holiday) by Microsoft senior program manager Amit Khandelwal said: “Due to the existing ecosystem challenges and usage patterns we have decided to suspend the SQL Server on Windows Containers beta program for foreseeable future. Should the circumstances change, we will revisit the decision at appropriate time.”
Ecosystem challenges? Microsoft introduced Windows Server Containers in Windows Server 2016, enlisting the support of Docker so that developers could easily deploy containerised Windows applications in a similar manner to Linux.
Windows containers are important to the company, used in its Application Guard security feature, which opens untrusted websites and Office documents in an isolated Hyper-V container. Containers were a key component of the abandoned Windows 10X.
The forthcoming Windows Server 2022 has new container features including a smaller image size for the Server Core container image, the ability to have virtual time zones within a container, scalability improvements, and better support for running in Kubernetes clusters. Migration of existing Windows applications to Azure is an important use case.
That said, the industry has standardised on Linux-based containers for general application deployment, and Kubernetes (the dominant container orchestrator) runs primarily on Linux, though Windows containers can be added alongside their Linux cousins. Microsoft has engineered strong Linux support into Windows, in the form of Windows Subsystem for Linux and Hyper-V support for Linux, such that running Linux containers on Windows is easy, and its .NET application platform also runs well on Linux thanks to the cross-platform .NET 5 (formerly called .NET Core).
“Linux is the fastest-growing platform on Azure and accounts for about half of all Azure compute cores,” said Microsoft’s corporate VP of Azure Compute, Brendan Burns, late last year.
The consequence is that there is more interest in running SQL Server on Linux containers, a scenario which Khandelwal said “continues to be supported for production environment,” than there is for SQL Server on Windows containers, even though Microsoft’s relational database is designed to run on Windows and the Linux version uses a Platform Abstraction Layer (SQLPAL) which maps Windows calls to Linux OS calls, as explained in this paper.
Some SQL Server features are not supported, including merge replication, database mirroring, and add-on services such as Analysis Services and Reporting Services.
SQL Server on Linux uses a Platform Abstraction Layer
The beta program for SQL Server on Windows containers began in 2017, said Khandelwal, which is a while back, and the fact that it has not hit general availability probably comes as no surprise to its relatively few users. That said, Microsoft has also decided to delete the Windows SQL Server images in the Docker Hub repository immediately, which did not go down well.
“Could you please not delete those repos and images? That is going to break stuff. Folks have builds that depend on these images. At least give some warning rather than ‘immediate effect’,” pleaded developer David Gardiner. Khandelwal replied saying that these container images were now three years old and “we do want any new users and customers downloading it.” Since it was a beta, not supported in production, customers used it at their own risk.
In July 2019, Microsoft introduced an Early Adopters Program for SQL Server 2019 on Windows containers, the link for which leads appropriately to “Error 403 – this web app is stopped.”
SQL Server running directly on Windows or in a Windows VM remains, of course, in rude health. Microsoft also recently introduced a preview of SQL Server for Azure Arc, supporting both Windows and Linux instances.®