Tackling Linux fragmentation through app stores
When people think of apps, it’s usually the Apple or Android offerings that first spring to mind. However, these both represent closed ecosystems, and tend to stifle innovation and restrict any application beyond the traditional tablet or smartphone.
By Tom Canning, VP of IoT at Canonical - the company behind Ubuntu
That’s why Linux has been the go-to arena for building and publishing applications for IoT devices at the edge. But the flexibility that open source offers is also a root of frustration, with fragmentation a result of the multiple distros within it. Although a hotbed for creation, the complexity of its landscape and distribution challenges has become a headache for Linux developers.
Defining the issue
For most of open source’s life, developers would have to create multiple versions of any application to be able to provide software to all Linux users, or concede that they would only cater to a fraction of the overall market. Moreover, developers require multiple versions of build tools, which naturally result in significant resource overheads. The fragmentation, along with the issues that inter-dependencies in packaging and distribution have created, mean building an app in open source has never been straightforward.
For example, Fedora uses the RPM packaging format, while Debian uses the deb format. Packages built for one version of a Linux distribution are often incompatible with other versions, and so need to be built for each version separately.
Traditionally, there have been multiple dimensions to how creators distribute their software: official websites, where companies and developers offer software downloads on their own domains; code repositories such as GitHub, GitLab and SourceForge; and application repositories, in which Linux-based operating systems typically provide software through self-hosted storage locations.
To achieve the highest level of uptake, software developers will often distribute their applications using some of, or all the above sources. Likewise, most users will utilise multiple methods to obtain software they need. While this gives developers more freedom in how they deliver applications to the end-user, it creates additional fragmentation in the ecosystem.
Solutions in one place
In recent years, there has been significant effort to address the fragmentation in packaging and the distribution of applications through the establishment of software centres, in which some Linux distributions offer store-like destinations with a graphical frontend, software ratings, screenshots, descriptions, and other user-focused data, that allows better search and discovery.
Currently, there are three of these in the Linux space: AppImage, Flatpak and snaps. They each approach and handle the various aspects of usability in different ways. AppImage and Flatpak technologies are architected to primarily support GUI desktop applications. Snaps are designed to work with servers, cloud infrastructure and IoT devices, in addition to desktop applications.
Spotify, a snaps publisher, is an example of a company benefiting from this approach. On one hand, it requires the Spotify engineering team to maintain both the snap and the traditional Deb package. On the other, the snap version is significantly easier to release, which then helps in simplifying the Deb release, too.
Using Snapcraft, the store for snaps, enables authors to push software updates that install automatically and roll back in the event of failure. This feature removes uncertainty that a possibly broken version of the Linux desktop application might be pushed out to the users. Spotify engineers first release the snap version, and after ascertaining that it works and behaves correctly, they build the Debian package, too. Snaps allows the Spotify team to more closely follow the weekly cadence of releases they have for the Windows and Mac versions.
The arrival of self-contained packaging and distribution mechanisms addresses a major problem in the Linux application ecosystem; namely, the difficulty in establishing a successful business model. The new formats reduce the fragmentation, as they minimise the number of permutations needed to support an application.
This shift toward centralised application stores, which are not specific to any particular Linux distribution, offers higher discoverability and better consistency in the user experience.
Delivering value with universal formats
The explosion of IoT products into the market in recent years has pitted manufacturers against one another in a race to the bottom. Businesses risk missing out unless they differentiate on software.
Snaps offer a path to creating an ecosystem of applications on top of your hardware platform that offer enhanced functionality and new revenue opportunities. It’s no longer tenable to consider internet-connected software as a finished product. Software maintenance must stretch to the lifespan of a hardware product in order to stay relevant and in the world of IoT, this is often measured in multiple years.
It all comes down to maximising the value of any application, and snaps allow businesses to reach the greatest audience with ease and confidence. The possibilities to enhance hardware is also endless with snaps.
Take digital signage, for example. Its traditional use is limited to advertising - project a message and leave it there. By operating on Linux and using snaps, however, that signage can transform into a multi-purpose space: integrating the newest software that enables AI and data capture; pushing out promotional material tailored to viewers; and sending real-time analytics back to the business. As smarter products become part of the IoT, snaps will be realised as the enabler of business-led Linux adoption.