- Key Concepts
- Understanding the Fundamentals of the edgeEngine Runtime
Understanding the Fundamentals of the edgeEngine Runtime
Purpose
The purpose of the document is to describe the nature and operation of the edgeEngine Runtime.
Intended Readers
The intended readers of this document are software developers, system engineers, application architects, deployment personnel and other technical professionals who want to understand the details of working with edgeEngine Runtime.
What You Will Learn from this Document
After reading this document you will:
- Understand how the edgeEngine Runtime turns an independent computing device such as a cell phone into a server on the hybrid edgeCloud
- Understand how to register an edge computing device such as a cell phone with the hybrid edgeCloud using the edgeEngine Runtime
- Understand how to use the edgeEngine runtime to deploy and run a microservice on a hybrid edgeCloud
- Have a working knowledge of the runtime resources and services that the edgeEngine Runtime makes available to microservice automatically
What You Need to Know Before You Start
In order to get the full benefit from reading this document, you need to have:
- A general understanding of edge computing and the Internet of Things (IoT).
- A general understanding of the nature of microservices
Understanding the edgeEngine Runtime
The edgeEngine Runtime is a binary file that can be installed on a variety of computing devices such as a desktop computer, laptop computer or Internet of Things device (IoT). for example, an embedded system or a cable television set-top box. Also, you can install the edgeEngine Runtime on a mobile device such as a cell phone or mobile tablet.
The edgeEngine Runtime will run on any device that has an operating system that the runtime supports. The following list describes the operating systems supported by the edgeEngine Runtime
- Android
- iOS
- Windows
- macOS
- Raspian
- Linux Ubuntu
- Beaglebone
- QNX
The edgeEngine Runtime serves as an intermediary between the host operating system and the code running an edgeEngine microservice. (See Figure 1, below.)
Figure 1: edgeEngine interacts with the host operating system to provide a serverless environment upon which to run a custom microservice |
When a computing device has the edgeEngine Runtime installed that computing device is deemed to be a node within an edge Service Mesh cluster.
The Benefits of the edgeEngine Runtime
The benefits of using the edgeEngine Runtime are as follows.
- As mentioned above once the edgeEngine Runtime is up and running on a computing device, that device is part of an edgeEngine Cluster within an edge Service Mesh cluster.
- The edgeEngine Runtime provides all the capabilities required to run a RESTful microservice. By default, the edgeEngine Runtime installs an HTTP web server automatically. All microservice endpoints running on the node have access to the HTTP web server as a shared resource.
- Once a microservice is deployed on a device running the edgeEngine Runtime, that microservice has access to other nodes running within a given EdgeEngine Cluster. Access to the nodes is facilitated using the edgeEngine Service Mesh in conjunction with the edgeEngine API to do service discovery and then once identified, microservices in the other nodes can be called to accomplish specific tasks.
Creating edgeEngine Nodes Using the edgeEngine Runtime
As mentioned above, creating an edgeEngine node requires installing the edgeEngine Runtime on a specific device. The particular steps for installing the edgeEngine Runtime on a computing device are described in the tutorial, Installing edgeEngine and the mimik-edge-cli Tool on a Linux System or MacOS found in the Tutorials section of this Developer Portal documentation.
Registering an edgeEngine Node to a user account
Registering an edgeEngine node to a of devices running the edgeEngine Runtime is done automatically when installing the edgeEngine Runtime on a particular computing device.
However, additional steps are required in order to associate a node running the edgeEngine Runtime with a particular mimik/edgeEngine user account. This association is done using the mimik Command Line Tool to create an Access Token from within a node running the edgeEngine Runtime. An Access Token binds the edgeEngine node to a particular user account.
The conceptual details about an Access Token are covered in the Key Concept document, Understanding edgeEngine Tokens. The instructions for using the mimik Command Line Tool to create an Access Token that binds an edgeEngine node to a user account and thus grants access to the edgeEngine API and other edgeEngine nodes are described in the Tutorial, Creating Your First Microservice .
Deploying and running a microservice on an edge computing device
As mentioned previously, once the edgeEngine Runtime is up and running on an edge computing device, developers can deploy an edge microservice on the particular device. Deploying a microservice on a device running the edgeEngine Runtime requires understanding edgeEngine Images and edgeEngine Containers.
The details of edgeEngine Images and edgeEngine Containers are covered in the Key Concepts document, Understanding edgeEngine Images and edgeEngine Containers.
In short, developers wanting to make a microservice that runs on the edgeEngine Runtime will create a custom Node.js project that has the code for the logic of the particular microservice. This custom Node.JS is called an edgeEngine Image.
You can think of the edgeEngine Image defined in the Node.js project as a template from which the edgeEngine container is created. Developers use the mimik Command Line Tool to execute the command set mimik-edge-cli image deploy
to create the .tar
file that represents the particular edgeEngine container.
The container's .tar
file has a microservice of interest. You'll use the mimik Command Line Tool to execute the command set mimik-edge-cli container deploy
to deploy and run the container's microservice on the given edgeEngine node.
Understanding the runtime computing resources and services provided by the edgeEngine Runtime
The thing to keep in mind with regard to the edgeEngine Runtime is that, as mentioned previously, everything you need to run your microservice is provided by the runtime. The microservice's logic is programmed in a custom Node.JS project.
The edgeEngine Runtime provides the HTTP web server upon which your RESTful microservice will run. Also, the edgeEngine Runtime provides access to the edgeEngine Service Mesh, which in turn allows your code to discover and use other microservices running on different nodes in the.
In effect, the edgeEngine Runtime provides a serverless computing environment for running microservices.