Slide 1

Slide 1 text

Design and Deployment in Edge Computing A Case Study Matteo Di Pirro Kynetics LLC - Santa Clara, CA

Slide 2

Slide 2 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Agenda ● Use case ● System design ● Remarkable issues ● Conclusion

Slide 3

Slide 3 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Purpose of the system ● Streaming and recording audio over BT on a cluster of ARM computers ● Updating OS and applications in the infrastructure

Slide 4

Slide 4 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view

Slide 5

Slide 5 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view

Slide 6

Slide 6 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view

Slide 7

Slide 7 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view

Slide 8

Slide 8 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view HTTP HTTP

Slide 9

Slide 9 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Helicopter view Bluetooth

Slide 10

Slide 10 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com ● Transmission of data and commands ● Consistency of the state ● Update roll-outs Remarkable issues

Slide 11

Slide 11 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Remarkable issues ● Transmission of data and commands ○ Within the cluster ● Consistency of the state ● Update roll-outs

Slide 12

Slide 12 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Internal Communication HTTP MQTT

Slide 13

Slide 13 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com ● Transmission of data and commands ● Consistency of the state ○ Both locally and globally ○ In presence of asynchronous events ● Update roll-outs Remarkable issues

Slide 14

Slide 14 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com The system - Asynchronicity Actors model to the rescue! ● Internal communication happens through messages ○ Asynchronous ○ Immutable ○ Deposited into a mailbox ○ Worked through one at a time ● No race conditions

Slide 15

Slide 15 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State Play

Slide 16

Slide 16 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State Play

Slide 17

Slide 17 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State Waiting... Playing audio

Slide 18

Slide 18 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State Waiting... Playing audio Update worker(s)

Slide 19

Slide 19 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State Playback done

Slide 20

Slide 20 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com A use case example Ping State

Slide 21

Slide 21 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com ● Transmission of data and commands ● Consistency of the state ● Update roll-outs ○ Application and Operating System Remarkable issues

Slide 22

Slide 22 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system ● SWUpdate ● CD/CI pipelines ○ Updates as .swu files ○ The application kicks off the update and checks the outcome

Slide 23

Slide 23 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system - Workflow Update workers

Slide 24

Slide 24 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system - Workflow MQTT Message: Update

Slide 25

Slide 25 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system - Workflow Download .swu file

Slide 26

Slide 26 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system - Workflow Apply update, reboot and check outcome

Slide 27

Slide 27 text

Could we use Docker instead?

Slide 28

Slide 28 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the system - Docker ✓ Docker images can be distributed as .tar archives ✓ Reduced risk of breaking the board ⨯ More difficult to trigger the update from the application ⨯ Application-only updates more difficult to achieve ⨯ Interaction with external services ○ Audio ○ Bluetooth

Slide 29

Slide 29 text

© 2020 Kynetics LLC, All rights reserved www.kynetics.com Conclusion Network Privacy Scalability Reliability

Slide 30

Slide 30 text

Matteo Di Pirro [email protected] Thank you