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 |