the fight for surviving in the iot world - radu vunvulea
TRANSCRIPT
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
The fight for surviving in the IoT
world
Radu Vunvulea
Company: iQuest Technologies
Twitter: @RaduVunvulea
Blog: vunvulearadu.blogspot.com
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Many thanks to our sponsors & partners!
GOLD
SILVER
PARTNERS
PLATINUM
POWERED BY
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Why surviving?Complex project, on cheap devices, distributed all around the
world, where you deploy one time,
run for years and you don’t restart
the system
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Why surviving?Complex projects on cheap devices,
distributed all around the world
where you deploy one time, run for years
without touching the system
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Radu Vunvulea
Technology enthusiastic
Azure MVP
Blogger
Speaker
Open minded
Geek
MCP/MCTS
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
GE predicts investment in Industrial Internet of Things
of $60 trillion during the next 15 years
Future of IoT
= 8000$
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
15.4117.68
20.3623.14
26.66
30.73
35.82
42.62
51.11
62.14
75.44
0
10
20
30
40
50
60
70
80
2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
IoT installed base (billions)
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Em
bed
ded
OS
• Low-power WiFi device
• Smart building, smart metersTinyOS
• Memory efficient, WiFi sensors
• 2 KB memory, 40 KB ROMContiky
• Energy efficient
• Multiple platform supportMantins
• Full RTOS
• Control resources at task levelNano-RK
• Power usage
• Numerous hardware supportRIOT OS
• Most popular RTOS, industry certified
• Used in healthcare and aerospace WindRiver VxWorks
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Hardware
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Mainstream system
128+ cores
512+ GB memory
10TB+ HDD
100.000$
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
IoT Devices
4 cores
128 MB memory
4GB+ Flash
20 $
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET System Requirements
Version CPU Memory Disk Space
.NET 2.0 400 MHz 96 MB 500 MB
.NET 3.5 400 MHz 96 MB 500 MB
.NET 4.0 1 GHz 512 MB 850 MB (x86)2 GB (x64)
.NET 4.5+ 1 GHz 512 MB 4.5 GB
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
No minimum requirements, as long as you run a
supported OS (Windows, Ubuntu, CentOS, OS X)
Samples on GitHub that use less then10 MB of memory
Based on your application complexity, NFR and what
other packages you are using you will need more or less
resources
.NET Core System Requirements
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
DEMOTake a look on how many
resources a .NET Core app uses
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
How does the architecture
of a .NET project looks like?
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Classical .NET Project X-ray
A lot of projectsMany external
referencesSlow start
Complex logicHigh consumer of memory and
CPU
Complex tracing and debugging
Limited to Windows OS
“High” hardware
requirements
Complex library footprint
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• How many projects you have in your .NET Solution?
• How many Visual Studio solutions you have in your
project?
• How many lines of code does your system has?
Classical .NET Project X-ray
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• How many projects you have in your .NET Solution?
Max(all) = 232
• How many Visual Studio solutions you have in your
project?
8 .NET, 3 C++, 1 Node.JS
• How many lines of code does your system have?
5.4 Millions
Classical .NET Project X-ray
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
IoT System Requirements
Low CPU
Less Memory
Small disk size
Long battery life
As small as possible
No 3rd parties cost
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
CPU: 400 MHz processor
Memory: 256 MB of memory
Storage: 2 GB
Can you write an app in .NET for…
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
CPU: 400 MHz processor
Memory: 256 MB of memory
Storage: 2 GB
You might be able to do this in .NET 2.0 (3.5), but it
will be fun and challenging
Can you write an app in .NET for…
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
DEMO.NET Core footprint running on Raspberry PI 3
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows IoT Core NOOBS (Linux)
Hello Word CPU: 3.5%Memory:
CPU: 3%Memory:
Image processing(one core)
CPU: 98.7%Memory: 19.40MBDisk Size: 7.5KBDuration: 46415s
CPU: 98.9%Memory: 19.45MBDisk Size: 7.5KBDuration: 46405s
PI Calculation(one core)
CPU: 99%Memory: 59.80MBDisk Size: 7.5KBDuration: 64s
CPU: 99%Memory: 59.39MBDisk Size: 7.5KBDuration: 64s
Disk IO(one core)
CPU: 92%Memory: 18.95MBDisk Size: 7.5KBDuration: 2611s
CPU: 89.92%Memory: 19.20MBDisk Size: 7.5KBDuration: 2612s
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Average CPU
75
80
85
90
95
100
105
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows 10 IoT Core
Industry grade
Robust
Enterprise proven security
Easy to scale
Instant connectivity
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Hardware requirements:
CPU 400 MHz
Memory 256 MB
Storage 2 GB
Except core system, everthing else is optional
+Universal Apps -No shell
+Drivers -MS apps
Windows 10 IoT Core
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows 10
Editions
W10 IoT Core
W10 IoT for Mobile
Devices
W10 IoT for
industry devices
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows 10
Editions
W10 IoT Core
W10 IoT for Mobile
Devices
W10 IoT for
industry devices
Included:• Windows Updates• Visual Studio • UWP and UI• Security and Identity• Integrated Device
Connectivity• Microsoft Azure IoT
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
W10 IoT Core
• ARM, x86, x64
• 256MB
• 2GB
• Universal Apps
• Core Drivers
• No Shell
• No MS App
W10 for Mobile Devices
• ARM
• 512MB
• 4GB
• Modern Shell
• Mobile Apps
• Universal Apps
• Core Drivers
W10 for Industry Devices
• x86, x64
• 1GB
• 16GB
• Desktop Shell
• Win32 Apps
• Universal Apps
• Core Drivers
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Is this enough for IoT?
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET Core and IoT
Industry
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• Flexible deployment
• Cross-platform
• Open Source
• Modular
Well known features
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Runs on Linux, not only on Windows
Windows is not so common on
• IoT Devices
• IoT Gateway
Development complexity smaller than in C++
1. Cross platform
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Framework installation not required
Feature centric packages oriented
Footprint reduced
Deploy only what you use
2. Modular
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Web Sockets
Custom channel
Peer trust certificate authentication
Windows authentication with explicit credentials
(HTTP, NetTcp) – Windows only
(No) Message level security support
(No) SpnEndpointIdentity supported
3. System Model (WCF) support
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Direct deployment of the app from Visual Studio
Build and deploy Windows image with your
application on the flash memory
Well defined upgrade and versioning policies at
Package level
4. Remote deployment
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Allows to develop and test in a virtualized system that
is closer to the real one
Optimize time spent during development and testing
Reduce integration complexity
Increase learning curve
5. Docker
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET Core vs Node.JS (embedded)
.NET Core
Open source
Support from Microsoft and other vendors
Existing integrators
Well known language in enterprise world
Node.JS
Random CPU spikes
No PoC for IoT industry
No big players (IoT)
Lack of specific IoT libraries
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET Core vs C++ (embedded)
.NET Core
Linux and Windows
Less development time
Easy to test and deploy
Easy to learn and use
C++
Cross platform
Good support for embedded systems
Very fast
Optimize for embedded
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Ro
ad
map
Windows 10 IoT Core
• It is on the right path
• Great for middleware (gateway)
• Industry grade
.NET Core
• Modular, fast and optimize for current needs
• Next generation of .NET framework
• The right framework for new projects
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Final Thoughts
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• Small footprint and fast
• Run on multiple devices
• Rapid development
• Flexible, modular and configurable
Windows 10 IoT Core
• Cross platform
• Door opener
• Easy to develop, deploy and maintain
• Fast learning curve
• Well known
.NET Core
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• Small footprint and fast
• Run on multiple devices
• Rapid development
• Flexible, modular and configurable
Windows 10 IoT Core
• Cross platform
• Door opener
• Easy to develop, deploy and maintain
• Fast learning curve
• Well known
.NET Core
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Questions
Answers
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
{“name” : “Radu Vunvulea,“blog” : “vunvulearadu.blogspot.com”,
“email” : ”[email protected]”,“socialMedia” :
{“twitter” : “@RaduVunvulea”,“fb” : “radu.vunvulea”
}
}
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
https://developer.microsoft.com/en-us/windows/iot
What’s Next
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
{“name” : “Radu Vunvulea,“blog” : “vunvulearadu.blogspot.com”,
“email” : ”[email protected]”,“socialMedia” :
{“twitter” : “@RaduVunvulea”,“fb” : “radu.vunvulea”
}
}
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Many thanks to our sponsors & partners!
GOLD
SILVER
PARTNERS
PLATINUM
POWERED BY
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
@ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Q & A