Deploy an Application to the MobiledgeX Platform

Version: 1.1
Last Modified: 7/31/2020

In this tutorial, you will learn how to:

  • Create a Docker image of a sample Application and push the image to the MobiledgeX container registry
  • Deploy the newly created Application to a specific cloudlet on the MobiledgeX platform
  • Manage and monitor your new Application

Prerequisites

Once all the prerequisites are met, follow these simple steps to deploy an application to the MobiledgeX platform.

Step 1: Create your organization and add users

Once you create your MobiledgeX account, create an Organization.

  1. Log on to the Edge-Cloud Console. The Organizations page opens.
  2. Click New. The Create new Organization screen opens.
  3. Populate all the required fields. Required fields are indicated by asterisks.
  4. Click Create Organization.
  5. Populate all the required fields, and review your organization to make sure you entered the information correctly.
  6. From the Organizations page, and under Actions, click Manage on your newly created organization. Upon clicking Manage, submenus appear on the left navigation of the Edge-Cloud Console.

Step 2: Modify the makefile for the ComputerVision sample app

Once the sampleapps are cloned from the MobiledgeX Github repository, the Makefile associated with the ComputerVision sample app used for this tutorial must be modified. Once the Makefile is modified, we will push the file to the MobiledgeX registry. Modifying the Makefile prepares it as an image to upload to the registry.

  1. Navigate to the Makefile for the ComputerVision sample app from this directory: https://github.com/mobiledgex/edge-cloud-sampleapps/tree/master/ComputerVision.
  2. Open the Makefile using any text editor and for the ORGNAME value, replace mobiledgex with the name of the organization you created. Note that the Makefile is case-sensitive, and therefore, ensure the name of your organization is typed in all lower-case.
include Makedefs
ORGNAME = mobiledgex

# We build differently depending on whether this machine has an Nvidia GPU available.
GPU := $(shell command -v nvidia-smi 2> /dev/null)
ifndef GPU
    DOCKERFILE = Dockerfile
    IMAGENAME = computervision
else
    DOCKERFILE = Dockerfile_openpose
    IMAGENAME = computervision-gpu
endif

default: docker-build docker-push

submodule-update:
    git submodule init
    git submodule update

docker-build: submodule-update
    docker build -t ${ORGNAME}/${IMAGENAME}:${TAG} -f $(DOCKERFILE) .

docker-push:
    docker tag ${ORGNAME}/${IMAGENAME}:${TAG} docker.mobiledgex.net/${ORGNAME}/images/${IMAGENAME}:${TAG}
    docker push docker.mobiledgex.net/${ORGNAME}/images/${IMAGENAME}:${TAG}
  1. Save the Makefile.

In the preceding step, you will use the same login credentials as your Edge-Cloud Console to access the Docker registry and upload an image of this Application.

Step 3: Upload the ComputerVision sample app to the MobiledgeX registry

When you create an organization, both Docker and VM registries are generated automatically for you. You will upload an image of your application to its respective registry.

Note: If you run into any module errors, you need to update your submodule using the following commands:

cd edge-cloud-sampleapps/
git submodule init
git submodule update
git checkout tags/v1.2.2
  1. Login to your Docker registry using the same login credentials as your Edge-Cloud Console login. At the shell prompt, type the following commands:
docker login docker.mobiledgex.net
Username: <type in your username>
Password: <type in your password>

You will see a Login Succeeded message. If you do not see this message, you may have typed in the wrong username and password. Go back and try again.

  1. From the terminal, navigate to the edge-cloud-sampleapps/ComputerVision directory.
  2. From that directory, run the make command. This builds, tags, and pushes the image computervision:latest to the docker.mobiledgex.net/<your organization> repository. Please allow a few minutes for the fulfillment of the pushed image. Once the image is pushed to the registry, you may use the Docker Desktop to view your image on the MobiledgeX repository.
  3. Return to the Edge-Cloud Console.

Step 4: Create an Application Definition

After successfully uploading your application image to the MobiledgeX Docker registry, specify the application definition. This creates an 'inventory' of applications within the Apps page.

  1. From the Organization page, click Manage on your newly created organization.
  2. Navigate to the submenu Apps. The Apps page opens.
  3. Click New. The Settings page opens.
  4. Populate all required fields.

    • Type in ComputerVision as the name of the Application.
    • Specify the App Version as latest.
    • Select Kubernetes from the drop-down list for Deployment Type.
    • Specify the image path as docker.mobiledgex.net/organization_name/images/computervision:latest, where organization_name is the name of the organization you created.
    • Select m4.medium as the Flavor of the compute instance that this application will be running.
    • Use 2 TCP ports: 8008 and 8011

    Create Apps screen

  5. Click Create. The application appears on the Apps page. You can click on the application to view details.

Step 5: Create a Cluster Instance (Optional)

After successfully creating an application, you may create a cluster instance, however, this is an optional step. The cluster instance can also be created automatically during the Create App Instance step by selecting the Auto Cluster instance box.

A cluster instance represents a collection of compute resources on a Cloudlet for deploying your application instance, or containers. For example, you can select a Kubernetes cluster to deploy your pods, or select Docker to deploy your docker containers. Note that some of the required fields should be identical to the information entered for the Application Definition, where applicable.

  1. From the submenu, select Cluster Instance.
  2. Click New.
  3. Select your Region from the drop-down list.
  4. For Organization Name, select the name of your organization from the drop-down list.
  5. For Cluster Name, type in a name for your cluster.
  6. For Operator, select the Operator network you wish to deploy the cluster.
  7. Select the Cloudlet in which the cluster resides.
  8. Select your Deployment Type from the drop-down list.
  9. For Flavor, select the compute substrate.
  10. Click Create. You can view the provisioning status of your cluster by clicking the Progress icon.

Step 6: Provision your Application

You are now ready to deploy your application onto a cloudlet. This step is called Application Provisioning.

  1. Navigate to the submenu Apps.
  2. Under Actions, click Create Instance the quick view menu.

Apps screen: Quick Access menu

  1. The Create App Instance page opens. Select an Operator and Cloudlet from the available lists to deploy your application.

Create App Instance screen

  1. Select the cluster instance created in Step 5 from the drop-down list, or enable Auto Cluster Instance.
  2. If you require additional configurations for your application, such as adding environmental variables or including customization files for helm deployments, you can specify these types of configurations by specifying the content of the configuration file in the Config* field, and selecting either envVarsYaml or hemlCustomationYaml.

Create App Instance screen: Configs

  1. Click Create. You can view the progress via the Progress bar. It can take up to a few minutes to deploy your application to the specified cloudlet.

Progress Bar

After you've successfully deployed your application, information about your deployed application appears on the App Instances page.

Step 7: Monitor and view Audit Logs

You can view and monitor historical activities made by you, or others, within your organization. Click the submenu Monitoring to view historical activities through a single pane of glass. For more information on monitoring and audit logs, see the Edge-Cloud Console UI Guide for Developers.

Where to Go From Here

Access other tutorials here: Guides and Tutorials