Canonical continues to pursue a somewhat bifurcated approach to containers by announcing support for Kubernetes 1.15 while continuing to advance Snaps as an application container that enables software deployment via a single click.
For example, Canonical recently announced in collaboration with DJI that Snaps will be supported on an instance of Ubuntu embedded in Manifold 2 drones manufactured by DJI. While that approach will make it easier to deploy containerized applications on a type of embedded system, Snaps—for the moment, at least—mostly only runs on Ubuntu.
Docker, in contrast, provides what Canonical describes as “process containers,” which typically are immutable and share some libraries across all containers in execution. Docker registries are optional and typically contain a loose collection of Docker images identifiable by hash or tags. That approach makes it possible to run containerized applications across multiple operating systems. However, within organizations that have standardized on Ubuntu, Canonical is making the case for an application container in the form of Snaps.
Canonical is trying to drum up support for Snaps on multiple distributions of Linux with mixed success. Most recently, it made available Snapd, a service that individual developers can employ to run Snaps on other Linux distributions. Support for Snaps running on Linux distributions other than Ubuntu generally is limited to what’s provided by Canonical, which tends to limit enthusiasm. It’s also worth noting that alternative application packaging technologies in the form of AppImage and Flatpak have been around longer than Snaps.
Tom Canning, vice president of global sales for IoT and devices at Canonical, says depending on the use case, Canonical expects customers to employ a mix of Snaps and Docker containers. Snaps may not be as portable as Docker containers, but they are a lot easier to create, he says, which makes Snaps a lot more accessible to the average developer. Rather than being stuck in pilot project purgatory, Snaps make it a lot easier to just go build applications.
While Docker container adoption is a lot more widespread, it’s not clear to what degree developers will embrace them. There are millions of Docker developers, but the majority of developers today still don’t use containers largely because of the lower-level constructs they need to master. Unfortunately, it is not possible to deploy Snaps application containers on top of Kubernetes clusters. However, Snaps can be used to deploy Kubernetes much like any other piece of software.
Regardless of the container path chosen, Canonical is making certain it remains relevant. The distribution of Kubernetes it provides, for example, is not only easier to install using Snaps technology, but it can also be deployed on more than 40 Linux distributions.
It’s also not clear how relevant operating systems in the age of containers will be. That said, the number and types of containers running across an enterprise IT environment is likely to become a lot more varied than anticipated.