Release management for snaps made simpler
by Holly Hall on 9 June 2023
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.
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.