Running Windows Microservices on Nomad at Jet.com
Oct 07, 2019
Working with Windows containers was dicey a few years ago, but Jet.com was able to find some creative solutions for running Windows containers on Nomad.
The world is rapidly moving towards containerizing everything, mostly by using Linux cgroups and namespaces. But, Windows has kind of been a second-class citizen in this ecosystem.
While great progress has been made in the Windows container space, it has only recently become generally available. In 2016, when Jet.com (Walmart) started its migration to Nomad as its microservice scheduler, Windows containers were still in their infancy and the only Nomad driver able to run .NER was raw_exec.
In short, running and scheduling .NET Framework microservices is not easy. In this talk, you will learn:
- More about Windows Containers and their limitations
- How Jet constrains Windows raw executables running on Nomad without Container support
- More about the Windows 32 API and how you can hook into it in your Go programs without resorting to cgo
Senior software engineer, DevOps, Jet.com