mimik Developer Documentation

Understanding the Strategy for Deploying edgeEngine Microservices

Purpose

The purpose of the document is provide a conceptual description of how deploy edgeEngine microservices in the edgeEngine ecosystem.

Intended Readers

The intended readers of this document are software developers, system engineers, application architects, deployment and security personnel as well as other technical professionals who want to understand the details of the strategies and techniques that are relevant to deploying the edgeEngine runtime, images, containers and microservices in the edgeEngine ecosystem.

What You Will Learn from this Document

After reading this document you will:

  • Have a conceptual understanding of how to deploy edgeEngine assets to various artifact repositories for subsequent download and integration

What You Need to Know Before You Start

In order to get full benefit from reading this document, you need to have an understanding the the edgeEngine Runtime and how it supports microservices

edgeEngine Deployment Strategies

Microservices written to run under the edgeEngine runtime are typically intended for specific target devices and operating systems. The targets are:

  • iPhones running iOS
  • Android cell phones running Android
  • Macintosh computers running MacOS
  • Desktop computers running the Linux operating system
  • Raspberry Pi computers running the Raspian Operating System
  • Windows compatible devices running the Windows Operation system as of version XXC [EDITOR, WHICH VERSIONS OF WINDOWS IS SUPPORTED]

There are two general pattern for deployment of an edgeEngine microservice. The first pattern is one in which a developer creates an edgeEngine microservice and then deploys that microservice as a standalone artifact to a target device.

The second pattern is that the developer will create the microservice as component that will be used in another application.

Deploying a Standalone edgeEngine Microservice

In the case of creating microservice as a standalone artifact, the source code for the microservice, which is typically written in Node.JS, will be stored in a Git repository service such as GitHub, GitLab or BitBucket. Then the developer will clone that source code down from the git repository and create the .tar file that represents the edgeEngine Image of the microservice under development.

Or, the developer can store the .tar file itself in a file storage service such as AWS S3 or file server on the internal network. The developer then downloads that .tar file representing the microservice's edgeEngine Image to a target device. Once the .tar file is deployed onto the target file, the develop creates and deploys a container on that target device. (See Figure 1, below)

[FIGURE TO BE PROVIDED]
Figure 1: The deployment pattern for a standalone edgeEngine microservice

The details about edgeEngine Images and edgeEngine Containers are discussed in the section, Understanding edgeEngine Images and edgeEngine Containers.

Deploying an edgeEngine Microservice as an iPhone or MacOS Component

The second method of deployment involves using the edgeEngine microservice as an application component. In this situation, the developer will include the microservice as part of the native application. In the case of an Apple iPhone or Macintosh application, the microservice will be encapsulated into a CocoaPod artifact.

Typically edgeEngine enabled applications for iPhone and MacOS are stored for download from the Apple App Store. Once an app with an edgeEngine component is stored on the Apple App Store, it can be downloaded to a particular iOS or MacOS device. (See Figure 2, below)

[FIGURE TO BE PROVIDED]
Figure 2: The deployment pattern for an edgeEngine microservice used as an iOS or MacOS component

Deploying an edgeEngine Microservice an Android Component

In the case of an Android or Java application, the microservice will be encapsulated into a Maven component that the developer will include in a particular application. Typically edgeEngine enabled applications for Android are stored for download in the Google Play Store. Maven components can be stored in a public Maven repository such as MVNRepository or a Maven repository that is private to an internal network. (See Figure 3, below)

[FIGURE TO BE PROVIDED]
Figure 3: The deployment pattern for an edgeEngine microservice used as an Android component

Deploying an edgeEngine Microservice as a Windows EXE Component

In terms of using an edgeEngine microservice in a Windows application, the edgeEngine microservice is included in a binary exe file as an embedded resource. The binary exe will have code that uses the edgeEngine microservice. The Windows exe can be a native binary or it can be an application that runs on top of the .NET CLR.

Once the exe is created, it can be deployed as a download from a file storage service such as AWS S3, Azure Files or a file server private to an internal network. (See Figure 4, below)

[FIGURE TO BE PROVIDED]
Figure 4: The deployment pattern for an edgeEngine microservice used in a Windows executable