Request for Info: Entry Level Understanding of UC20 and Snapcraft

I have gone through the Whitepapers for IoT Device Management and Device Identity eco-system with UC20. I have gotten some understanding of how UC20 with Snapcraft work to provide OTA in terms of deltas and how the provisioning occurs.

One particular question I still have is for IoT/IIoT Solutions. A lot of Single Board Computers (off-the-shelf / industrial grade) now have support for virtualization / hypervisors. If UC20 is uploaded to such SBCs with docker snap installed on them, these devices are then able to run Containers depending on the underlying chip architecture (x86_64, amd64, armv7, armv8)

However in many cases, Workflows are developed and designed using stack of such containers e.g. docker-compose that is then run on such SBCs.

Does Snapcraft also provide some means to provide OTA update for such container stacks as Deltas?

UC20 based updates which affect the OS, kernel, bootloader make absolute sense but what about application containers running on them?

no, and it would be weird to not ship your container workloads as snap packages instead … using docker would just mean a container in a container and adding pointless overhead and losing most advantages snap packages bring along (automatic roll-back on failure, self tests, full control over updates, deltas, built-in management, GPG signing of the packages, tinker proof delivery through everything being read-only) …

typically you would just re-pack your docker container payloads as snap packages …

In cases where some solutions require dependency on already existing tools like OSS databases etc. these dependencies would be their own snap packages and the OS-level custom App can then work with it as one would have done with a container stack application. Am I right to understand that?

that really depends what makes more sense for you, snaps are super flexible.

you can either package your db in a separate snap and access it through i.e. a socket you provide via a content sharing interface or you can include the whole db in one big monolithic application snap, as you like …

1 Like