Managing an embedded development environment can be pretty painful and error-prone, from properly checking out the codebase and all its dependencies, to making sure the correct (and often pretty big!) toolchains are setup and used, to having the developers' IDE use the right set of extensions and plugins.
When you start thinking of containers as a technology that can be used not only for runtime (ex. for packaging microservices) but also at development time, it becomes possible to easily describe the entirety of the required development environment for a particular project. Make this description part of your source code repository and you end up with a versioned, fully reproducible, dev environment! Hey, using a cloud-based IDE surely you should even be able to code straight from your web browser, right?
I recently gave https://github.com/features/codespaces a try to get a sense of the benefits of the approach. Spoiler alert: there is already a lot that can be done (debugging embedded code from your web browser anyone?), so I am really excited to see what's ahead of us in terms of making embedded development even more seamless.
I highly encourage you to https://github.com/codespaces and see for yourself what you think might be missing in the picture. I would love to hear about it!
A good way for you to get started if you have https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html handy would be to go with the https://github.com/azure-rtos/getting-started/tree/master/STMicroelectronics/STM32L4_L4%2B example, like I did in the video. Don't forget to check the https://github.com/azure-rtos/getting-started/blob/master/docs/debugging.md—they complement what you see in the video nicely.