Frequently asked questions
Obtain answers to some of the most frequently asked questions (FAQs) about IBM Edge Computing for Devices.
How is IBM Edge Computing for Devices related to Horizon and BlueHorizon?
Horizon refers to any instance of the Horizon software.
Blue Horizon refers to the citizen scientist instance of Horizon. For more information, see Blue Horizon .
IBM Edge Computing for Devices refers to the Horizon instance that implements the IBM edge solution. Otherwise, IBM Edge Computing for Devices is unrelated to Blue Horizon.
Is IBM Edge Computing for Devices software open-sourced?
No, the software is not open source software; however, IBM Edge Computing for Devices is based on the Horizon project, which is open-sourced. Many sample and example programs that are available in the Horizon project work with IBM Edge Computing
for Devices. For more information about the project, see Open Horizon .
How can I develop and deploy my edge software by using IBM Edge Computing for Devices?
At a high level, you must complete the following tasks to develop software by using IBM Edge Computing for Devices:
- Write your application code. You can use almost any programming language and libraries. You can also use any modern Linux to develop your application.
- Containerize your code in one or more Docker containers.
- Self-sign your containers with your cryptographic signing private key.
- Publish your containers along with any required configuration variables to Horizon exchange.
Within IBM Cloud, you also need to complete the following tasks:
- Create an IBM Cloud account.
- Configure IBM Event Streams by using your IBM Cloud account.
On each of your edge machines:
- Install the Linux packages that contain the Horizon Linux software.
- Configure and register your edge machines with Horizon exchange. After each edge machine is registered, a Horizon agbot in the IBM Cloud can discover the machine and take over the responsibility for managing the software for the edge machine. With the agbot taking over the software management, you do not need to access the edge machine again for managing the software.
What edge node hardware platforms does IBM Edge Computing for Devices support?
IBM Edge Computing for Devices supports different hardware architectures through the Debian package binaries for Horizon that are available. For more information, see Installing Horizon software.
Can I run any Linux distribution on my edge nodes by using IBM Edge Computing for Devices?
Yes, and no.
You can develop and run software on any Linux distribution within a Docker container on your edge node host kernel. The base image for your Docker container can use any of the distributions that are available for your architecture and Linux kernel
version by using the Dockerfile FROM statement.
However, the Horizon software is provided only as a Debian Linux package. To install the Horizon software on your host kernel, your host operating system must run natively on a Debian distribution or a suitable Debian variant, such as Ubuntu, or Raspbian.
Which programming languages and environments are supported by IBM Edge Computing for Devices?
IBM Edge Computing for Devices supports almost any programming language and software library. Also, any Linux variant can be built into your Docker containers for deployment on any edge node.
If your software requires access to specific hardware or operating system services, you might need to specify docker run arguments to support that access. You can specify the arguments within the deployment section of your
Docker container definition file.
Is there detailed documentation for the REST APIs provided by the components in IBM Edge Computing for Devices?
Yes. For more information, see IBM Edge Computing for Devices APIs.
Does IBM Edge Computing for Devices use Kubernetes?
Yes. IBM Edge Computing for Devices uses the IBM Cloud Kubernetes Service. For more information about this service, see IBM Cloud Kubernetes Service .
Does IBM Edge Computing for Devices use MQTT?
No. IBM Edge Computing for Devices does not use Message Queuing Telemetry Transport (MQTT). IBM Edge Computing for Devices uses IBM Event Streams for messaging services. For more information, see IBM Event Streams .
How long does it normally take after I register my edge node before agreements are formed, and the corresponding containers start running?
Typically registration takes only a few seconds. When the registration is completed, you can run the hzn node list command to view the state of your edge machine. When the hzn node list command shows that the state is configured,
the Horizon agbots are able to discover your edge machine and begin the process to form agreements.
The creation of the agreements normally is received and accepted in less than a minute. When an agreement is accepted, the corresponding containers can begin running. The Horizon agent must first complete a docker pull operation on
each Docker container image. The agent must also verify the cryptographic signature with Horizon exchange. The duration of the pull operations can depend on the size of the images. The pull operation for large images can take a few minutes to
complete. After the container images for the agreement are downloaded and verified, an appropriate Docker network is created for the images. Then, the containers can run. The process to create the network and start the containers can typically
take only seconds. When the containers are running, you can view the container image status by running the docker ps command.
Can the Horizon software and any other software or data that is related to IBM Edge Computing for Devices be removed from an edge node host?
Yes. As a first step if you registered your edge machine, unregister your edge machine by running the following command:
hzn unregister -f -r
With your machine no longer registered, you can remove the installed Horizon software:
sudo apt remove -y bluehorizon horizon horizon-cli
sudo apt purge -y bluehorizon horizon horizon-cli
Is there a dashboard for visualizing the agreements and services that are active on an edge node?
You can use the hzn command to obtain information about the active agreements and services by using the local Horizon agent REST API on the edge node. Run the following commands to use the API to retrieve the related information:
hzn node list
hzn agreement list
docker ps