Significantly enhanced usability and security features in newest version of EdgeX, the industry’s leading open-source edge data platform

By James Butcher

Product Manager

IOTech Systems

June 01, 2023

Blog

Significantly enhanced usability and security features in newest version of EdgeX, the industry’s leading open-source edge data platform
Image Credit: EdgeX

The leading open-source edge data platform is undergoing its most significant upgrade to date. The availability and adoption of EdgeX version 3.0 will resonate for a variety of industry sectors, including industrial automation, energy, building automation, and more.  The impact will be felt in terms of improved interoperability, scalability, security, and configurability between devices and applications at the edge.

Thanks to my roles with EdgeX Foundry and IOTech Systems, one of the key contributors to the EdgeX effort, I’ve had a front row seat to the development of this open-source edge data platform. I’d like to share with you some of the significant details of what can be expected of EdgeX 3.0. I’ll also describe how the platform continues to be the key framework upon which companies rely when developing their commercial edge software solutions.

Already well recognized as the leading open-source edge data platform, the Linux Foundation’s EdgeX Foundry is about to take another significant step forward by releasing a brand-new major updated version of the framework. Along with many other companies involved in this fantastic project, IOTech Systems is proud to be playing a key role in helping to bring the benefits of EdgeX version 3.0 to the wider edge software community.

A major version update is significant for EdgeX, not only because it indicates a new set of key features for its user base, but also because it shows the mature, yet evolutionary outlook of the base platform and the associated commercial edge products that are available in the ecosystem.

EdgeX Background

EdgeX Foundry is an open-source edge data platform, under the Linux Foundation Edge umbrella. More specifically, it is a highly flexible and scalable open-source edge platform that facilitates interoperability between devices and applications at the edge. It is made possible thanks to an ecosystem of collaborators representing a variety of industries.

What is the significance of EdgeX?

Edge software developers and solution architects use EdgeX to solve the challenge of integrating together different components needed at the edge. Key tasks here often include acquiring and normalizing data from a wide variety of industrial devices and sensors, running edge rules over that data, visualizing the data, performing control commands or actuation of devices, integrating your own edge algorithms including AI, and streaming to the cloud. Adoption of the EdgeX framework makes all these tasks easier, while the mature set of available microservices often make this a configuration rather than coding exercise.

Planning and Roadmap

As chair of the EdgeX Technical Steering Committee (the EdgeX TSC), it is my responsibility to lead the project and, with the help of the committee and wider dev team, ensure that we are creating a project that meets the needs of edge solution developers both now and in the future.

Similar to any software product, predictability of what’s coming down the line is an important consideration for EdgeX adopters. Equally important, is the open manner in which we come to these roadmap decisions. The collaborative process by which the TSC plans each release, and its feature set, is a key part of the openness and vendor-neutrality that makes EdgeX so attractive to our users. (Keep an eye out for communication about June’s open planning session for the 3.1 release we’re calling Napa!)

EdgeX 3.0 – The Minnesota Release

To help in its identification, each release of EdgeX is provided a codename based on a geographical location. The previous version was named Levski (located in Bulgaria). The next stopping point on our virtual world tour is Minnesota!

Minnesota, "land of 10,000 lakes," is part of the American Midwest. Its history is related to productivity and providing the staples (food and materials) that people of America and the rest of the world use. At one time, Minnesota produced a third of the bread supply and 20 percent of the flour in the United States.  Minnesota Mining and Manufacturing (better known as 3M today) provides everything from healthcare and consumer goods to the sticky notes on your desk. 

Like Minnesota and the Midwest, EdgeX sits in the middle. Its job is to serve and connect the edge/OT world to the enterprise/IT world. So, it is fitting that this third major version of EdgeX is named after a key industrial center in the United States.

As I wrote above, the major jump in version number lets us make more significant updates to the framework and allows us the freedom to make changes that are otherwise prohibited by our minor version compatibility rules. Of course, we try to be backwards compatible where possible, but after two years of V2 minor releases, there are some key updates and usability benefits we can now bring in.

Easier, Common Configuration

The main theme of Minnesota and EdgeX 3.0 is usability. In particular, the way the user configures EdgeX is being significantly improved.

The microservices architecture of EdgeX helps make the framework flexible and extensible, with users being able to add or replace services as they wish. The benefits of microservices are well known, however one criticism levelled at decoupled systems is the sometimes-complex way they are configured or controlled.

That is why version 3.0 of EdgeX introduces a common configuration pattern for the EdgeX microservices. Since many config options (logging, telemetry, security, database and message bus settings) apply across multiple microservices, we’ve added the ability to configure these in a single common location. Some microservices are likely to have common config requirements, e.g., the southbound device services or northbound application services, so we’ve provided a layered design. Users can configure settings common to all services or those that should only apply to the device or application services.

This will save developers and deployers of EdgeX systems a lot of time and reduce maintenance effort. It will be much easier to make config changes, rerun the system, and be confident that the settings have all taken effect appropriately. Take a look at the latest EdgeX docs for the details.

Different Config Formats

As well as configuring each microservice independently, users of EdgeX 1 or 2 were required to use a mixture of different file formats for doing the configuration. There was a mixture of TOML, YAML, and JSON file formats with which to come to grips. The jump in major version has provided us the opportunity to reduce this complexity too, and so we’ve decided on YAML and JSON going forward. YAML and JSON can be derived from each other, so we let users pick their favorite and work with that. All usage of TOML has been replaced and removed. Again, usage of the platform becomes easier and more maintainable with this change.

Service Authentication

Another big-ticket item for 3.0 is the addition of microservice authentication within the EdgeX platform. When running in secure mode, the microservices now require a validated authentication token before they are allowed to communicate. Thanks to the efforts of the EdgeX Security Working Group, this is all built into the platform with tokens issued by the Secret Store service. The security advancements here also allow version 3 to switch to a much lighter-weight API Gateway service than was used previously, which helps a lot with our ongoing effort to minimize the footprint of the platform.

Other V3 Updates

There are too many updates to list in this article but of course we’ll have V3 versions of the APIs. We do have some minor changes there including updates to help with the automatic discovery of devices, but the APIs are mature so there aren’t the major updates we had with the previous major jump. You can check out the full set of changes in the EdgeX V3 migration guide.  Full release notes are coming, of course.

Commercial Updates

As we come to our third major release, the stability and longevity of EdgeX are encouraging more adopters of the platform. For example, Eaton has recently announced its significant use of EdgeX with a new use case study regarding EdgeX adoption. Furthermore, many companies are deploying IOTech’s commercially supported implementation of EdgeX, which provides them all the benefits of EdgeX together with value-add features, such as the large set of industrial device connectors, graphical tooling, and deployment management – all as a trusted COTS product.

Using EdgeX V3 and Joining In

We’re expecting that the next version after this (3.1 or Napa) planned for Q4 this year, will become the new Long-Term Support (LTS) version of EdgeX. Those users wishing to jump from the previous LTS (2.1 or Jakarta) should start to become familiar with the new features. There are some breaking changes, so we encourage you to start to get to know V3 sooner rather than later. The features put into EdgeX Minnesota will serve as the basis for other features for the next few years. For example, using URLs to point to configuration and profiles that could come from anywhere and be shared is only possible because of the common configuration feature added now.

The lively EdgeX discussions board is a good place to chat and leave feedback.

Finally, always remember that EdgeX is an open project. Our meetings are open to all, and all are welcome. Formal membership is not needed, and contribution and input are always happily received.