<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1128545548;
        mso-list-type:hybrid;
        mso-list-template-ids:484597350 -211485796 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:3;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi StarlingX Community,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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).<o:p></o:p></p>
<p class="MsoNormal">                                         <o:p></o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Three key aspects for you to consider:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Edge computing foundation is all about “things” interchanging “data” with “servers”, same foundation when both use case proposals were envisioned.<o:p></o:p></p>
<p class="MsoNormal">- ”Data” will include “video streaming” pipelines, considered in both use case proposals.<o:p></o:p></p>
<p class="MsoNormal">- “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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ General Architecture ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The high level architecture [2] is compromised of the following components (naming still under review):<o:p></o:p></p>
<p class="MsoNormal">- Core Applications<o:p></o:p></p>
<p class="MsoNormal">- Services<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ Core Applications ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Core Applications [3] give the foundation of the demo, the following have been integrated:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Home Assistant: Open Source Home Automation<o:p></o:p></p>
<p class="MsoNormal">- InfluxDB: Time Seria Database Platform<o:p></o:p></p>
<p class="MsoNormal">- Grafana: Data Visualization and Monitoring<o:p></o:p></p>
<p class="MsoNormal">- Mosquitto: MQTT Message Broker<o:p></o:p></p>
<p class="MsoNormal">- Glances: System Monitoring Tool<o:p></o:p></p>
<p class="MsoNormal">- Portainer: Docker Environment Manager<o:p></o:p></p>
<p class="MsoNormal">- Node-RED: Programming Tool for Hardware Devices<o:p></o:p></p>
<p class="MsoNormal">- Netdata: Systems and Applications Monitoring<o:p></o:p></p>
<p class="MsoNormal">- Plex: Media Server<o:p></o:p></p>
<p class="MsoNormal">- motionEye: Video Signal Monitoring<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ Services ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This demo has currently integrated samples of computer vision applications with the following services:<o:p></o:p></p>
<p class="MsoNormal">  - OpenCV (Computer Vision)<o:p></o:p></p>
<p class="MsoNormal">    -  Haar Cascades<o:p></o:p></p>
<p class="MsoNormal">  - OpenVINO (Computer Vision)<o:p></o:p></p>
<p class="MsoNormal">  - Gstreamer (Video Stream)<o:p></o:p></p>
<p class="MsoNormal">  - Mjpeg- Streamer (Video Stream)<o:p></o:p></p>
<p class="MsoNormal">  - You Only Look Once (Object Detection)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This demo has currently integrated the following acceleration resources:<o:p></o:p></p>
<p class="MsoNormal">- GPU<o:p></o:p></p>
<p class="MsoNormal">- VPU (Movidius NCS)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Once demo has a solid foundation and stability with these first services, the following components are next to be integrated:<o:p></o:p></p>
<p class="MsoNormal">- FPGA<o:p></o:p></p>
<p class="MsoNormal">- Intel Accelerated Stack<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ StarlingX Deployment ] [ Offload ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">What would be the preferred way to deploy this use case proposal in StarlingX? We understand the following options are available including its preference:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1. Via Kubernetes (Not Preferred)<o:p></o:p></p>
<p class="MsoNormal">2. Via Virtual Machine (Preferred)<o:p></o:p></p>
<p class="MsoNormal">3. Via Bare Metal (Preferred)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Are the above options and their preference, correct? If not, can you please give us some hints behind your answer.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ StarlingX Deployment ] [ Provisioning ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As mentioned at the beginning, another of our imperatives, is to exercise zero touch provisioning.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Does it makes sense to split the provisioning in 2 parts based in the required time for the demo components to live?<o:p></o:p></p>
<p class="MsoNormal">  - The core applications 100% uptime<o:p></o:p></p>
<p class="MsoNormal">  - Services on demand / 100 uptime in some cases<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is there any other cloud feature we would want consider, to take a look and use for this first version of the demo?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ StarlingX Deployment ] [ Provisioning ] [ Core Applications ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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?
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ StarlingX Deployment ] [ Provisioning ] [ Services ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Since Services will be on demand, there might be some options:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span><![endif]>Service running in containers under a virtual machine / bare metal<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span><![endif]>Services running in single virtual machines<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span><![endif]>Any other?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ Thanks ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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].<o:p></o:p></p>
<p class="MsoNormal">                                                                  
<o:p></o:p></p>
<p class="MsoNormal">[0] <a href="https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Unmanned_Aircraft_Systems_.28Drones.29">
https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Unmanned_Aircraft_Systems_.28Drones.29</a><o:p></o:p></p>
<p class="MsoNormal">[1] <a href="https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Smart_Home">
https://wiki.openstack.org/wiki/Edge_Computing_Group/Use_Cases#Smart_Home</a><o:p></o:p></p>
<p class="MsoNormal">[2] <a href="https://github.com/bacabhome/bacabhome">https://github.com/bacabhome/bacabhome</a><o:p></o:p></p>
<p class="MsoNormal">[3] <a href="https://github.com/bacabhome/bacabhome/blob/master/docker-compose.yml">
https://github.com/bacabhome/bacabhome/blob/master/docker-compose.yml</a><o:p></o:p></p>
<p class="MsoNormal">[4] <a href="https://github.com/bacabhome/bacabhome/tree/master/services">
https://github.com/bacabhome/bacabhome/tree/master/services</a><o:p></o:p></p>
<p class="MsoNormal">[5] <a href="http://bit.ly/SmartHomeSolution">http://bit.ly/SmartHomeSolution</a><o:p></o:p></p>
</div>
</body>
</html>