Mender blog

What’s New in Mender 3.7: Introducing the C++ Client for portability

Mender 3.7 is released, including all the features published on hosted Mender over the last few months as part of our continuous development and rolling release process.

Check out the release highlights! Future-proof your OTA infrastructure with significant portability enhancements, enabling new classes of hardware and operating system (OS) support.

Note: The Golang client is currently end-of-life and no longer supported. It is strongly recommended that you update to the Mender client version 4.0 or later.

Mender C++ Client

As previously announced, Northern.tech decided to rewrite the Mender client from Golang to C++! The original announcement contains extensive context and is recommended for a review on the background of this development. The Mender C++ client is complete and available for production use!

C++The main benefit of the C++ client is portability. The C++ client enables support for new classes of operating systems (OSes) and hardware. Out of the box, it will now be easier to integrate Mender into embedded devices that do not have a well-supported Golang compiler. The Mender team also plans to officially support more OSes in the future, including popular Real Time Operating Systems (RTOSes). Also of note, rootfs-image is now an Update Module (instead of a built-in), which makes installing full images entirely customizable. Test and integrate the C++ client with new hardware in the Mender Hub community forum.

The easiest way to try out the Mender C++ client is to follow the Get Started documentation for hosted Mender or use your existing hosted Mender account with a virtual device.

The documentation provides a migration guide for moving to Mender Client 4.0. To use it on a Yocto-based build, see the Yocto tutorial on the Mender Hub.

A note on versioning: The Mender client version 4.0 and later is the C++ client. Any version prior to 4.0 is the Golang client. The Golang client will become deprecated and unsupported over time. Verify you are running the C++ version with `mender-update --version` on a device. 

A note on the Mender binary: The ’mender’ binary has been split up into multiple components for security and portability reasons. Compatibility was maintained as much as possible, including retaining the same command line arguments.

Recommended actions: It is strongly encouraged to use the Mender client in all new products and product revisions, as this is the supported path forward. API and Artifact compatibility was retained so that it is fully possible to run a mixed environment and it is encouraged to start testing the C++ client in existing products as well and gradually upgrade.

Release tagging and filtering

Mender 3.7 introduces tagging and filtering of Releases. As the number of devices scales, compounded by iterations of IoT products, the ultimate number of Releases in the Mender server can become overwhelming. Tagging and filtering Releases makes it faster and easier to find the right Release and reduces the risk of deploying the wrong release to a fleet. 

For example, a common use case is to tag development versus production Releases.

Release tagging

To avoid mistakes, filter out the development Releases when deploying to production.

Filter release

Of course, this is just one use case. Releases can be tagged with any information, such as which customers it is intended for, geolocation attributes, or other useful information. The Release notes is a free-text field that can be used to include any notable information about the Release.

ARM server support

The Mender server enables users to manage all devices and their deployments at scale. However, when reaching a higher volume scale, such as for hosted Mender, cloud infrastructure costs can become notable. And, as the embedded and IoT environment experts know, ARM often offers a more power-efficient architecture than x86.

Thus, Northern.tech compared the cloud computing costs of running the Mender server’s microservices on ARM versus x86 and found a 20-30% cost reduction when running on ARM.

arm

The Mender 3.7 release now adds support for running the Mender server on ARM, a potential cost savings available to everyone. Northern.tech also migrated the hosted Mender infrastructure compute from x86 to ARM as well.

An additional benefit of ARM support for the Mender server is the ability to run it on most embedded devices; this is most relevant for test or demo environments where the network is limited or restricted and the scale is lower. The Mender Gateway is recommended for production environments in similar scenarios.

To learn more about our experience in transitioning from x86 to ARM for cloud computing, check out this YouTube episode: arm Innovation Coffee: Josef Holzmayr Talks Mender on Arm. Try running the Mender server on ARM by following the tutorial Running the Mender Server 3.7 on a Raspberry Pi 4.

Note: There are other cloud costs, like database and blob storage, and this feature only covers computing costs. Migrating from x86 to ARM for other cloud services has not been analyzed as part of this and might not have the same impact.

Ready to try the new features?

Get started is the best place to quickly test the new release from scratch and learn about the new Mender 3.7 features. It will guide you through the easiest way to get started using hosted Mender, which has a 12-month free trial with full access, no credit card required.

Share your feedback

We appreciate your general feedback on Mender, be it positive or need for improvement, in the Mender Hub General Discussions forum. Your continued feedback ensures Mender will meet your needs even better in the future!

If you believe you have encountered a bug, please submit your report at the Mender JIRA issue tracker.

We hope you enjoy the new features and look forward to hearing from you!

 


Note: The Mender 3.7 client is a Long-Term Support (LTS) release. For more information on the releases, refer to the Mender documentation.

Recent articles

An Overview of EU Cyber Resilience Act (CRA) Compliance

An Overview of EU Cyber Resilience Act (CRA) Compliance

Learn how the EU Cyber Resilience Act (CRA) enforces stringent cybersecurity requirements for PDEs. Explore compliance essentials in part 1 of 4
Mender versioning: New releases by component

Mender versioning: New releases by component

Explore Mender's shift to independent component releases and versioning, designed to enhance update speed and user clarity.
Driving secure innovation: ISO/SAE 21434 & UNECE compliance

Driving secure innovation: ISO/SAE 21434 & UNECE compliance

ISO/SAE 21434 and UNECE R155/R156 standards reshape cybersecurity in software-defined vehicles. Compliance with these frameworks is essential for protecting consumers, ensuring vehicle safety, and driving innovation in the automotive industry.
View more articles

Learn why leading companies choose Mender

Discover how Mender empowers both you and your customers with secure and reliable over-the-air updates for IoT devices. Focus on your product, and benefit from specialized OTA expertise and best practices.

 
sales-pipeline_295756365