Skip to main content

Empowering developers to embrace Linux

(Image credit: Image source: Shutterstock/Imagentle)

There are millions of Linux users worldwide. They are bringing machine learning and IoT to the challenges of today, deploying large scale infrastructure to the cloud, and using the tools of their desktop to remain productive. There is a huge opportunity for software developers, particularly those facing the crowded markets of other platforms, to engage with a sizeable untapped audience. 

The fact that Linux is open source makes it an amazing breeding ground for innovation. Developers aren’t constrained by closed ecosystems, meaning that Linux has long been the operating system of choice for developers. So by engaging with Linux, it also means that businesses can attract the best available developer skills in the first place. 

It may sound too good to be true. After all, Linux did not grow to an audience of millions representing nearly every permutation of hardware overnight. So why isn’t the market already near saturation? 

Distribution efficiency 

The Linux ecosystem has always strived for a high degree of quality. Historically it was the Linux community taking sole responsibility for packaging software, gating each application update with careful review to ensure it worked as advertised on each distribution of Linux. This proved difficult for all sides. 

Broad access to the code was needed, only open source software could be offered through the app store. User support requests and bugs were channelled through the Linux distributions where there was such a volume of reporting that it became difficult to feed information back to the appropriate software authors. As the number of applications and Linux distributions grew, it became increasingly clear this model would not scale much further. Software authors took matters into their own hands, often picking a single Linux distribution to support and skipping the app store entirely. They lost app discoverability and gained the complexity of running duplicative infrastructure. 

The liable developer 

This placed increased responsibility on developers at a time when the expectations of their role was already expanding. They are no longer just makers, they now bear the risk of breaking robotic arms with their code, or bringing down MRI machines with a patch. As an industry we acknowledge this problem – you can potentially have a bad update and software isn’t an exact science – but we then ask these developers to roll the dice. Do you risk compromise or self-inflicted harm? 

Meanwhile the surface area increases. The industry continues a steady march of automation, creating ever more software components to plug together and layer solutions on. Not only does the developer face the update question for their own code, they must trust all developers facing that same decision in all the code beneath their own. 

The growing threat 

Developers can trade the evolution and growth of their software for a sense of safety by treating their code as immutable. It ships and is never updated, only completely replaced. This is the approach taken by many device makers who calculate the risk of end users clogging up their support lines to be hand held through device recovery as far greater than the late night phone call facing down a security breach. 

The past year has demonstrated for many that while software updates have not become substantially easier for end users to manage, the frequency and impact of security vulnerabilities make the process unavoidably necessary. It is no longer tenable to consider any Internet-connected software a finished product. Software maintenance must stretch to the life of the hardware product. In a model without forced updates this likely means maintaining patch sets and devoting substantial support costs to the long tail of supported releases. 

How then can developers under these pressures deliver on the promises of their software with predictable costs? The answer may lie in snaps. 

Reaping all the advantages 

Snapcraft (opens in new tab) is a platform for publishing applications to an audience of millions of Linux users. It enables authors to push software updates that install automatically and roll back in the event of failure. The likelihood of an errant update bricking of a device or degrading the end user experience is greatly reduced. If a security vulnerability is discovered in the libraries used by an application, the app publisher is notified so the app can be rebuilt quickly with the supplied fix and pushed out. 

Because the application packages, snaps, bundle their runtime dependencies they work without modification on all major Linux distributions. They are tamper-proof and confined. A snap cannot modify or be modified by any other app and any access to the system beyond its confinement is explicitly granted. This precision definition brings simpler documentation for installing and managing applications. Taken with automatic updates eliminating the long tail of releases, more predictable and lower support costs are typical. There is minimal variance between what the QA department tests and how the application behaves on the multitude of end user system configurations. 

Snapcraft gives powerful tools to organise your releases into different quality grades (channels). One set of tools can be used to push app updates from automatic CI builds, to QA, beta testers, and finally all users. It visualises your updates as they flow through these channels and helps you track user base growth and retention. 

Buying back time for developers   

New businesses with software at their core are being created every day, leading to agile new entrants, saturated markets and more time-constrained developers who are still being heavily relied on by their employers. Developers are the lifeblood of so much of what is being built and technological innovation, and are ever more vital to operations across the entire business. So why wouldn't we empower them? 

There is a huge opportunity for businesses to embrace new technologies and move their company forward. Open source and snaps are simple solutions, but ones that gives the most vital innovators in a business - developers - the tools they need to be confident in launching some of the world’s most utilised software.    

Evan Dandrea, Engineering Manager at Canonical (opens in new tab) 

Image Credit: Imagentle / Shutterstock

Evan Dandrea is an Engineering Manager at Canonical, responsible for the Snapcraft ecosystem. His responsibilities include managing the Snapcraft tools and developer experience while also building relationships with ISVs to increase their knowledge and adoption of snaps.