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. 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) 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. [ 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 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_Airc... [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