This content is part of the Essential Guide: Bookmark this expansive guide to DevOps for Windows

Docker on Windows Server helps legacy apps, with caveats

Windows-only Docker Enterprise Edition prospects struggle with Linux requirements and a shift to a container-first mindset as they plan to modernize legacy Microsoft applications.

Enterprise IT shops turn to Docker on Windows Server to modernize legacy Microsoft apps, but Docker Enterprise Edition presents IT skills hurdles for some.

Docker Enterprise Edition 2.1 adds support for Windows Server versions 1709 and 1803, which brings the container orchestration software up to date with the latest stable Windows Server 2016 operating system releases. The 2.1 version also supports features, such as virtual IP-based load balancing for Windows containers that weren't available before.

With the release, the company also promotes its Docker on Windows Server professional services expertise for enterprise IT shops that still run Windows Server 2003, which reached the end of Microsoft support in 2015, and Windows Server 2008, which will reach the end of extended support from Microsoft in January 2020.

Docker launched a general program for legacy apps in 2017, called Modernize Traditional Applications (MTA), but pinpoints Windows Server upgrades with a new Windows Server app migration program, which was added this week. The program combines Docker professional services engagements with an app convertor tool and reference architectures to ease Windows containerization. Docker was the to partner with Microsoft for Windows container orchestration in 2014, and it helped develop Windows containers.

Large enterprise companies in the early stages of Docker on Windows Server projects said the work has gone well, but has not yet reached full production scale.

"We initially engaged with Docker's MTA for a couple of our apps based on the old ASP.NET [framework]," said Sujay Pillai, senior DevOps engineer for Jabil, a global electronics manufacturer headquartered in St. Petersburg, Fla. "They used stand-alone servers and consumed a lot of resources, and we were able to move them to Windows Server 2016 under Docker Enterprise Edition, which made managing them much easier."

IT admins at Jabil no longer have to manage these apps separately, but their conversion required professional services from Docker and a local Microsoft partner in Florida, plus a separate engagement with Docker to train IT employees on Docker Enterprise Edition, Pillai said. So far, the applications run in the company's development environment, and the company has no plans to give stateful or data-intensive apps the modernization treatment yet, he said.

Enterprise Windows Server 2016 plans
Enterprises eye a move to Windows Server 2016, and Docker aims to help them get there.

Docker on Windows Server presents opportunities and challenges

Docker pledged in June 2018 that Docker Enterprise Edition will support Kubernetes on Windows once it reaches a stable version upstream. But that support remains in beta as of Kubernetes version 1.12 and is only supported on Windows Server 2016 version 1803 operating systems, according to Microsoft documentation.

Docker Enterprise Edition and Windows Containers support from Microsoft also requires that workloads run on Windows Server 2016 container hosts, though apps inside containers can run on multiple versions of Windows Server without refactoring or code changes.

There's a gap in the market, as traditionally conservative Microsoft shops delay upgrades from Windows Server 2003 and Windows Server 2008 to Windows Server 2016. To offer Microsoft shops advanced containerization features, as well as Kubernetes support, Docker must support their migration to the new Windows OS.

There's still a manpower resource issue, not with how we'd get Docker on Windows Server installed, but how we'd support the cluster.
Reece Bradleyenterprise application developer, Farm Credit Services of America

"Things are heating up on the Windows side," said Richard Fong, senior software engineering manager at Mitchell International, an auto insurance software company in San Diego that signed on with Docker Enterprise Edition to modernize hundreds of legacy Windows apps in 2018. "They need to support .NET Core and newer technologies that must work in Windows containers."

Mitchell's Docker on Windows Server project aims to have production workloads in Windows containers in the quarter 2019, Fong said. IT employees at Mitchell have also received Docker training this week as part the project.

Some enterprises will pay for Docker services to bring legacy Windows apps into the container era, but Windows-only shops face a dilemma. Docker Enterprise Edition's manager nodes still require Linux hosts, which puts companies without Linux expertise in a bind.

"That was the crux the issue when we did a proof of concept in December 2017," said Reece Bradley, enterprise application developer at Farm Credit Services of America, a credit provider to farm and ranch operators, based in Omaha, Neb.

The company plans to do another proof of concept in December 2018 and sees the writing on the wall about Microsoft and Linux, Bradley said, as .NET Core now runs on the open source OS, and Microsoft Azure has standardized on Kubernetes for container orchestration services.

"There's still a manpower resource issue, not with how we'd get Docker on Windows Server installed, but how we'd support the cluster," Bradley said. "We're waiting on approvals for a full-time employee with Linux skills, but that comes with costs and won't happen very fast."

In the meantime, IT ops pros at Farm Credit Services have begun their own Windows legacy application migration to Windows Server 2012 and 2016 without containers.

"The staff skeptics are coming around and embracing containers," Bradley said. "Developers are on board, but ops has been slower."

Dig Deeper on Containers and virtualization

Software Quality
App Architecture
Cloud Computing
Data Center