mimik Developer Documentation

Understanding the Fundamentals of the edgeEngine Runtime


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 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 full benefit from reading this document, you need to have:

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 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 an intermediary between the host operating system and the code running a edgeEngine microservice. (See Figure 1, below.)

How Does edgeEngine runtime Work
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 user other microservices running on different nodes in the .

In effect, the edgeEngine Runtime provides a serverless computing environment for running microservices.

© 2022 mimik Technology Inc. All Rights Reserved