Blog:
Migration to Torizon from Third-party Solutions with an example of Foundries.io

Thursday, April 25, 2024

Torizon OS is an open-source, industrial, embedded Linux distribution with no vendor lock-in. Whether you seek community support or assistance from Toradex, transitioning from other providers like Foundries.io is seamless.

In this blog post, we'll set you up with the initial required knowledge to understand the Torizon offering when switching from an existing product base like Foundries.io and welcome you into the Torizon ecosystem.

Torizon and Foundries.io

The offerings from Torizon and Foundries.io rely mostly on the same technology stack. Both Torizon and Foundries.io (aka, Linux LmP) use a containerized application layer and OSTree for OTA (Over-the-Air) Updates.

Torizon OS is constantly tested and validated on Toradex SoMs, but it is also available for many other systems via the Common Torizon Project Torizon Community. Out-of-the-box support is available for x86_64, Raspberry Pi, RISC-V, other ARM boards, and more. Both Foundries.io and Torizon provide a modern way to deploy Application Software via Containers. From the application development perspective (i.e., the containers), the main difference will be the user experience around it.

Transitioning to Torizon OS

Using Toradex Hardware

Chances are, you don't need to do much when moving from Linux microPlatform! If you're already using Toradex hardware with LmP, simply flash the latest copy from Torizon OS using Toradex Easy Installer.

If you're currently using LmP and have done any modifications to the device tree, for example, developed a custom carrier board or added custom files/applications into the base OS, you can bring your customized device tree to Torizon OS using TorizonCore Builder. No Yocto skills are required.

Using Third-Party Hardware

Don't own a Toradex module? We've got you covered! Head over to our Common Torizon project, there you can find support for many other boards or take it as a base for adoption for your system. Contact us if you are looking to get your board supported directly.

If you have ported your device to LmP before, you can remove the LmP-specific layer, drop-in meta-common-torizon, and build the torizon-core-docker image. Take a look at the machine definitions and choose one that closely matches your platform. Some minor modifications may be required, but feel free to open a ticket on the GitHub repo itself should you need further assistance.

Deploying Applications

Instead of pushing to a repository that gets built using the Foundries.io infrastructure, on Torizon we decouple the build step.

To deploy an application to a board using Torizon, you must first head to the Torizon Cloud and provision the device. This step can also be done en masse for production development or you can use the IDE extension for local over-the-network development.

Torizon- Deploying Applications

Then, you can create a package using the docker-compose.yml file for your set of applications and initiate an update. It will securely update the compose file to the root filesystem of your device and automatically start the application. If you have a custom Docker Registry already set up, you can keep using that registry.

Torizon also has an official package feed with stable and nightly releases, meaning you can effectively keep your whole device fleet updated or rebase your changes on top of official Torizon OS releases and push it to our cloud and have a whole fleet updated.

OTA Remote Updates and Offline Updates

Through Aktualizr, an update client based on the Uptane Standard, we provide OTA Remote Updates with rollback capabilities to Torizon OS. That means a device in a good state will never get into a bad state after an update if that update doesn't succeed. It will automatically roll back to the previous healthy state if needed. Torizon also includes support for offline updates using TorizonCore Builder, meaning no Yocto is required, as it is with LmP.

Torizon OS also supports subsystem updates, meaning you can, for example, modify a splash screen file, the firmware on a microcontroller in a heterogeneous system, and much more in a very efficient way.

Remote Access

LmP from Foundries.io recommends WireGuard for remote access, which requires some configuration and can bring security concerns, as we outline in our official documentation. Instead, the Torizon approach is so that all provisioned devices under Torizon OS come with out-of-the-box, zero-trust architecture, ssh-based remote access, no configuration is required.

Device Monitoring

Torizon OS also has out-of-the-box device monitoring, implemented using fluent-bit. From a single configuration file, which can be bundled into the production image with TorizonCore Builder, you can have custom metrics flowing straight to Torizon Cloud with visualizations or your own endpoint.

I hope this gave you an overview of the necessary steps for transitioning from a third-party system like Foundries.io to Torizon. We recognize that the devil often lies in the details, so feel free to reach out to us on our friendly community platform or through any of our convenient support channels.

More resources:
?Have a Question ?