LXD is an open-source hypervisor designed specifically for use with containers instead of virtual machines (VMs). Kirkland said, "At Canonical, we've been working on containers in Ubuntu for more than half a decade, providing a home and resources for stewardship and maintenance of the upstream Linux Containers (LXC) project since 2010."
Where Microsoft comes in is as a LXD partner.
Ben Armstrong, a Principal Program Manager Lead at Microsoft on the core virtualization and container technologies, said in a Canonical blog:
"As Microsoft is working to bring Windows Servers Containers to the world, we are excited to see all the innovation happening across the industry, and have been collaborating with many projects to encourage and foster this environment. Canonical's LXD project is providing a new way for people to look at and interact with container technologies. Utilizing 'system containers' to bring the advantages of container technology to the core of your cloud infrastructure is a great concept. We are looking forward to seeing the results of our engagement with Canonical in this space."
Microsoft has already embraced Linux containers. Microsoft is working on supporting Docker containers and Kubernites container management on Windows and Azure. Sam Ramji, CEO at Cloud Foundry, an open-source, platform-as-a-service (PaaS) cloud foundation, and formerly Microsoft's leader of open source and Linux efforts, thinks open source -- and containers in particular -- is catching on and "is on the verge of being mainstreamed at Microsoft."
Microsoft is using LXC with Windows API calls in place of Linux API calls for its Docker containers. LXC is one of the fundamental Linux container technologies, underlying Docker and other important container specifications. LXD runs on top of LXC and, Kirkland said "endows the advantages of a traditional hypervisor into the faster, more efficient world of containers."
Specifically, continued Kirkland, "LXD is a persistent daemon that provides a clean RESTful interface to manage (start, stop, clone, migrate, etc.) any of the containers on a given host. Hosts running LXD are handily federated into clusters of container hypervisors. They can then can work as Nova Compute nodes in OpenStack, for example, delivering Infrastructure-as-a-Service (IaaS) clouds at lower costs and greater speeds."
With Microsoft, Kirkland said, the two companies' work will be "around the LXD RESTful API, as a cross-platform container management layer."
Kirkland also pointed out several times that "Canonical is NOT taking Docker on. Docker is for running applications, LXD is running containers and servers."
He went on:
"LXD and Docker are complementary technologies. LXD furnishes a dynamic platform for 'system containers,' containers that behave like physical or VMs, supplying all of the functionality of a full operating system (minus the kernel, which is shared with the host). Such 'machine containers' are the core of [Infrastructure-as-a-Service] IaaS clouds, where users focus on instances with compute, storage, and networking that behave like traditional data-center hardware."
For example, servers running LXD can be federated into clusters of container hypervisors, and can work on OpenStack IaaS clouds as Nova Compute nodes.
Besides its plans with Microsoft, Kirkland said that that Canonical is working on implementing LXD directly in the forthcoming Ubuntu 15.10 release. This means that every Ubuntu server will soon be LXD ready. And, it would seem, ready to work with Windows and Azure LXD-based container services as well.