>> Today, you might not know it,
but it's acronym day and we'll talk about
WSL and EFLOW, E-F-L-O-W.
If you don't know what these are,
definitely should tune in,
if you know what they are,
we'll talk with Terry and Craig about
when to use which in your Linux development for IoT,
and that's today on The IoT Show.
[MUSIC]
>> Hi everyone. This is the IoT Show.
I'm Olivier, your host,
and today we will be talking with Terry and
Craig about Linux development for the Edge.
Well, let's start with some introductions.
Hi Craig, how are you?
>> Good, how are you?
>> I'm fantastic.
What are you doing these days with Microsoft? What's your role?
>> I'm a Program Manager working
on the Windows Subsystem for Linux,
which allows developers to use
an awesome Linux experience directly on their Windows machine.
>> Yeah, we'll definitely want to dig into that for sure.
Terry you've been on the show already,
but how about you give a little refresh about yourself;
what are you doing these days?
>> Hi Oliver, I am a Senior Program Manager on
the Azure IoT Edge Devices Team.
We work on both Linux and Windows,
bringing Edge deployments to
the Windows platform for IoT purposes.
>> Fantastic. I'm glad to have both of you here.
IoT developers, when they're building IoT Edge devices,
code that should run at the Edge.
They are targeting different types of systems of devices.
Some are running Windows, some are running Linux,
and they want the ease of development.
I think we in the form of WSL in one side,
EFLOW on the other one,
we have a lot of tools that
developers can use but let's describe what these are.
Let's start with WSL.
Craig tell me more about what is WSL
and put yourself in the shoes of an IoT developers,
someone building 40 Edge.
>> Yeah. The WSL stands for the Windows Subsystem for Linux.
In general, allows you to have
a full Linux environment on your machine.
From an end-to-end experience, what this looks like is you
can go to the Microsoft store and you can
download a distro like Ubuntu or Debian or Open Suse,
and you can use that as your full Linux environment.
The really cool thing about
WSL compared to some other solutions like
dual booting or SSH into a VM or remote machine,
is that it's really tightly coupled with the Windows interface.
There are tools like the S-CODE remote,
which allows you to have a full IDE that's
running fully in a Linux environment on your Windows machine,
using the regular like
Visual Studio Code interface that you'd normally would use.
As all we do things like allow you to have access to the GPU,
you can access Linux files or Windows
files from either or environment,
and this just makes it a really awesome place so that you feel
like all of your files are in the exact same place,
no matter which tools you're using,
either Windows or Linux based.
>> It sounds practical.
I've been playing around with it.
It does really feel like you are in
Windows and you still leveraging the Linux,
sometimes command lines,
tools, resources and so on.
That's pretty great and I can see
IoT developers being trusted in that for sure.
Terry, we're not here compare,
we're really her to define how they compliment each other,
but tell us a bit more about EFLOW.
You came on the show ready to describe what it was about.
But once again, let's have a little teaser about EFLOW
that should be as long as
Craig's teaser about WSL, let's try that.
>> Yeah, EFLOW is really
a curated virtual machine environment where
we package the Linux environment and Azure IoT Edge together.
That's built-in ready to deploy on
your Windows devices and simple provisioning
to Azure IoT Edge and deployment of
the Edge modules for production purposes.
That's really the difference between the two
and EFLOW is for the production side of things,
for long running factory deployments. Things of that nature.
>> Sounds good. Let's try and put that into some context.
Let's talk about a scenario.
We're talking about developing,
targeting Linux, whether in the form of containers,
those form of apps,
let's actually discuss that scenario,
the developments scenario,
and when you would use which at some stages of that development.
>> Yeah. I can jump in and just say
that this scenario can start in WSL.
You can use WSL as
a familiar environment for you to
basically jump off developing your IoT scenario.
What I mean by that is you can open up
Windows Terminal and get exact access to
bash and do everything that you would normally
do in Linux; access containers,
debug and run through them and build your IoT module
directly inside of WSL
with an environment that you're comfortable with.
Then once you're ready to go,
basically start testing this for production or start
shipping just to production, EFLOW can step in.
I'll hand it over to Terry.
>> Yeah. I think you guys had a slide that actually can help
us also go through that workflow. There you go.
>> Exactly. As Craig mentioned,
you really start your development of your Linux application using
WSL as your test environment
for that application that you're building.
When you're transitioning from
standard Linux container to
a Docker container or actually Edge module.
That's when you would bring in EFLOW into the mix and deploy to
a real production type environment to
validate what you would use on for your IoT solution.
>> If I wanted to try and summarize that,
you would want to use WSL when you're building a Linux app,
like generic Linux app,
Linux functionality or a piece of code that
is supposed to run a Linux
at the end of the day in a way or another,
then you would think about the packaging of that.
In the case of IoT Edge,
you package into Docker containers,
that would be Linux Docker containers.
EFLOW enters into the game when it comes to running on
the actual machine where you can benefit from
the Windows host OS with security,
management features, and capabilities,
but still run that Linux container you've been
developing in a Linux environment basically.
>> Yes, that's right, EFLOW gives you
that hybrid environment where you
can take the best of both worlds.
You've got the full Windows platform
for your enterprise deployment management,
and then EFLOW is running
your IoT Edge modules built from Linux unchanged.
>> Nice. I'll come back to you, Craig.
But I have another one for you, Terry right here.
When it comes to packaging and creating your IoT Edge modules,
you have the piece of code and then you want to
make them an IoT Edge module,
today if you want to do that using VSCode,
for example, you would use a simulator.
My understanding of that in the future,
you'll be able to use EFLOW there as well
as in that packaging stage,
you'll be able to leverage EFLOW to get
even closer to the production environment.
>> We're just starting to look into that to bring EFLOW into
the developer workflow in terms of
deploying the Docker container directly to EFLOW,
is not something that we've got available yet,
but it is certainly something that we are
interested in offering in the future.
>> Got it. Terry,
question for you in terms off maybe differences but also
more about maybe limitation
that would say so when you're an IoT developer,
you want to build code that accesses the hardware.
You're on the death machine, of course,
so you don't have the exact same sensors or whatnot,
are there limitations to WSL when it comes to accessing hardware,
let's imagine I want to put a serial connector on
my PC and access that from
a piece of code that I'm developing using WSL,
are there limitations there?
Are there other things that
IoT developers should think about when leveraging WSL?
>> Yeah, I can feel that.
Yes for sure right now,
there are limitations for IoT developers and the main one is that
WSL does not yet have full USB device access,
which can be a blocker.
That is something that we're super interested in expanding on,
and we're looking ahead to do in the future to investigate that.
>> All of that. That makes sense.
I think this is the right set of people
here plus our community to actually give you feedback.
I'll be very interested to work with you
on that and eventually go on GitHub,
have some proof concepts and
see how we can move that needle forward.
I think there was also a question I had lined up about,
what are the main differences,
but I think we covered most of that.
Terry do you see anything else to
bring up to IoT developers when it
comes to the differences between WSL and EFLOW?
>> Yeah. Let me first get back to
your question on how to pass through capabilities.
We built some things into EFLOW
to allow support for serial devices.
If you're trying to use Modbus or Canvas,
that sort of thing, we do have a way to plumb those through,
and we've also got a sample code available on our GitHub for
transforming a USB camera into an RTSP feed over IPs,
so you can do streaming with a USB connected camera.
We have the same issues that Craig is talking about,
about general USB compatibility due to drivers and so forth,
and pass-through of the mapping of
those devices into the Linux environment.
But we've also built support for TPM in EFLOW.
We could do TPM provisioning,
and also we'll have the ability to read from the TPM.
If you've got like private keys stored in the TPM,
and you need to use those private keys in your Edge modules.
There is quite a bit of support available there.
One thing I would point out that is different and Craig,
correct me if I'm wrong, I believe that
WSL is targeted at the desktop.
so Pro and Enterprise,
however, EFLOW also support server.
We know a lot of customers that are using a Windows Server,
Windows Server Core, and IoT Scenarios.
We do have support for
Server in that sense for running those IoT workloads.
>> Okay, got it. Definitely we're looking at
WSL to develop the Linux app in the comfort of Windows.
Then looking at EFLOW as
the building or bringing the ability to run a Linux module,
Linux container on a Windows box,
making it transparent or as
seamless as possible for that piece of code.
Piece of code doesn't know it's running on a Windows box,
just like attacks,
Interfaces API whatnot,
the same way it would do on the Linux box,
that makes with these containers actually totally
transposable from one device to another,
the OS being something that they are agnostic to.
Guys, this is awesome.
I think you are putting together
a blog post that we're going to link
to it so that's if people want to learn more about EFLOW,
WSL, how they're used together to develop
your Linux workloads on
a Windows box and for a Windows box in case of a EFLOW.
We'll put that link down there, aka.ms/ IoTShow/EFLOWandWSL.
Craig, Terry, thanks a lot for your time today.
I hope to see you soon on the IoT show again and everyone.
Well, thanks for tuning in. See you soon, bye.
>> Thank you.
[MUSIC]