I added some points/questions inline.

On Thu, Mar 28, 2019 at 6:02 PM Arce Moreno, Abraham <abraham.arce.moreno@intel.com> wrote:

Hi StarlingX Community,

 

We need your advice to determine the most appropriate way to migrate an existing demo deployed via containers to StarlingX infrastructure with cloud features in mind (e.g. zero touch provisioning).

                                        

We are integrating this demo in our spare time to ramp up in cloud technologies and one of its imperatives is a working solution. It started as a use case proposal around unmanned aerial systems [0], then decided to avoid some of the complexity involved in flying the drones, and finally landed it as a use case around home automation / smart cities at the network edge.


First off, I'd like to let people know that we are planning on doing some kind of "edge" proof-of-concept with Packet.com resources, so perhaps the project you discuss could fit in with that. I'm sure we'll chat about it at some point here.
 
At the next TSC meeting we'll discuss how to get the packet projects off the ground, so feel free to attend. :)

 

Three key aspects for you to consider:

 

- Edge computing foundation is all about “things” interchanging “data” with “servers”, same foundation when both use case proposals were envisioned.

- ”Data” will include “video streaming” pipelines, considered in both use case proposals.

- “Video streaming” pipelines will serve as an input to “machine learning / deep learning” services offloaded to different hardware (CPU, GPU, VPU, FPGA) also considered in both use case proposal, which gives an interesting workload to showcase some of the StarlingX characteristics: reliability, scalability and ultra-low latency.

 

[ General Architecture ]

 

The high level architecture [2] is compromised of the following components (naming still under review):

- Core Applications

- Services

 

[ Core Applications ]

 

Core Applications [3] give the foundation of the demo, the following have been integrated:

 

- Home Assistant: Open Source Home Automation

- InfluxDB: Time Seria Database Platform

- Grafana: Data Visualization and Monitoring

- Mosquitto: MQTT Message Broker

- Glances: System Monitoring Tool

- Portainer: Docker Environment Manager

- Node-RED: Programming Tool for Hardware Devices

- Netdata: Systems and Applications Monitoring

- Plex: Media Server

- motionEye: Video Signal Monitoring

 

[ Services ]

 

Services [4] are designed to perform a specific function in a specific device for a specific period of time (on demand) and will work with other micro services to form higher-level decisions, from a machine learning ‘bot’ service that use time-series data from the different sensors for simple control and personalization to a deep learning computer vision service that use existing network video recorder streams for video surveillance and video analytics.

 

This demo has currently integrated samples of computer vision applications with the following services:

  - OpenCV (Computer Vision)

    -  Haar Cascades

  - OpenVINO (Computer Vision)

  - Gstreamer (Video Stream)

  - Mjpeg- Streamer (Video Stream)

  - You Only Look Once (Object Detection)

 

This demo has currently integrated the following acceleration resources:

- GPU

- VPU (Movidius NCS)


I would not expect a USB device like the Movidius NCS to be available in most STX deployments, but maybe?

 

Once demo has a solid foundation and stability with these first services, the following components are next to be integrated:

- FPGA

- Intel Accelerated Stack

 

[ StarlingX Deployment ] [ Offload ]

 

What would be the preferred way to deploy this use case proposal in StarlingX? We understand the following options are available including its preference:

 

1. Via Kubernetes (Not Preferred)

2. Via Virtual Machine (Preferred)

3. Via Bare Metal (Preferred)

 

Are the above options and their preference, correct? If not, can you please give us some hints behind your answer.


From my standpoint, I think #3 would be the least common option. #2 would be a good place to start, but I don't think #1 is "not preferred", I guess it depends on where these preferences are coming from.

 

[ StarlingX Deployment ] [ Provisioning ]

 

As mentioned at the beginning, another of our imperatives, is to exercise zero touch provisioning.

 

Does it makes sense to split the provisioning in 2 parts based in the required time for the demo components to live?

  - The core applications 100% uptime

  - Services on demand / 100 uptime in some cases


By zero touch provisioning do you just mean automation using IaaS APIs? eg. the docker compose file you link to? Or something else?
Thanks,
Curtis

 

 

Is there any other cloud feature we would want consider, to take a look and use for this first version of the demo?

 

[ StarlingX Deployment ] [ Provisioning ] [ Core Applications ]

 

Would it make sense to create a cloud image with the core applications integrated? If not, what would be your best approach for the core applications?

 

[ StarlingX Deployment ] [ Provisioning ] [ Services ]

 

Since Services will be on demand, there might be some options:

 

-          Service running in containers under a virtual machine / bare metal

-          Services running in single virtual machines

-          Any other?

 

This part is the most important for the demo since user experience might be affected (e.g. time taken for the system to start a face recognition service under camera one)

 

[ Thanks ]

 

We appreciate your time to read this email and your support so we can understand the best provisioning architecture for the use case proposal / demo. One of the additional things we are working on is a workshop taking this learning with the final objective to deploy in StarlingX in community events, still in an early development phase [5].

                                                                  

[0] https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Unmanned_Aircraft_Systems_.28Drones.29

[1] https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Smart_Home

[2] https://github.com/bacabhome/bacabhome

[3] https://github.com/bacabhome/bacabhome/blob/master/docker-compose.yml

[4] https://github.com/bacabhome/bacabhome/tree/master/services

[5] http://bit.ly/SmartHomeSolution

_______________________________________________
Starlingx-discuss mailing list
Starlingx-discuss@lists.starlingx.io
http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss


--
Blog: serverascode.com