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

Cloud and Hybrid Developer Environments - how v...

Cloud and Hybrid Developer Environments - how virtualization transforms your IDEs for embedded projects

Back in 2017 at QA&Test Bilbao, I explored how Docker and Jenkins pipelines could transform CI/CD for embedded projects. Fast forward to 2023, containerization has become the norm in embedded software QA. My recent talk focused on tools like Testcontainers and WireMock, now widely used for testing not just backend services but entire embedded systems—from SCADA to IoT—within virtualized environments powered by Kubernetes. These technologies now form the backbone of modern testing infrastructure in software, and now expand to edge and embedded systems to cover full-system virtualization and integration testing. Same happens on the developer machines.

Embedded QA Engineers are entering a new era of development enabled by Cloud Development Environments (CDEs) like GitHub Codespaces or Devcontainers, where fully configured workspaces can run on laptops, Kubernetes clusters or public clouds. Containers and VMs, often managed with tools like KubeVirt and QEMU, and wrapped by frameworks like Testcontainers, enable scalable, hardware-aware test setups that support HIL testing, firmware validation, and system modeling. It might sound like a miracle, but it’s actually possible with modern tech stacks!

This talk demonstrates how to build such “hybrid developer environments” entirely with open source tools, combining C++/SystemVerilog development, embedded hardware access, and even AI-driven test automation – showing that the modern IDE for embedded QA is now distributed, intelligent, and platform-agnostic.

Avatar for Oleg Nenashev

Oleg Nenashev PRO

October 22, 2025
Tweet

More Decks by Oleg Nenashev

Other Decks in Technology

Transcript

  1. Cloud and Hybrid Developer Environments How virtualization transforms your IDEs

    for embedded projects Oleg Nenashev, PhD Independent Consultant QA&Test 2025 Bilbao
  2. 2

  3. Disclaimer • I am at this conference as independent, #OpenToWork

    • Opinions are my own • I am not talking about any my past or current companies speakerdeck.com/onenashev
  4. > whoami @oleg_nenashev oleg-nenashev Dr. Nenashev / Mr. Jenkins Community

    Builder, Dev Tools DevRel & DevOps Consultant #RussiansAgainstPutin #StandWithUkraine
  5. Today 7 Most of demos are for the Testcontainers for

    C/C++ project - https://github.com/testcontainers/testcontainers-native Not an embedded project, but created for Embedded/Automotive projects
  6. My Previous Presentations 9 • Developer Tools & Containers •

    Jenkins, Docker, WireMock, Testcontainers
  7. Today • Hybrid and Remote Developer Environments • Dev Containers

    • Cloud Developer Environments (CDEs) • Brief: DIY CDEs Demos - coffee breaks 10
  8. 12

  9. What does engineer use daily? • CI Systems • Issue

    Trackers • Chats • Zoom / Google Meet / … • Email • Calendar • … 14
  10. Why containers? • Configuration Management as Code • Reusability •

    Fast provisioning • Clean environments • Disposability • Clustering
  11. My Previous Presentations 18 • Developer Tools & Containers •

    Jenkins, Docker, WireMock, Testcontainers
  12. Dev Containers 101 .devcontainer/ devcontainer.json - Configuration JSON Docker image,

    container parameters, IDE plugins containers.dev/ implementors/spec/ 25
  13. Quick Start 1. Clone https://github.com/microsoft/vscode-remote-try-cpp 2. Open the project in

    VSCode 3. Install the Dev Containers extension 4. Reopen the project in a container 26
  14. 28 Sample: https://github.com/microsoft/vscode-remote-try-cpp 1 4 3 5 1. Environment runs

    in a container 2. The workspace is mapped 3. Tools are accessible 4. IDE plugins, including Git, Intellisense & Co 5. AI Agent works, too
  15. Dev Containers 1. Stock images 2. Single container From image

    registry or Dockerfile 30 containers.dev/guide/dockerfile
  16. Dev Containers 1. Stock images 2. Single container 3. Multi-container

    systems 31 containers.dev/guide/dockerfile#docker-compose
  17. Dev Containers for your dev environments Supported in: • Visual

    Studio Code (link) • Visual Studio (link) • IntelliJ Platform IDEs (link) • Cloud IDEs and Services • CI/CD Systems 32 https://containers.dev/ Your developer tools and environments, packaged as containers. With proper developer experience
  18. Reuse Dev Containers can be shared as a part of

    your project Dev Containers can be reused in CI/CD pipelines 41 https://github.com/testcontainers/testcontainers-native/blob/main/.github/workflows/ci.yml
  19. Testing with hardware VM, container or bare-metal Power Reset when

    it hangs Deploy bit-files, Blasting cables Debugging cables, firmware upload We don’t change them, huh? Your Developer Machine Drivers Tools Peripherals Attached peripherals Runtime
  20. Docker & FPGA - HOWTO 44 • USB/Ethernet Ports can

    be exposed to a container • Docker image can include tools and drivers • https://github.com/halfmanhalftaco/fpga-docker • https://www.starwaredesign.com/index.php/blog/ 64-fpga-meets-devops-xilinx-vivado-and-jenkins-with-docker
  21. Hardware tests with containers? • It works • You can

    run containers in privileged mode • You can use drivers from host OS • It works on a success path • BUT: software errors, timeouts, access conflicts, device hanging when switching containers • BUT: you still need special test equipment and drivers Expectations Reality There are limitations, but doable
  22. Containers for Simulations • We avoid using Hardware when possible

    • Low overhead and startup time • Resource quota management ◦ CPU/RAM ◦ Prioritization for users ◦ Licenses • Multi-instance tests (Docker Compose, Kubernetes Pods, etc.) 46
  23. QEMU • Multi-platform execution on a single machine • Container

    adapters are available 47 https://github.com/qemus
  24. Dev Container for Simulations 48 • Most Simulators already have

    Docker images • Docker images can be quickly converted to Dev Containers
  25. We were doing CDEs before they were a mainstream 56

    Image source: https://www.combell.com/en/blog/w hat-is-rdp-remote-desktop-protocol/
  26. Cloud Developer Environments • Most of the functionality runs in

    the cloud • Local Tools / IDEs are just wrappers • SaaS, public cloud or self-hosted • Resources and licenses can be shared 57
  27. Existing CDEs • GitHub Codespaces • Eclipse Che / Theia

    • Ona (fka Gitpod) • AWS Cloud9 • Strong Network (Citrix) • Coder • Cloudomation • … • Web based AI IDEs 59 Source: https://discord.com/blog/how-discord-moved-engin eering-to-cloud-development-environments
  28. Existing CDEs, but for Embedded Projects 64 • IDE Extensions

    • Dev Container(s) for… ◦ Build Tools ◦ Simulators ◦ Verification tools • Testcontainers
  29. DYI CDEs • You can build a CDE on your

    own • IDEs with CDE plugins • Control planes • Workspaces & Cloud • Storage / Data (!) Security aspect is an area for commercial CDEs 67 Source: https://coder.com/
  30. DYI CDEs • Dev Containers and compatible IDEs • Container

    Engines (e.g. Docker) and Kubernetes for the environment • Device Plugins for FPGA (e.g. one for Xilinx) • KubeVirt for virtual machines 68
  31. Example - Xilinx Tools FPGA grids can be served and

    used in Kubernetes CDEs can be provisioned accordingly https://github.com/Xilinx/FP GA_as_a_Service 70
  32. Demos 72 • Quickstart: ◦ https://github.com/microsoft/vscode-remote-try-cpp • My Example -

    Testcontainers for C/C++ ◦ github.com/testcontainers/testcontainers-c ◦ Testcontainers can run in Dev Containers ◦ You can use GitHub Codespaces too
  33. Takeaways 1. Consider using Dev Containers 2. There are tools

    and frameworks for embedded projects, but a lot of DYI 3. For common software stacks, the existing IDEs are at your service 4. CDEs may mean local, too
  34. One First Step FOR YOU After the talk: 1. Run

    demos locally or in Codespaces 2. Create a Dev Container for your project 3. Share it with your team(s) 74
  35. Abstract 76 Back in 2017 at QA&Test Bilbao, I explored

    how Docker and Jenkins pipelines could transform CI/CD for embedded projects. Fast forward to 2023, containerization has become the norm in embedded software QA. My recent talk focused on tools like Testcontainers and WireMock, now widely used for testing not just backend services but entire embedded systems—from SCADA to IoT—within virtualized environments powered by Kubernetes. These technologies now form the backbone of modern testing infrastructure in software, and now expand to edge and embedded systems to cover full-system virtualization and integration testing. Same happens on the developer machines. Embedded QA Engineers are entering a new era of development enabled by Cloud Development Environments (CDEs) like GitHub Codespaces or Devcontainers, where fully configured workspaces can run on laptops, Kubernetes clusters or public clouds. Containers and VMs, often managed with tools like KubeVirt and QEMU, and wrapped by frameworks like Testcontainers, enable scalable, hardware-aware test setups that support HIL testing, firmware validation, and system modeling. It might sound like a miracle, but it’s actually possible with modern tech stacks! This talk demonstrates how to build such “hybrid developer environments” entirely with open source tools, combining C++/SystemVerilog development, embedded hardware access, and even AI-driven test automation – showing that the modern IDE for embedded QA is now distributed, intelligent, and platform-agnostic. Stay a while and listen, I have a PoC ready!