EdgeX in Action, Part 1: Installation

This is the first article in series “EdgeX in Action”. In this article we will cover system installation and set-up.

Drasko DRASKOVIC
Mainflux IoT Platform
3 min readSep 1, 2018

--

We at Mainflux are building one of the world’s first EdgeX-compliant IoT gateways called MFX-1. Our vision is producing end-to-end open-source IoT system — from the edge to the cloud — where fleets of MFX-1 EdgeX gateways are connected to Mainflux IoT cloud and managed via web applications.

In order to achieve this, we do a lot of hacking around EdgeX core and contribute improvements upstream. As a matter of fact, two of our members sit in the project’s TSC and work on defining the project’s future.

In order to help EdgeX enthusiasts and developers, I decided to publish a series of tutorials and guides about EdgeX development, titled “EdgeX in Action”. This is a first post of the series and it will describe EdgeX installation and set-up process.

EdgeX Foundry is a vendor-neutral open source project building a common open framework for IoT edge computing. In other words, it is a set of system software and web services that runs on the IoT gateways or all over edge-fog-cloud continuum. You can read more about EdgeX Foundry in my book “Scalable Architecture for the Internet of Things” published by O’Reilly Media. You should also take a look at EdgeX Tech Talks from the project’s official wiki.

EdgeX was initially implemented in Java and released by Dell through Linux Foundation. Mainflux team helped a lot in architecturing and rewriting the implementation in Go. Benefits were huge, and as a consequence code becomes easier to deploy and develop.

How easy? Well, let quickly install the system. But we’ll do it like real devs — we’ll install the system natively on the development host, and not via set of dockers.

EdgeX currently uses MongoDB as it’s main storage for all the services, so we will need MongoDB up and running on the host. Something like:

sudo apt-get install mongodb

will do the job.

Now we are ready to install EdgeX Go:

That’s it — you have your EdgeX system up and running.

If you tun into some problems in deploying the system by executing make run — notably connecting to MongoDB on the host — you’ll probably have to go to cmd dir and change a few .toml files and remove username and password for Mongo. A Pull Request have been sent to edgex-go repo that corrects this issue.

You can examine what services have been launched by peeking into bin/edgex_launch.sh script. To see if the services are alive, you can try pinging them:

drasko@Marx:~$ curl http://localhost:48080/api/v1/ping
pong

Now what? Well, next step is to provision (configure) the system in order to use it — i.e. to start sending messages to it from various sensors and actuators. We will cover this in the next post — “EdgeX in Action, Part 2: Provisioning”. Until then — stay tuned.

To learn more about Mainflux and how we’re building the world’s most sophisticated open-source Industrial IoT cloud, visit our website and follow us on Twitter!

--

--