Deploying the Computer Vision Service to the MobiledgeX Platform

Version: 1.3
Last Modified: 3/29/2020

The MobiledgeX Computer Vision service is an open source application written in Python that is capable of running different types of CV use cases such Face Detection, Face Recognizition, Object Detection, and Pose Detection. In this tutorial, we will show you how to :

  • Build a Docker image of Computer Vision and push the image to the MobiledgeX container registry
  • Create a Application Definition for the Computer Vision Docker Image
  • 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 steps to deploy an application to the MobiledgeX platform.

Step 1: Create a Developer Organization and Add Users

Once you create your MobiledgeX account, create a Developer Organization.

  1. Log on to the Edge-Cloud Console. The Organizations page opens.
  2. Click Create Organization to Run Apps on Telco Edge (Developers). The Create Organization screen opens.
  3. Populate all the required fields. Required fields are indicated by asterisks.
  4. Click Create.
  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 ComputerVisionServer sample app

Once the sampleapps are cloned from the MobiledgeX Github repository, the Makefile associated with the ComputerVisionServer 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 ComputerVisionServer directory: path to cloned repo / edge-cloud-sampleapps/ComputerVisionServer.
  2. Make a single line edit at the top of the Makefile where you will change the ORGNAME value to the name of the organization you created using the Console. Note that the Makefile is case-sensitive, and therefore, ensure the name of your organization is typed in all lower-case. Here's an example:

Makefile example
Makefile example

  1. Save the Makefile.

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.

  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/ComputerVisionServer 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 + to create a new App Definition. 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 Docker 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. For 8008, also enable the TLS option.

Create Apps screen
Create Apps screen

  1. 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 + to create a new Cluster Instance.
  3. Select your Region from the drop-down list.
  4. For Cluster Name, type in a name for your cluster.
  5. For Organization, verify the correct organization name is listed.
  6. For Operator, select the Operator network you wish to deploy the cluster.
  7. Select the Cloudlet in which the cluster resides.
  8. For Deployment Type, select Docker from the drop-down list.
  9. Select the IP Access type from the drop-down list.
  10. For Flavor, select m4.medium.
  11. 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 and create an Application Instance. 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
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
Create App Instance screen

  1. Select the cluster instance created in Step 5 from the drop-down list, or enable Auto Cluster Instance.

  2. 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
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 Monitoring Guide.

Step 8: Verify App via Web Browser

Normally your client app would find your deployed App Instance by using the FindCloudlet API call with our SDKs. However, the ComputerVision app provides a built-in client that you can test immediately. Click on the App Instance you just deployed and look at the URI value:

URI value in App Instance details.
URI value in App Instance details.

You can copy this and paste it into your web browser address bar to create the URL you need in the form "https://URI:8008". For the example shown, the full URL would be "https://cv-cluster.munich-main.tdg.mobiledgex.net:8008". After entering this URL, you should see a MobiledgeX Face Detection app running in your web browser.

JavaScript Computer Vision client in web browser.
JavaScript Computer Vision client in web browser.

You can also enter this same URL into a mobile device browser to run a mobile version of the same app. With that version, you can switch between the front and rear cameras.