Ubuntu Core is a fully managed containerization platform that combined with a marketplace enables an effective and easy method for deploying Snaps to either cloud or on-premises machines.
Canonical’s Ubuntu Core and Snaps are important to enterprises as they provide an application-agnostic managed software platform, designed specifically for IoT and similar embedded use cases. In addition, Ubuntu Core and Snaps are important to the IoT ecosystem, because they leverage a well-known technology stack (Linux kernel and most common Linux OS distributions) to aid in the deployment of embedded technology, all without incurring the typical cost, complexity, and headache of an unmanaged open-source solution.
In this question and answer (Q&A) article, we review Ubuntu Core’s differentiation, general architecture considerations, deployment considerations, and Snap technology management.
Question: What are some of the important architectural considerations of Ubuntu Core and Snaps?
Answers:
- Hardware architecture perspective: Ubuntu Core supports both x86 and ARM. See https://developer.ubuntu.com/core/get-started. For commercial partners, Canonical can support specific boards and architectures and offers services around board porting and software support. Ubuntu can also run on somewhat CPU-constrained devices with a reference minimum of usually 128MB RAM, 600mhz processor (ARMv7 or greater, x86), and 4GB storage. There are cases where, with tweaks, Canonical has seen partners run on lower powered hardware, but such implementations are heavily dependent on the intended use case
- Software/platform architecture perspective: Canonical provides, manages, updates, and secures the kernel and OS underlying Ubuntu Core. Ubuntu Core can be thought of as a fully-managed Linux distribution designed with IoT applications in mind. Customers provide containers with application logic (Snaps). Then by interfacing with the Snap API, customers can deploy and manage these containers throughout their lifecycle.
- Security architecture perspective: Canonical’s Snap package manager provides isolation between individual Snaps and the underlying OS, although, through the API, individual Snaps can request access to resources from other Snaps. Trusted Platform Module (TPM) is supported by Ubuntu Core and used by some partners. In addition, TrustZone and trusted execution environments (TEEs) have also been used. This is notable, as Canonical is able to leverage the existing Linux ecosystem support for security technologies, rather than needing to develop its own security approaches.
Question: What are some of the important deployment considerations of Ubuntu and Snaps?
Answer: Ubuntu has a daemon called snapd that provides management of deployed “Snaps” or application containers. Access to this daemon is restricted through the use of a special interface, but when a piece of software gains permission to use it, it can control software and configuration on the device. Canonical works with partners to integrate snapd access into their device management solutions using REST APIs. See https://github.com/snapcore/snapd/wiki/REST-API.
Dell has publicly announced that their EDM solution uses snapd to control their Ubuntu Core-based gateways. Also, Rigardo and Screenly are offering this capability.
Question: What are some of the important technology management considerations of Ubuntu Core and Snaps?
Answer: While Ubuntu and the Snap container system offer an API for system management, there is not a central management interface. The API is snap-centric and allows management of deployed application containers (Snaps), yet is limited in terms of management of the underlying hardware. Canonical believes that its partners tend to have their own device management solutions (perhaps even integrated as a Snap) on the systems that are plugged into the Ubuntu API to enable local device management capabilities. Canonical does not offer on-platform support for edge/fog, relying instead on their partners to choose their own solutions to run on top of Ubuntu.
If you have additional questions about Ubuntu Core or Snaps, please feel free to contact us.