Running an open source multicloud with Ubuntu, LXD, and Mist

Christos Psaltis profile pic


Originally published on the Ubuntu blog.

    <source type="image/webp" srcset="">
        <img loading=lazy src="" alt="Mist and ubuntu logos" title="Mist and Ubuntu logos">
<figcaption><a href="" target="_blank">Image source</a></figcaption>

One of the advantages that Ubuntu brings to the cloud equation is improving an organization's ability to run in multiple clouds. Running containers on top of Ubuntu further increases portability. Mist is an open-source multicloud management platform that helps teams centrally manage and control their Ubuntu instances across many different cloud environments and/or bare metal. This removes some of the operational and financial barriers to running applications in multiple clouds.

One recent example of how Mist works with Ubuntu came from a customer who runs a WordPress hosting service in Europe. This company is extremely security conscious and wanted a completely open-source stack. They run in multiple public clouds as well as on bare metal, and completely isolate their customers' workloads.

This customer was already using Ubuntu and LXD, both chosen for their baked-in security and robustness, and both open-source. LXD is a container and VM management tool that allows users to create, run, and maintain containers as if they were VMs, and VMs as if they were their own cloud. LXD uses pre-made images available for a range of Linux distributions and is built around a powerful, but simple, REST API. A good tool for orchestration of 'single-cloud' virtual environments.

However, the customer still needed to have visibility and control over the entire stack, from LXD down to the cloud environment, and they needed a way to centrally manage all of their deployments in different clouds. For both general monitoring as well as to make changes around access control if someone joined the team, was reassigned, or left.

They adopted Mist to get a unified view of their entire setup and to be able to centrally control certain aspects of their deployments. Here are some of the things that Ubuntu users get by layering Mist on top:

Spin up Ubuntu instances anywhere, from one dashboard. Instead of having to toggle between environments to spin up Ubuntu instances in different public and private clouds, you can spin new instances up from a single dashboard.

Mist create vm

Centrally control role-based access (RBAC) for your entire setup. Many organizations, like the customer noted above, choose an all open source stack for security and privacy reasons. Privacy and legal compliance can also be a reason organizations need to operate in more than one cloud environment. With Mist, it's easy to control RBAC for the entire suite of servers from one place, decreasing the likelihood of errors and the accompanying security exposure.

Mist control role-based access

Automatically set up workflows from one dashboard. Instead of managing workflows separately for each cloud environment, the organization can automate workflow creation and operation in a way that is cloud agnostic. This gives developers a standard, repeatable process to follow regardless of cloud environment and reduces the likelihood of errors.

Mist script

Optimize cloud costs. Operating in more than one cloud can get very expensive. Mist helps companies track, understand and control their cloud spend across multiple providers, so that multicloud doesn't become a major business liability.

Mist cost analytics

The customer discussed above adopted containers and LXD specifically for portability and the ability to run in multiple cloud environments. Combining Ubuntu, LXD, and Mist to centrally manage these environments enabled this company to take advantage of the portability that containers offer, while controlling their cloud costs. Mist makes running in multiple clouds practical, so companies can run in multiple environments without running up huge bills or spending too much engineering time on cloud management.