Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Design and Deployment in Edge Computing: A Case...

Design and Deployment in Edge Computing: A Case Study

IoT has been spreading like wildfire: millions of small devices have been gathering an increasing amount of data to be computed to centralized data centers. Until now. That amount of data has become so massive to push networks to the limit.

Edge computing aims to solve this issue by processing the data close to where it is produced. This distributes data centers, moving them to the edge of the network and creating clusters of embedded devices. However, it also opens up to a number of novel issues: How do devices transmit data and commands? How do clusters interact with wider systems and users? To what extent can Docker containers be employed to speed up deployments?

In this talk, we will analyze those challenges w.r.t a real-world cluster of ARM computers. We'll look at the applicability of messaging protocols to send both data and commands within the cluster, how to implement the need of asynchronicity and how Docker containers can simplify deployments on top of a core embedded OS.

Matteo Di Pirro

November 26, 2020
Tweet

More Decks by Matteo Di Pirro

Other Decks in Programming

Transcript

  1. Design and Deployment in Edge Computing A Case Study Matteo

    Di Pirro Kynetics LLC - Santa Clara, CA
  2. © 2020 Kynetics LLC, All rights reserved www.kynetics.com Agenda •

    Use case • System design • Remarkable issues • Conclusion
  3. © 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
  4. © 2020 Kynetics LLC, All rights reserved www.kynetics.com • Transmission

    of data and commands • Consistency of the state • Update roll-outs Remarkable issues
  5. © 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
  6. © 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
  7. © 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
  8. © 2020 Kynetics LLC, All rights reserved www.kynetics.com A use

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

    case example Ping State Waiting... Playing audio Update worker(s)
  10. © 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
  11. © 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
  12. © 2020 Kynetics LLC, All rights reserved www.kynetics.com Updating the

    system - Workflow Apply update, reboot and check outcome
  13. © 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