Categories: BlogCanonicalUbuntu

Release management for snaps made simpler

Release management is the process of planning, scheduling, testing and deploying new versions of software. To make this process simpler for snap developers, we have released a new feature called progressive releases. Continue reading to understand what they are, why they are important and how you can use them in the Snap Store.

What are progressive releases?

Progressive releases is a technique used to reduce risk while introducing new software releases. When a new version is released, initially, it is only distributed to a small subset of clients. This enables the developer to check how effective the update was, and ensure that no machines were negatively affected. Now knowing that the release was safe, the update can be distributed to the rest of the clients. This can be triggered in a progressive way (hence the name of the feature). 

The developer chooses the percentage of snaps that the update will be distributed to. As the update continues to be successful and the confidence of the developer increases, this percentage can increase until all machines have been updated.  This technique of release management will be a main feature of publishing snaps to ensure that the update is safe and effective.

Why are progressive releases important?

Release management is an important practice in software development. Imagine you have thousands of clients that are ready to receive a bugfix. When you prepare the update, it is crucial to know how existing devices will behave with the update. This can often only be found out by testing on devices that are already in the field. In this case, testing on a small number of clients can give you direct insight into the stability and efficacy of the update. Once the developer is certain that the update took place without issue, the release can be distributed to the remaining machines. This can either be done as a complete rollout or in staggered stages.

Another reason why release management is important is linked to the timing of updates. There are times where devices are in operation and should not be updated immediately. For example, you are in the middle of writing an email and suddenly your browser closes for an important update. In those situations, you risk losing your work. In more serious situations, such as updating a server during use, this could result in major interruption in service and loss of revenue. In severe cases, it could even cause damage to the device or bricking. For these reasons, scheduling updates is especially important.

There are many situations where progressive releases are especially important, such as in IoT-related use cases for embedded devices. These machines may be critical in factory lines, healthcare equipment, robotic arms or cars. In all of these cases, updates should only take place when scheduled and safe to do so. Poor release management could lead to serious consequences. 

Screenshot of progressive releases for a snap in the Snap Store

Using progressive releases ensures that the released software works correctly on a subset of devices before full deployment. This reduces the risk of unstable updates to improve the procedure of software publishing.

Try them out for your next release

Progressive releases are ready and available to use for your snaps in the Snap Store. The documentation explains the full software release process, including creating, monitoring and finalising your progressive release. Read the full documentation here.

Write to us in the forum or contact us if you have any questions!

Photo by Drew Patrick Miller on Unsplash

Ubuntu Server Admin

Recent Posts

Predict, compare, and reduce costs with our S3 cost calculator

Previously I have written about how useful public cloud storage can be when starting a…

17 hours ago

One Thread to Poll Them All: How a Single Pipe Made WaterDrop 50% Faster

This is Part 2 of the "Karafka to Async Journey" series. Part 1 covered WaterDrop's…

21 hours ago

A year of documentation-driven development

For many software teams, documentation is written after features are built and design decisions have…

2 days ago

Announcing FIPS 140-3 for Ubuntu Core22

With the release of the FIPS 140-3 certified cryptographic modules for Ubuntu 22.04 LTS, Canonical…

3 days ago

The foundations of software: open source libraries and their maintainers

Open source libraries are repositories of code that developers can use and, depending on the…

6 days ago

From inspiration to impact: design students from Regent’s University London explore open design for their dissertation projects

Last year, we had the opportunity to speak at Regent’s UX Conference (Regent’s University London’s…

7 days ago