As Canonical continues to redefine itself as a cloud technology outfit, it is also refining its Ubuntu distribution of Linux as a cloud building block. The latest move in that direction is the alpha release of Snappy Ubuntu Core, a new cloud-centric edition of Ubuntu.
Ubuntu Core might already be familiar to Canonical users. It's a minimal version of Ubuntu, the "smallest implementation of Ubuntu that enables one to install other packages," according to the product wiki. "Snappy" refers to a new way to provide and update applications for the system.
According to a blog post by Canonical CEO Mark Shuttleworth, the transactional update technology used in Snappy is analogous to one Canonical used to apply updates to its Ubuntu Phone OS. Canonical has, in previous discussions, hinted at making use of the technology in this manner.
"The [S]nappy system keeps each part of Ubuntu in a separate, read-only file," explained Shuttleworth, "and does the same for each application. That way, developers can deliver everything they need to be confident their app will work exactly as they intend, and we can take steps to keep the various apps isolated from one another, and ensure that updates are always perfect." One downside, he admitted, is that traditional update technologies like apt-get won't work with Snappy.
Canonical's Snappy pitch evokes the advantages of Docker containers. Apps are protected from each other and the system at large via AppArmor (originally a Novell creation, but used aggressively by Canonical). The packaging system for Snappy also allows a few tasks not previously possible with Ubuntu software packages -- such as linking the static version of a library with a given application, rather than depending on whatever version is extant with the system at large. Updates to the system are "guaranteed to succeed every time," claims Canonical, with no danger to user data. Snappy apps can also be published for general consumption with a single button-push.
This approach to applications and updates is strongly reminiscent of Red Hat's work with its Project Atomic initiative. With Red Hat, changes to the system are provided by way of images that are applied transactionally. If a given update to an app or the system proves faulty, it can be rolled back in the same "atomic" manner as a database transaction. Likewise, CoreOS uses a similar mechanism, but Shuttleworth noted its init system is built into CoreOS and can't be changed out. Snappy Ubuntu Core, he said, "enable[s] you to install Docker or any other container system as a framework, with Snappy."
Much of the incentive for creating these application-delivery and system-update mechanisms comes from wanting to remove the burden of updates from sys admins, especially as competitive pressure mounts to keep systems up at all times and to ship changes in shorter upgrade cycles. Docker has been influential, on both the application side and the system side, but Canonical has its own initiatives for Docker and doesn't seem to be promoting Snappy as a replacement for it. Canonical has LXD, its container technology, but at this point it's still a prototype, paralleling Docker rather than eclipsing it.
For its alpha trial period, Snappy Ubuntu Core is provided on Microsoft Azure, but it's possible to perform a local deployment via KVM.