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

Lessons learned from doing EdgeDevOps (GitOps) in the bush, air and underwater - API Days Australia 2022

Lessons learned from doing EdgeDevOps (GitOps) in the bush, air and underwater - API Days Australia 2022

API Days 2022 - 15th September 2022 (Video recording https://youtu.be/PYpHWBQapSs/)

Dasith Wijesiriwardena
Juan Burckhardt
Jason Goodsell
Suganya Srinivasan

It is not an exaggeration to say that most modern systems that teams build are running on the cloud in a distributed architecture. There are some well-known successful practices around DevOps for these cloud native solutions as well. But what happens when you want to use the same workflows to deploy and run on the edge where connectivity might be intermittent or not available (air gapped systems)? How do we run Kubernetes on the edge and use our favourite GitOps workflows? In this talk we will talk about some of the techniques and practices we have been using to build and run workloads on Azure Edge and other edge devices. During this talk you will discover the challenges faced running Kubernetes on the edge and some practical solutions, starting off from your development environment, to continuously having your code deployed and running on a fleet of devices in an automated way regardless if it's a mobile platform, drone or a submarine.

Dasith Wijesiriwardena

September 15, 2022
Tweet

More Decks by Dasith Wijesiriwardena

Other Decks in Programming

Transcript

  1. Lessons Learned From Doing EdgeDevOps
    in The Bush, Air and Underwater
    14-15 Sep 2022
    Dasith Wijesiriwardena
    Juan Burckhardt
    Jason Goodsell
    Suganya Srinivasan

    View Slide

  2. HELLO!
    Jason
    Commercial Software
    Engineering
    Dasith
    Juan
    Suganya
    @dasiths
    https://dasith.me
    @jsburckhardt

    View Slide

  3. Partially Connected Scenarios
    Introduction to EdgeDevOps
    Agenda
    Disconnected Scenarios
    Development Workflow
    Discovery and Networking

    View Slide

  4. Introduction to
    EdgeDevOps

    View Slide

  5. EdgeDevOps
    ▪ What is it? Just DevOps but for the “edge.”
    ▪ Why can’t we do what we normally do?
    Because edge devices are “special”
    ▪ Constraints (i.e. network connectivity, latency)
    ▪ There are 1..n devices (potentially with different versions)
    ▪ More like choreography than orchestration

    View Slide

  6. Looking at the
    Development Workflow

    View Slide

  7. Inner-Development Loop
    Problem
    How do you ensure everyone on the team has the
    same development environment?

    View Slide

  8. Inner-Development Loop
    Solution
    ▪ DevContainers (VS Code)
    ▪ GitHub CodeSpaces

    View Slide

  9. What Are DevContainers?
    ▪ Standardised development environment
    ▪ Docker container
    ▪ Contains common tools
    ▪ Everything needed for development
    ▪ Transportable
    ▪ Ability to run in CI/CD pipeline

    View Slide

  10. Complexity with
    Deploying to The Edge

    View Slide

  11. Evolution of “Compute”

    View Slide

  12. Our EdgeDevOps Flow

    View Slide

  13. Our EdgeDevOps Flow

    View Slide

  14. Edge Devices That Are
    Partially Connected

    View Slide

  15. Sample Environment

    View Slide

  16. Partially Connected Scenario

    View Slide

  17. Partially Connected Scenario

    View Slide

  18. Partially Connected Scenario

    View Slide

  19. Partially Connected Scenario

    View Slide

  20. Partially Connected Scenario

    View Slide

  21. Partially Connected Scenario

    View Slide

  22. Partially Connected Scenario
    Features:
    ▪ Cache on the base station
    ▪ Leaf discoverability (ZeroConfig network)
    ▪ Leaf Bootstrap

    View Slide

  23. Edge Devices That Are
    Disconnected

    View Slide

  24. Sample Air Gapped Environment

    View Slide

  25. Sample Air Gapped Environment

    View Slide

  26. Sample Air Gapped Environment

    View Slide

  27. Sample Air Gapped Environment

    View Slide

  28. Zarf is Not a Silver Bullet !
    Challenges:
    ▪ Not Prod ready
    ▪ Debugging
    ▪ Version control
    ▪ Big binaries
    ▪ Restricts k8s
    ▪ Validation/Encryption
    Pros:
    ▪ Big community
    ▪ DoD is using it
    ▪ Good docs
    ▪ K8S native
    ▪ Single package

    View Slide

  29. For Edge Devices
    Zero Config Networking

    View Slide

  30. ZeroConfig Networking
    ▪ Set of technologies that automatically create a usable computer
    network.
    ▪ Does not require manual operator intervention or special
    configuration servers (i.e. DHCP).
    ▪ Automatically … assign IP addresses, resolve hostnames, and
    locate services.
    ▪ UDP Broadcast (Query+Response pattern)
    ▪ Multicast DNS (mDNS)
    ▪ DNS Service Discovery (DNS-SD)

    View Slide

  31. Wrapping Up
    ▪ DevContainers (Inner-DevLoop)
    ▪ Flux (GitOps)
    ▪ Harbor (Container Image Cache)
    ▪ GitEA (Git Repo Cache)
    ▪ Zarf (Packaging)
    ▪ mDNS, DNS-SD (Discoverability)

    View Slide

  32. Any questions?
    THANKS!
    @dasiths
    dasith.me
    https://www.nationalgeographic.com/travel/destinations/asia/sri-lanka/
    @jsburckhardt
    burckman.com

    View Slide

  33. Presentation template designed by powerpointify.com
    Special thanks to all people who made and shared these awesome resources for free:
    CREDITS
    Photographs by unsplash.com
    Free Fonts used:
    https://www.fontsquirrel.com/fonts/oswald
    @dasiths

    View Slide