Category

Blog

EdgeX Foundry @ OpenIoT Summit

By Blog, EdgeX Foundry

Written by Dell’s Jim White, EdgeX Foundry TSC Member and Chair of Core Services Working Group

Last week, several members of the EdgeX Foundry community were at the OpenIoT Summit in Portland, OR, which was co-located with the Embedded Linux Conference.  According to Linux Foundation representatives, the attendance of the conference was around 730, which is an increase from last year.

I was impressed by the level of content and quality in the presentations as well as the participant level and engagement at this conference.  The booth displays were low-key (not a lot of big equipment demos or flashy give-aways) yet the engagement level between participants and the booth representatives was very high.  During non-session periods, the showroom floor was packed with a constant stream of participants stopping by each booth to get background and details about the products and services shown (versus just trying to get the free t-shirt as you might see at other conferences).

From top: Janko Isidorovic and Drasko Draskovic (Mainflux), Jim White (dell) and Trevor Conn (Dell)

 

Several members of the EdgeX community presented talks and provided information about their work in the community.  Notably, Janko Isidorovic and Drasko Draskovic (from Mainflux) as well as Trevor Conn and I (from Dell Technologies) gave session talks (links below).

Jim White (Dell) and Tony Espy (Canonical)

 

Tony Espy (Canonical) and I also presented two beginner’s training labs on EdgeX.  The link to the lab session is below, and you might find the training materials (located at the bottom of the session notes) helpful in your own spin-up on EdgeX. In total, almost 100 participants attended these sessions and was introduced to or engaged with EdgeX Foundry in one way or another.

https://elciotna18.sched.com/event/DYf2/getting-started-with-edgex-foundry-a-hands-on-lab-jim-white-dell-tony-espy-canonical-ltd

Additionally, Dell Technologies’ own Patricia Flores made a good plug for EdgeX and put on a great show during her talk in one of the morning keynote sessions entitled “Federated Analytics at Scale.”

Patricia Flores (Dell) giving a keynote speech

 

In discussing EdgeX with the attendees, I believe EdgeX’s open, interoperable, microservice architecture is still drawing a lot of attention and consideration from companies exploring IoT solutions.  It was also clear that the current EdgeX developer focus and emphasis on targeting smaller footprint devices (with Go) was significant and left a resounding positive impression on the global IoT community.  EdgeX will also need to deliver – in measured steps starting with the California release – security and system management capabilities.

Next year’s OpenIoT Summit is in Monterey California.  Hope to see your there!

EdgeX Foundry Member Spotlight: CloudPlugs Inc.

By Blog, EdgeX Foundry

The EdgeX Foundry community is comprised of a diverse set of member companies that represent the IoT ecosystem. The Member Spotlight blog series highlights these members and how they are contributing to and leveraging open source solutions. Today, we sat down with Jimmy Garcia-Meza, Co-Founder and CEO of CloudPlugs, to discuss architecture, the ecosystem and Industrial IoT.

What does your company do? 

CloudPlugs enables energy, utility and manufacturing companies, service providers, building managers and municipalities to i) digitize and securely connect their legacy and new device infrastructure; ii) to manage end-to-end the lifecycle of their devices, applications and data; iii) to add intelligence to the edge to gain better insights and automate actions, and to easily integrate operations technology with IT systems and 3rd party applications and cloud services.

CloudPlugs offers a secure, fully integrated edge to cloud stack using state-of-the-art container technology in the cloud and in the edge.  Our suite of integrated tools for connectivity, fast service development and deployment enable companies to implement and deploy their digital transformation projects in record time. For example, a large electrical utility developed a smart micro-grid service and deployed it within 35 days making it an internal example of how technology should be implemented.

Why is your company investing in the IoT ecosystem?

The IIoT space is so large and complex that it is impossible for a single company to address the needs of the market.  For our customer projects to be successful, we need close relationships with the sensor, PLC, gateway and other edge device manufacturers, and upstream with the companies that provide data lakes, advanced analytics, machine learning tools and operations and business support systems.  A real, field deployable solution must provide integration on the edge side and integration on the cloud or data center side.  Only this way can companies truly integrate and digitize their vertical and horizontal value chains.

How has IoT impacted your company? What benefits have you seen or what do you expect to achieve? 

IoT is what we do from inception, so we live and breathe the opportunities and challenges that surround this new world.  Industrial customers tend to have 6-9-month evaluation cycles since the decisions will impact their operations and digital service and business model creation. However, what we have learned is that when they experience success, they will invest more.  Some of the benefits we saw in adding Edge One™ to Thermal and Power plants to ingest and process legacy data that is pushed to a data lake, are that the customer is now able to use data scientists to create predictive models to further optimize operations.  The confidence they gained help them venture into incorporating LoRa and sensors to transport data inside the plants and they now have an advanced material tracking system.  Other customers are building their new connected systems to change their business model from selling expensive machines to selling outcomes.  The impact of IoT and IIoT is just beginning to be felt and it will drive the Industry 4.0 initiatives in the years to come. 

Businesses currently have to invest a lot of time and energy into developing their own edge computing solutions. What are some of the business or technical challenges you have faced when adopting edge computing technologies? How have you overcome them?

We have believed in edge computing since day one. Since then, we have built Edge One™ on top of the SmartPlug™ to deliver a container based, high performance, extensible platform for edge connectivity and computing.  Coming up with an architecture that delivers flexibility, performance, scalability and extensibility has not been easy and it requires deep understanding of 1) the problem you want to solve, and 2) the technologies available and that need to be created to create a solution that can solve most of the challenges.  Extensibility is key, and we are building an ecosystem of partners who can build and sell their own container applications and services on Edge One™ to complement the modules available from CloudPlugs.

Why did your company join EdgeX Foundry?

In many ways, EdgeX Foundry mimics what we do on the edge, but we expect to contribute to the technology and use cases and to make our Edge One™ platform compatible with EdgeX products and services.

How are you going to use the framework?

We are going to add to our products the pieces that allow interoperability with other edge devices that are EdgeX enabled.

Where do you see industrial IoT in 20 years?

I hope that in 20 years we’ll be talking about something else and that most of the industrial sector will have had great experiences in deploying their Industry 4.0 initiatives.  One of the core elements of Industry 4.0 is the implementation of cyber-physical systems with the ability to learn and make autonomous decisions.  Currently, companies are overwhelmed with the tasks of connecting everything and trying to gain better insights from the data.  In a few years, as technology evolves and more, easy to integrate and use solutions become available, the number of companies using AI as part of their daily operations will grow. I expect that this will enable new battlegrounds for increased operational efficiency and new, innovative digital service and business models will emerge.

EdgeX Getting Skinny and Fast with the California Code Preview

By Blog, EdgeX Foundry

Written by Dell’s Jim White, EdgeX Foundry TSC Member and Chair of Core Services Working Group

In a post I made to this blog back in October, I reported that the EdgeX community was committed to reducing the original footprint, startup times and overall performance by making a move from Java to Go.  The community has been hard at work, and I am happy to report on the initial success of that effort.

California Preview

Today, we announced the availability of what we have deemed the “California Preview” that is available for exploration from the EdgeX sites.

The California Preview is a sample of what we hope to bring you in full this spring.  In the California Preview, the community has built several Go Lang micro services that are drop in replacements for the Java versions.  Specifically, the core services (Core Data, Metadata, and Command) have been re-created in Go Lang.  Additionally, a portion of the export services functionality found in the original Java Export Client and Export Distribution micro services have also been re-created in Go Lang.  Finally, the Core Config Seed, which is the initialization service that sets up the configuration/registry service, is now done in Go Lang.  Consul is our configuration/registry service and that has always been written in Go.

Team Effort

This has been a community effort with the Dell team providing the core Go services, Cavium and Mainflux teams providing the export services, and Samsung producing the new config seed.  The Linux Foundation led DevOps team is busy working a continuous integration process for our new Go micro services –even cross compiling for Intel and Arm platforms.  Last but not least, the blackbox testing provided by the IOTech team is making sure the replacement services are REST API compatible with the Java services and therefore are drop-in ready.  This is how open source gets done today – many companies and teams working together towards one dream.  Group hug.

Go Lang Results

Now, back to the results and benefits of all this hard work.  Because Go is compiled into an executable, the size of the application is much smaller than it’s Java counterpart – even before considering the JVM required for Java applications.  Here’s a look at the raw Java JAR versus Go executable size for the EdgeX core micro services.  The size of these same services in a Docker container is also indicated on the right side of the chart.  The Java container image size does includes the Java JVM – thus the even larger footprint when looking at Java versus Go containers.

All well and good, you might say, but what about the micro services’ use of critical resources such as memory or CPU?  Go Lang micro services used an astounding 97% less memory and generally 5 to 40 times less CPU!

Lastly, the startup time for the Go services nears 100% improvement.  We typically had to measure our Java micro service start times in seconds.  We measure our Go Lang micro services starts in milliseconds.

I have been doing Java most of my programming career.  Love Java, but in order to get EdgeX to the real edge of IoT environments, we have to put our micro services on a diet – make them small and fast.  Go Lang is helping us get EdgeX svelte.

Still Hurdles to Clear

Go is still a young programming language relative to Java.  Version 1.0 of Go was released by Google in 2012 whereas Java has been around for more than 20 years now.  The libraries, tools, frameworks, and idioms are still emerging in Go while Java has a plethora of these.  Our developer community, in some cases, is also learning that the Java-way is not necessarily the Go-way, and therefore is having to adapt to a new programming paradigm.  For example, the multiple repo approach for the Java micro services and associated share libraries doesn’t work so well in a Go Lang development environment where a single “mono” repo is preferred.  Some of our Go code will likely have to go through a refactoring exercise as lessons are learned.  That’s to be expected as even the Java micro services were refactored once or twice since being created.

The Go work is progressing but we are not done.  We need to make similar reductions to the rest of our micro service collection.  Not all the work will be done in Go Lang.  For example, we are hopeful to have a C/C++ Device Service SDK (along with a Go Lang Device Service SDK) this spring which will allow for small C/C++ micro services for some protocols/platforms at the EdgeX southern layer.  In some cases, especially for the some of the services that are more application focused and could live in bigger environments when EdgeX is distributed, Java micro services may still flourish.

However, if we are able to make similar reductions to all of our EdgeX micro services (whether using Go, C/C++, or other language), the forecast for EdgeX size and performance is quite good.  Early forecast calculations put the total memory usage (database and other infrastructure inclusive) at less than 200MB.  That compares to a 2.5GB of memory needed today.  The total containerized footprint would be around 600MB (compared to more than 1.8GB today).  And EdgeX would start up in about 5 seconds (compared to around 5 minutes today).  The concentric circle relative size diagrams for some of these metrics provide a visually compelling story that should help you soak in the differences.

Help Needed

Come help us complete this work.  Help us make EdgeX go (pun intended) smaller and faster!  In addition to the work to complete the EdgeX micro service reductions, there $is crucial work in security and system management that is to be completed for the California release.  As I already indicated, we need help completing SDKs in various programming environments.  More north and south bound connections, more testing, and more deployment / orchestration work needs to happen.  We welcome companies and individuals looking to make a contribution in the IoT landscape.

If you have questions or comments, visit the EdgeX Rochet.Chat and share your thoughts in the #community channel.

Simplified IoT Powered by EdgeX Foundry

By Blog, EdgeX Foundry

Guest blog post by Siddharth Tiwari, Chief Architect, Application and Big Data/IoT Transformation for Dell EMC

IoT is not just a buzz word, it’s a new way to make our surroundings and our lives more interactive and responsive. Here at Dell, we interact with customers day in and day out discussing various problems and issues.  Some relate to supply chain, some relate to fraud, some to yard management and then some to just mere optimizing customer interactions. Over time, I realized that many of these issues can be simply resolved by introducing more connectivity across various assets through the Internet of Things.

It’s easier said than done – connecting things together can get quite complex. Imagine having 100 people in a room. They’re all speaking different languages and trying to have a conversation. This is similar to what happens when one tries to connect desperate assets together. For example, some devices may talk SNMP, while some other may communicate over BACNET. It becomes challenging to bring all of them on to a common platform.

But not to worry!! EdgeX Foundry has come to the rescue! First of all, it simplifies the architecture, which can become really complex, by adopting a modular micro-service based approach. Secondly, since it’s highly extensible, it allows one to add and customize it based on needs. Last but not least, its footprint is so small that it can be easily run on something as small as a Raspberry Pi.

In this blog, I am going to demonstrate how EdgeX Foundry is simple to architect. When combined with our top of the line skills around data science and architecture, it becomes one of the most effective tools to solve really complex issues.

So, as a matter of introduction, I have been living in Arizona for a large part of my life. One issue I have had always grappled with has been the balance of Temperature and humidity. According to experts for healthy lifestyle, one must have at least 40 to 50% of humidity maintained at all times, whether winters or summers. But, when you live in a hot and dry place like Arizona, what you get is mostly 1% humidity, and as soon as winter arrives, all the heating from Air-conditioning reduces internal humidity again to 2 to 4%. Then you grapple with a challenge to maintain optimized temperature and humidity, which made me run my thermostat and humidifier constantly.

So that was my problem, and being a data scientist, I knew I can model this correlation out and create some kind of rule for optimizing the same. But, to achieve this, I needed consistent data and a little bit better enterprise grade acquisition mechanism and then resources to model this. After a lot of research, I found EdgeX, which helped me answer a lot of things in a straight forward manner. Finally, I decided to take more of an IoT approach to this problem, similar to how we go about helping our customers, so that I can repurpose some of this at an enterprise level.

What I needed to do were following:

  1. Ability to collect temperature and humidity outside, and at various locations inside.
  2. The collection points should operate at really low energy and must send all the data wirelessly.
  3. A gateway which could collect all this data and route it where I can store the data reliably.
  4. Ability to distribute the same over the internet, and utilize a publically exposable service to access data over an API.
  5. A rule engine, so that I could get a trigger over to take decisions.
  6. Something that can take these rules and convert the same into commands.
  7. Integration between my Thermostat and Humidifier.

Now, it was important to assign bill of material to above, so I chose following:

  1. Low power temperature and humidity sensor:- DHT22
  2. Low power module to broadcast this data: ESP8266 wifi module
  3. Dell 3000 to act as gateway
  4. EdgeXFoundry the brains, which gets all this data and routes it to end points
  5. Raspberry pi zero, which ran SNMP service to broadcast temperature and humidity so that edgeXFoundry’s device-snmp service can walk SNMP messages and distribute to external end points.
  6. Alexa SDK which became my central command center
  7. A Smart thermostat
  8. Humidifier
  9. A GPU based PowerEdge server to perform all the Deep Learning and Machine Learning activity

The Architecture looked something like below:

The first thing to be done was to broadcast the temperature and humidity values over from ESP8266 modules over UDP to Raspberry Pi and then extract the message from the packets and then make them accessible over SNMP.

We created firmware, which got the analog data from the sensor and broadcasted those values over UDP, over to raspberry Pi which was running SNMP service. Once we had the packets arrive, we needed to extend SNMP to broadcast humidity and temperature over two different individual OIDs. Honestly, this was the most difficult part.

Now, came EdgeX and rest of the things were cakewalk. Just three things and we were set:

  • Create an addressable
  • Create a device profile
  • Attach the device to a service – SNMP in our case

Now, all set to distribute data over to cloud hosted MQTT broker. Once we had all the data over to cloud, we created two streams: one where we utilized EdgeX Foundry’s rule engine to trigger certain events using Alexa’s SDK and the other to do all the machine learning in the backend and integrate the same with Alexa SDK to provide a decisioning engine.

We grabbed all the data in Azure to create real-time dashboards and collected data in a PowerEdge machine and ran multiple algorithms every 10 hours to create correlation between Humidity and Temperature and use it to tweak the level of Air conditioning, heating and humidification.

We ran hexplot, robust and KDE to make sure, we are getting best correlations, some of the outputs of the algorithms looked as below:

As it shows while temperature as more distributed pattern, humidity has single collocated pattern and both have a negative correlation coefficient of -0.6 and that is consistent across all three plots.

We used elastic search hosted in Azure to pull all this data and plot it on real-time using kabana.

Real-time Azure Dashboard

 

All events inside Elastic search

 

Visible negative correlation

While this is basic, it gave me a lot more useful and optimized methodology to maintain a balance between temperature and humidity. Not only this, I was able to predict certain level of impact of outside conditions towards the environment inside.

These parameters were exposed via a python based decision module to utilize Alexa SDK to proactively manage when and by how much I should humidify, cool or heat my home.

What was the outcome? Well EdgeX enabled me to simplify this task so much that it takes minutes for me to add more devices and definition to the data I receive or collect. Moreover, I maintain humidity of around 42% consistently around me, and as a byproduct I have ended up saving more than $35 on an average on my electricity bills.

Bottom line is, while IoT is a complex animal to handle, EdgeX makes it quite easy to integrate various different kind of devices and while doing that provides scalable way to distribute all this data to external endpoints. It automatically creates and enables a rules engine, which can take this information and enable one to create various triggers to effectively realize the potential of IoT.

On top of all this, our services enable simplification of complications which inhibit IoT adoption, from Engineering, data science and business perspective. Power of connected things is endless, and our solutions help streamlining and simplifying their adoption on all aspects.

If you have questions or comments, visit the EdgeX Rocket.Chat and share your thoughts in the #community channel.

EdgeX Foundry Member Spotlight: Mocana

By Blog, EdgeX Foundry

The EdgeX Foundry community is comprised of a diverse set of member companies that represent the IoT ecosystem. The Member Spotlight blog series highlights these members and how they are contributing to and leveraging open source solutions. Today, we sat down with William Diotte, President and CEO of Mocana, to discuss embedded security software, military applications and IoT analytics.

Tell me a little bit about your company.

Mocana provides mission-critical IoT security solutions for embedded systems, industrial controls and the internet of things. Today, Mocana protects more than 100 million embedded devices within military aircraft, manufacturing automation equipment, electric utility grid control systems, medical equipment and IoT devices. Our IoT security platform goes beyond traditional security approaches by making IoT and ICS devices trustworthy and enabling secure device-to-cloud communications.

Why is your company investing in the IoT ecosystem?

To deliver IoT- and connected-device-based services, it requires an entire ecosystem of connected, interoperable systems and services — from the chips to the sensors to the gateways, and up into the cloud or core systems and services tp provide “networks of systems.” Securing this “network of systems” requires a holistic approach and Mocana has developed relationships with a broad ecosystem of vendors in the IoT marketspace to develop pre-integrated solutions to ensure end customers receive robust, consistent protection when launching IoT services, while spending much less time architecting, developing and then supporting their new offerings.

How has IoT impacted your company? 

Mocana was founded in 2002 to provide security software for embedded systems in military aircraft and devices. We then extended our solution to address the needs of the industrial automation and controls market. With Mocana solutions protecting more than 100 million devices today, we are in a great position to help the IoT industry protect the billions of connected devices to ensure their security and safety.

Businesses currently have to invest a lot of time and energy into developing their own edge computing solutions. What are some of the business or technical challenges you have faced when adopting edge computing technologies? How have you overcome them?

Computing at the edge involves placing more intelligence in devices rather than handling all of the analytics and decision-making at the core, in a remote data center. For example, today’s modern industrial-grade surveillance cameras handle much of the video analytics at the edge. This allows a remote camera on a street corner to analyze surveillance video footage locally within the camera, rather than having to backhaul all of the data back to the cloud to analyze it. There is great advantage to doing this to speed analysis and reduce the time it takes to identify characteristics, such as color, object type and direction, in real time. The challenge of embedding more intelligence into edge devices is that they are sometimes resource constrained, meaning they have limited processing power and memory relative to a full-blown computer or data center server. Mocana addresses this by working closely with silicon vendors and real-time operating system software providers to optimize the performance of our security software on minimal systems so that edge computing applications can run securely.

Why did your company join EdgeX?

Mocana joined EdgeX as a founding member in order to deepen partnerships and relationships with Dell, VMware, Ubuntu, ADI and other major organizations within the growing IoT gateway ecosystem collaborating in the EdgeX community. The membership extends Mocana’s mission as an IoT security provider for devices that are delivering high-value connected services on edge computing systems. Mocana’s interoperability with the EdgeX ecosystem is essential to ensuring end customers have access to a robust, reliable, commercially tested and supported security solution that secures their high-value services running at the edge, as well as their device-to-gateway-to-cloud network of systems. The company is focused on improving interoperability, securing gateways, and providing a chain of trust for both northbound and southbound communication and analytics.

How are you going to use the framework?

Mocana will deliver an easy-to-use plug-in to quickly migrate from the base EdgeX open-source security framework and tools to Mocana’s comprehensive, reliable, commercially tested and supported security solution that secures their high-value services running at the edge, as well as their device-to-gateway-to-cloud network of systems.

Where do you see enterprise and industrial IoT in 50 years?

It’s hard to predict where the industry will be in 50 years; however, there no question that the internet of things  will transform the way we live, work and interact with our physical world. Sensors will be ubiquitous in everything, from our basic needs of what we eat and drink to what we use to do our jobs and experience the world. For example, today, sensors — tiny microcontrollers that are as small as grain of sand — are used in agricultural applications to measure temperature, moisture and pH of the soil. These sensors will decrease in size so that they can be ingested and measure various aspects of your health. In factories or even hospitals, human workers will work alongside robots that can use artificial intelligence and enhanced physical strength to improve the productivity as well as the safety of workers. In smart cities, the street lights will become beacons of information filled with sensors for weather, light, traffic, sound, proximity and surveillance. These will provide a great deal of information to make our cities safer and more efficient. As part of the Industry 4.0 revolution, industrial manufacturers are already incorporating sensors into factory equipment to measure performance and improve uptime and productivity. In the transportation sector, we will certainly see connected vehicles and autonomous driving cars. Fast progress is being made in this area. In 50 years, I could see flying personal vehicles and certainly a proliferation of drones.

 

Looking Back on EdgeX Foundry’s First Year and Preparing for Continued Growth in 2018

By Blog, EdgeX Foundry

Written by Jason Shepherd, Chair of the EdgeX Foundry Governing Board and Dell Technologies IoT CTO

I can’t begin to express how exciting it is to see how what we started as a small team at Dell in July of 2015 has blossomed into a vibrant community of nearly 70 member companies with much more activity brewing behind the scenes. It truly is the most rewarding collaboration I’ve been part of in my career and I want to thank the many people that have helped along the way.

We’ve accomplished a lot as a community in just the past nine months since the April 2017 launch:

  • The Technical Steering Committee (TSC) and work groups are running smoothly and we have established a bi-annual release roadmap that we’re already meeting schedule commitments against – both with the first ‘Barcelona’ community release that dropped Oct 20 and the ‘California Preview’ last week.
  • Last October we announced an alliance with the Industrial Internet Consortium to collaborate on test beds and best practices and we’ve also established liaison agreements with multiple standards bodies and other open source projects.
  • More alliances are in the works across the board. Part of the power of EdgeX is that it’s a tangible foundation that can help standardization efforts work better together.

EdgeX Road Map

 

We’re all ears for new collaboration ideas that further the cause for greater IoT interoperability and adoption.

As with any open source project you don’t have to be a member to download or use the code, join the TSC meetings or participate in the working groups, but membership does come with benefits.  In addition to being visible on the logo boards as a thought leader and having direct (Platinum tier) or indirect (Silver tier) representation on the Governing Board we also offer a variety of events where members can join at a subsidized cost.

EdgeX Foundry Members

 

For example, we had our first official joint project presence at IoT Solutions World Congress in early October with 12 EdgeX member companies in attendance demonstrating their commercial value add on top of the EdgeX foundation. The booth was packed throughout the show and more events are in the works including Hannover Messe in April where we’ll celebrate our first birthday in the same spot it all got started a year prior.

Many EdgeX members have struck up new strategic relationships and even business since the project tends to act as a vendor-neutral IoT partner program.

Every day we’re seeing more and more active contributions from the community, a number of which are highlighted throughout this blog.

The blog on the Schlumberger contribution is a great example of the power of the project – just like that any existing southbound device connectivity now has a path to Google IoT Core.  We also already have an EdgeX Export Service for Azure IoT Suite and AWS is in process along with numerous other targets including the industrial clouds, tools like OSIsoft Pi, SAP Leonardo and IBM Watson.

Late last year the Dell team did a hackathon to tie AR tools into EdgeX to enable an entirely new UI experience. We’ve even prototyped with voice assistants like Amazon Alexa, enabling voice control of connected equipment through any number of underlying communication protocols.

Each of the posts below is a great example of the scale and innovation possible when developers stop reinventing the plumbing of an IoT stack and start focusing on value creation around the wheel.

On the south side, we’ll see device makers start providing EdgeX-compliant drivers with their products for greenfield applications, plus we’ll see a business models for creating and selling Edge-X compliant device services that interface with legacy equipment.

Beyond the core project we’ve seen the community expand in the form of university-sponsored EdgeX research efforts plus EdgeX-focused hackathons.  Throughout 2018 we’ll be encouraging more developer engagement through various types of channels.

We can always use more help so if you’re a developer and would like to get involved just dive in!  In terms of spreading the word in general a great starting point is by joining our Speaker’s Bureau.  And finally, nothing brings together a community like free food and drinks – so help us spread the word on EdgeX at your local IoT meetup and we’ll provide $250 for your tab.

Closing on the community aspect, while we greatly appreciate our founding and new members and their ongoing contributions and commitment to our cause what’s equally exciting is the activity that most don’t see behind the scenes – hundreds more companies in various forms of engagement spanning active evaluation to building PoCs to even incorporating EdgeX into their commercial products.

Are we there yet?

Speaking of commercialization, customers ask me all the time when EdgeX “will be ready”. My first answer is always this – whenever you package up a version of the code and pick up the phone to offer customer support. But then I expand by saying that I see field PoCs beginning to scale out this summer after the June California release and production deployments increasingly spinning up later this year.

Frankly, the EdgeX code base is more mature today than what a lot of people are hacking together out there for PoCs but at the same time we want to make sure we do things right. Aside from the massive reduction in footprint from the original seed code (more on that later) the biggest inflection point in June will be the addition of key security and manageability features.

From a Dell perspective, we purposely didn’t include much for security in the initial seed contribution because we felt it was important that these features are defined by the community so they’re universally trusted. So, for the past 9 months there has been a global collaboration between security and manageability leaders to define layer upon layer of security modules and management practices with the first wave of functionality from a broader roadmap hitting in June.

And like everything else, the baseline plumbing APIs and reference services for this functionality will be open to enable a variety of best-in-class commercially-licensed EdgeX-compliant plug-ins for security and manageability functionality.

Most importantly, we’re starting to see the EdgeX framework being included in projects by end customers.  I haven’t yet met an end user who doesn’t love the benefits an open ecosystem that provides freedom of choice to make or buy value-added components. Important to any open source project is the commercialization aspect as while many end customers love the benefits of EdgeX they don’t necessarily want to support the open source baseline themselves.

Numerous companies are already launching their own commercially-supported versions of EdgeX together with developer support. I need to stay vendor-neutral here but definitely keep an eye out for more on this front!

Size (and speed) matters.

When Dell started incubating the code that became EdgeX, we were more interested in the right architecture for facilitating and building an ecosystem than optimizing the starting footprint.  As such, our original contribution that was based on Java and some Javascript and Python had a pretty large footprint.

However, the beauty of a microservices framework is that each component can be individually replaced with more compact versions that leverage the same APIs.

Fast forward to now and the Go Lang-based microservice alternatives in last week’s “California-preview” release demonstrate a path to reducing the footprint and boot times by an order of magnitude.

The code is in the GitHub now – download and give it a spin!

The net effect is that soon the full EdgeX stack will run on a Raspberry Pi-class device and of course microservices can be broken apart in any combination to run on even lighter weight devices.

Further, there’s no reason various sections of the code can’t be combined in commercial implementations using the same foundational APIs – it really comes down to a tradeoff of performance over flexibility.

Get on the bus!

In addition to the massive footprint reduction, work is already underway for a message bus option to improve throughput for streaming data between microservices as compared to the current REST-based intercommunication.

This combined with the overall Go Lang work for reducing footprint is driving increased interest across the board. We purposely didn’t start with a high performance, low footprint foundation because it’s important to allow the community to creep up on what’s table stakes for open source versus valuable to make proprietary while still leveraging the common APIs for interoperability.

It’s all about the APIs.

This ability to build proprietary, interchangeable components brings me to one of the first misconceptions that I encounter when I talk with people about EdgeX.

Some think that you have to give away all of your IP because it’s an open source project. However this is far from the case because the EdgeX project has been carefully architected to enable commercial value-add around a lowest-common denominator open source foundation, more specifically the associated APIs.  As such, you don’t have to contribute any value-added functionality you develop to open source, rather you’d just leverage the specified open SDKs and/or APIs to create them if you want to be “EdgeX-compliant”.

The bottom line is that EdgeX is more about the community-governed APIs than the code itself and you can replace every lick of code and still be “EdgeX-compliant” by following the baseline APIs.  So, in the future we’ll see proprietary high-performance versions that use the same foundational EdgeX APIs.  For example, by replacing the current Core Services baseline with a compressed C-based binary you could enable PLCs that can be software-defined with plug-in value add from the ecosystem.

There are many opportunities for proprietary value add beyond the EdgeX foundation spanning functions for real-time operation, workload orchestration, load balancing, failover, redundancy, TSN, security, system management, analytics and device drivers. This ability to monetize within an open, hardware- (e.g. x86, ARM), OS- (e.g. Linux, Windows, Unix, RTOS) and protocol-agnostic ecosystem while minimizing reinvention is what’s driving so much interest in the project.

What’s with that ‘X’?

Clearly “Edge Foundry” plays off of Cloud Foundry but we sometimes get the question “what’s with that X?”

The answer is that the X allowed the project name to be trademarked for use as a future certification mark. We’re targeting a launch of a certification program within the Linux Foundation project early in 2019 and this vendor-neutral effort will enable providers to certify that regardless how much they added to or changed the baseline code for their commercial offering they maintained the specified EdgeX APIs that facilitate interoperability.

Stability for key elements in the certification program (e.g. required APIs and overall process) will be maintained through the EdgeX Technical Steering Committee (TSC) and a versioning system.  This certified value-add can be a full EdgeX-compliant IoT platform, a value-added plug-in microservice(s) or a services model that taps into the APIs.

Imagine your offering accompanied by the EdgeX logo which gives customers the confidence that they can readily plug it into their solution… now that scales!

It’s not just about gateways.

A second misconception I often see is that EdgeX is only about edge gateways.

While it’s most tangible to first talk about the project in the context of gateways because these devices are inherently a place where “south meets north” in an IoT stack, the loosely-coupled microservices architecture enables interoperable value-add to come together across any sort of distributed computing model.

Microservices serving various functions can be deployed in any number of different types of container or VM technologies – all on one device or spread across many devices working together in a broader networked system.

Device Services can be broken out and deployed on capable smart sensors that in turn communicate directly with a server in a datacenter or in the cloud – look ma, no gateway!

Further, we’re starting to see people experiment with the idea of co-processing within one device by running the Core and Export Services on the main host processor and analytics on a co-processor (e.g. GPU or FPGA) for acceleration.

In all cases these functions – whether based heavily on the open source code or 100% net-new proprietary code – can be written in any different programming language and be bound together by the common EdgeX APIs.

Net-net, we’ve had thousands of conversations with partners and end customers regarding the project approach and every day it becomes even clearer how EdgeX benefits end users in the inherently heterogeneous IoT market.

The enablement of distributed computing is what really sets EdgeX apart – there are many great open source efforts out there but there remains to be nothing like EdgeX for facilitating a truly open ecosystem for distributed IoT edge computing.

Putting things in perspective.

The IoT market is messy and there are a lot of solutions looking for problems out there, so as the code takes shape to facilitate grater interoperability we’re also working together to put the project in perspective for valuable real-world use cases.

Samsung is chairing a Vertical Solutions Working Group that will host specific use case-focused projects that drive requirements from end users back into the roadmap in addition to developing and deploying test beds.  They’re organizing one themselves for smart factories and the TSC recently approved a proposal from National Oilwell Varco (NOV) to spin up a project for Oil and Gas.

The working group will host similar efforts for many other industries and use cases and each will be a great way to prove out the platform in real-world settings. Building Automation is likely one of the next efforts to spin up and we encourage you to step forward and collaborate with industry peers on other key use cases spanning transportation to retail to healthcare and beyond.

As things progress we’ll group common paradigms as appropriate (for example needs for remote oil and gas and mining sites are very similar) while recognizing unique needs, ecosystem players and standards by industry.

Last month we launched an effort to post relatable stories about these use cases enabled by EdgeX in online communications.  Stay tuned for more details there.

With that I’ll close for now.  Again, thanks to everyone for their contributions to date and I look forward to what’s in store for 2018!

If you have questions or comments, visit the EdgeX Rochet.Chat and share your thoughts in the #community channel.

Running EdgeX Foundry on Kubernetes

By Blog, EdgeX Foundry

Guest blog post by Rohit P Sardesai, System Architect, Huawei Technologies India Pvt Ltd.

Why Kubernetes for Edge?

An edge computing platform comprises of many management and application services deployed on tens of thousands of edge-gateways managing millions of devices. Ensuring reliability and scalability of these services at such a large scale can be ensured by a platform like Kubernetes which orchestrates containers in a scalable and highly available way.

Kubernetes Pods and Deployments

Pods are the smallest deployable units of computing that can be created and managed in Kubernetes. A pod is a group of one or more containers logically co-located to share the same network, volumes etc.

A Deployment is a controller which manages pods and ensures the desired number of pods are always running.

An EdgeX core-metadata deployment yaml could be defined as below:

Figure 1. Metadata-deployment.yaml

 

The spec defines the containers to run, docker image to use, and ports to expose.

Kubernetes volumes

A Kubernetes volume is just a directory to store some data. To use a volume, a pod specifies what volumes to provide and where to mount those into containers. In Fig 1 above, volumes and volumeMounts are specified for the mongodb data, logs, and consul-config and consul-data directories.

Kubernetes Services

A Kubernetes Service is acts an intermediary for pods to talk to each other, providing features like load balancer and service-discovery. It routes the requests to backing pods based on matching labels.

Figure 2: EdgeX Services Communication

 

An EdgeX core-metadata Service yaml could be described as below:

Figure 3: Metadata-service.yaml

 

The config-seed service in EdgeX currently provides service discovery for all other services. Kubernetes Services serve the same purpose, so we don’t need to run the config-seed service in Kubernetes.

All other EdgeX micro-services have a dependency on the config-seed service which can be removed by setting the setting spring.consul.enabled to false in bootstrap.properties and rebuilding the docker image.

Figure 4: Disable consul dependency

Setting up a single node Kubernetes cluster

kubeadm tool can be used to setup a single node Kubernetes cluster :  https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

Kubernetes supports different pod network add-ons implementing the Container Network Interface (CNI). I used Weave as the pod network add-on.

If using weave, make sure you start kubeadm with the correct pod-network-cidr range:

$kubeadm init –pod-network-cidr=10.244.0.0/16

Next, install the Weave pod network:

$kubectl apply -f “https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d ‘\n’)”

Creating Services and Deployments

Create Service objects for all the EdgeX micro-services using the kubectl command line tool.

$kubectl create –f <service.yaml>

Next, create the Deployment objects for all the services.

$kubectl create –f <deployment.yaml>

The order of creation of the deployment objects is similar to the Docker Compose approach. The only difference being we don’t bring up the volume and config-seed services.

Deployment and Service yamls and scripts to create the EdgeX Services and Deployments can be found here: https://github.com/rohitsardesai83/edgex-on-kubernetes

Figure 5: Project structure

 

The scripts in the hack folder can be used to bring up/down the EdgeX services.

If you have questions or comments, visit the EdgeX Rocket.Chat and share your thoughts in the #community channel.

EdgeX F2F TSC Meeting and the evolution of the EdgeX Cadence

By Blog, EdgeX Foundry

Written by Dell’s Jim White, EdgeX Foundry TSC Member and Chair of Core Services Working Group

Last week (Jan 16-18), the EdgeX Foundry Technical Steering Committee (TSC) had our 4th face-to-face meeting in Orlando.  Our previous meetings were held in Boston (June), London (July) and Barcelona (October).

All of the EdgeX project business is conduct in an open fashion, so we invite anyone with input and something to contribute to join us in our face to face meetings.  To that end, while we had 10 TSC members in attendance, we also 14 non-TSC members attend, with another dozen joining at some point during the week by conference call.  The EdgeX technical community is certainly alive and well!

Our meeting topics were far and wide, but the central themes were focused on:

  1. The work tasks and duties around getting the California Release out (scheduled for June 2018)
  2. Architectural issues that need addressing for the California Release and beyond

California Release Planned

The California Release will include the first EdgeX security and system management features.  There is much work to be done, but the committee agreed on the implementation of these first elements toward offering a more secure and better managed EdgeX platform by June:

  • An open source reverse proxy will be selected and integrated in to EdgeX to protect against unauthorized access of the micro service REST APIs.
  • An open source authentication/authorization service will be incorporated in to EdgeX and be used by the reverse proxy, but other elements of EdgeX in the future.
  • An open source data protection service will be integrated in to EdgeX to provide key management, certificate services, and encryption capability – which can and will be used by several elements of EdgeX.
  • Each micro service will be outfitted with a system management API that allows it to set the service’s administrative state, stop the service, or get/set its configuration among other operations.
  • A system management micro service (call the system management agent) will facilitate 3rd party requests (eventually in a system management API of choice like OMA LwM2M, SNMP, etc.) while also performing more broad operations such as restarting all micro services.

Architectural Resolutions

As with any software system, there are a number of architecture issues which need to be addressed – or on occasion readdressed – as the platform evolves.  With EdgeX, we are learning that face-to-face meetings are a great place to tackle the architectural decisions where brainstorming, whiteboarding, and extended conversations over lunch/dinner/drinks can really help to resolve issues that don’t fit in our weekly working group conference calls.

The architectural topics discussed and resolved during our meeting last week include:

  • EdgeX will officially support one main “reference implementation” of any micro service at a time going forward. With Go Lang micro services being created to help reduce the footprint, startup time, and performance associated to some of our Java micro services, the question was raised as to what happens to the Java micro services once the Go Lang replacements are ready?  We decided that going forward, the community would have one main implementation of each micro service, but if others in the community were willing to help maintain/support other implementations, they could be retained as “alternate” implementations – otherwise they would be archived.  EdgeX remains committed to its polyglot tenet – that is, any micro service can be allowed to be created using any programming language of choice.  The reference implementation of each micro service will be the implementation that the community believes is the best implementation – regardless of language – while also meeting the API requirements and quality agreements for that service.
  • EdgeX is starting to receive some sizable contributions. How do we take on large code contributions from the community?  What’s the process for ingesting the code, making sure it fits the current architecture (or plan-fully rethink the current architecture if necessary), and meets quality levels expected of the project?  A new contribution process and tooling framework was designed by the community to deal with this need.  More information will be made available on the Wiki as this is drafted and formalized.
  • EdgeX uses Docker and Docker Compose for its deployment architecture today. What does EdgeX want to support in the future?  The community agreed to continue to use Docker and Docker Compose but also allow members of our community to present alternatives and ideas for additional solutions – like Kubernetes – in the near future.
  • With multiple Device Service SDK’s to be constructed in different languages over this release cycle, what elements of design should the different SDKs share and where can they be different? Our Device Services Working Group chairman is going to lead a requirements session followed by a design session in the coming months to bring some conclusions to this issue.

Other Significant Work

What else was covered in our face-to-face meeting?  Plenty!  You can see a deck of resolutions and action items here.

Additionally, if you want to see the agenda or listen to recordings of the meeting, you can also find them on our Wiki.

Other highlights include:

  • We resolved to make the California Preview available by Jan 31st. The Preview will include the Go Lang Core service replacements and demonstrate, dramatically, improvements in micro service footprint, memory and CPU usage, and start up times.  I’ll have another blog post in the near future to outline the performance improvements we are seeing with Go Lang.
  • In addition to security and system management, the California Release will include more complete blackbox testing as well as performance tests, native ARM testing, SDKs in C and Go Lang, and improved documentation
  • We revised and updated our roadmaps for the Delhi release (Oct 2018) and newly named Edinburgh Release (April 2019). Look soon to our project Wiki for details on these updates.
  • Plans were made to participate, formally as a community, with presentations/demos at Hannover Messe and IoT Solutions World Congress among other potential conferences this year.
  • We also resolved to meet again for our next face-to-face in June, right after the California release, to plan the Delhi release at a venue to be determined.

And We Had Fun!!!

Being a part of EdgeX has been a highlight to my career.  The community of experts that participate in EdgeX Foundry are just plain good people to be around.  There are some spirited discussions, but egos are always checked at the door in these meetings.

We always manage to get in at least one community dinner, and for this meeting, our dinner was at the top of the Orlando airport’s Hyatt hotel.  Plenty of good spirits and spectacular views to go around.

A number of our community planned to go to Cape Canaveral to see a rocket launch on the last evening.  Unfortunately, the launch was cancelled due to weather.  But this gave us all an appetite to one day see EdgeX in “SpaceX” and come back to see another launch.

EdgeX Foundry Member Spotlight: Kodaro, LLC

By Blog, EdgeX Foundry

The EdgeX Foundry community is comprised of a diverse set of member companies that represent the IoT ecosystem. The Member Spotlight blog series highlights these members and how they are contributing to and leveraging open source solutions. Today, we sat down with Larry Andriunas, President of Kodaro, to discuss analytics, the EdgeX ecosystem and the role software plays in the Internet of Things. 

What does your company do and what is your your role?

Kodaro is a building software company primarily aimed at helping contractors and controls companies find value in building data from the edge to the cloud. We’re a company of engineers and computer programmers who believe building analytics should empower people to solve problems and make facilities more efficient. In addition to Analytics as a Service, analytics rules packages, and cloud hosting services, we make a variety of products to integrate and expand the capabilities of the Dell Edge Gateways for building systems. I’m the Founding President of Kodaro, overseeing the team as we unpack building data and turn it into actionable information for building controls managers.

Why is your company investing in the IoT ecosystem?

In a very short time the IoT has gone from something people whisper about to a keyword at the heart of countless analyst reports from here to Dubai. This has been driven by consumer-facing sectors like smart home devices and wearable technologies and we in the buildings industry are realizing it’s only a matter of time before all those people and all those devices impact the way we operate buildings. We’re investing in the IoT ecosystem because we believe that buildings of the future are connected and full of data that adds value, through energy savings, increased occupant comfort, equipment longevity and better connections.

How has IoT impacted your company? What benefits have you seen or what do you expect to achieve?

The IoT essentially is our company. Without a network of connected devices transmitting data within and between each other, we couldn’t do what we do. Some of our software facilitates the data transfer, others translate and analyze the data once it gets to where it needs to go. As building controls and integrators advance into this open and connected world we as a software company will be able to find, understand and act on more information about what’s happening in buildings than ever before.

Businesses currently have to invest a lot of time and energy into developing their own edge computing solutions. What are some of the business or technical challenges you have faced when adopting edge computing technologies? How have you overcome them?

As a software company in building automation, we’re often working between hardware and third-party applications. Each piece operates at opposite edges, and in many cases they use different languages or frameworks to conduct similar operations. So, much of our time and energy is spent bridging those gaps with software. One exciting example is our machine learning algorithms that automatically tag data so that it can be integrated into the building automation system more quickly and cost effectively.

Why did your company join EdgeX?

By creating an open source community, we believe EdgeX will attract the best minds to solve the most complex problems of the IoT. As a software company for the IoT, it was important that we part of the team that’s stitching it all together.

EdgeX Foundry Ecosystem

 

How are you going to use the framework?

We plan to deploy the EdgeX Framework from edge to cloud to create easier, faster connectivity so that we can better run data analytics in building systems.

Where do you see enterprise and industrial IoT in 20 years?

IoT is now compartmentalized into homes, buildings, industrials. In 20 years, I see seamless integration across verticals. Our lives will be integrated into buildings, buildings will be integrated into cities and so on. As the IoT advances, it will change how our lives are connected.

 

 

Learn How to Connect New Devices and Sensors Quickly with these EdgeX Device Service/Device Profile Tutorials

By Blog, EdgeX Foundry

Written by Dell’s Jim White, EdgeX Foundry TSC Member and  Chair of Core Services Working Group

As you explore EdgeX Foundry, one of its strengths is its ability to bring on connectivity to new devices and sensors quickly.  This is facilitated by the device service SDK and device profiles.

Recently, Chad Young of Dell helped create some wonderful additions to the EdgeX tutorial set in these areas.  Chad create a collection of videos to give better examples of how to use the SDK to create a device service in a step by step video guide.  These videos can be found on the EdgeX Foundry YouTube channel: https://www.youtube.com/c/EdgeXFoundry. He also created a Wiki page in the EdgeX documentation that covers the same:  https://wiki.edgexfoundry.org/display/FA/Modbus+-+Adding+a+device+to+EdgeX.

For additional background, Tyler Cox also from the Dell team added more documentation about the device profile, providing more details and linked in references to examples (https://wiki.edgexfoundry.org/pages/viewpage.action?pageId=7602686).

Device services are the micro service connectors interacting with the devices or IoT objects that include, but are not limited to: appliances in your home, alarm systems, HVAC equipment, lighting, machines in any industry, irrigation systems, drones, traffic signals, automated transportation, and so forth.

The device services communicate with the devices, sensors, actuators, and other IoT “things” through protocols native to the IoT object. The DS Layer converts the data produced and communicated by the IoT object, into a common EdgeX Foundry data structure, and sends that converted data into the Core Services layer, and to other microservices in other layers of EdgeX Foundry.

As one might expect, the device service SDK helps developers create the device service micro services.  The SDK provides the boilerplate code – what we can the device service scaffolding – to which a developer can more quickly add the specific elements for communicating with a type of device/sensor and get it plugged into EdgeX.

Each specific device and sensor that is managed by EdgeX Foundry must be registered with Metadata and have a unique ID associated to it. Information, such as the device’s or sensor’s address is stored with that identifier. Each device and sensor is also associated to a device profile. This association enables Metadata to apply generic knowledge provided by the device profile to each device and sensor that is connected via the device service to EdgeX.

The additional tutorials and documentation were as a result of requests from the EdgeX community for more help.  We heard and continue to listen to community requests.  Please keep the feedback coming!

We hope the community will find these additions in the tutorials and documentation around the SDK and device profile helpful, and our thanks to Chad and Tyler for their great work.