the fight for surviving in the iot world - radu vunvulea

54
@ITCAMPRO #ITCAMP17 Community Conference for IT Professionals The fight for surviving in the IoT world Radu Vunvulea Company: iQuest Technologies Twitter: @RaduVunvulea Blog: vunvulearadu.blogspot.com

Upload: itcamp

Post on 18-Mar-2018

362 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 2: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Many thanks to our sponsors & partners!

GOLD

SILVER

PARTNERS

PLATINUM

POWERED BY

Page 3: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 4: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 5: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Radu Vunvulea

Technology enthusiastic

Azure MVP

Blogger

Speaker

Open minded

Geek

MCP/MCTS

Page 6: The fight for surviving in the IoT world - Radu Vunvulea

@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$

Page 7: The fight for surviving in the IoT world - Radu Vunvulea

@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)

Page 8: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 9: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Hardware

Page 10: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Mainstream system

128+ cores

512+ GB memory

10TB+ HDD

100.000$

Page 11: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Page 12: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

IoT Devices

4 cores

128 MB memory

4GB+ Flash

20 $

Page 13: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 14: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 15: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

DEMOTake a look on how many

resources a .NET Core app uses

Page 16: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

How does the architecture

of a .NET project looks like?

Page 17: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 18: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 19: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 20: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Page 21: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 22: The fight for surviving in the IoT world - Radu Vunvulea

@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…

Page 23: The fight for surviving in the IoT world - Radu Vunvulea

@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…

Page 24: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Page 25: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

DEMO.NET Core footprint running on Raspberry PI 3

Page 26: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 27: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Average CPU

75

80

85

90

95

100

105

Page 28: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Windows 10 IoT Core

Industry grade

Robust

Enterprise proven security

Easy to scale

Instant connectivity

Page 29: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 30: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Windows 10

Editions

W10 IoT Core

W10 IoT for Mobile

Devices

W10 IoT for

industry devices

Page 31: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 32: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 33: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Is this enough for IoT?

Page 34: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

.NET Core and IoT

Industry

Page 35: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

• Flexible deployment

• Cross-platform

• Open Source

• Modular

Well known features

Page 36: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 37: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Framework installation not required

Feature centric packages oriented

Footprint reduced

Deploy only what you use

2. Modular

Page 38: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 39: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 40: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 41: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 42: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 43: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 44: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Final Thoughts

Page 45: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 46: The fight for surviving in the IoT world - Radu Vunvulea

@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

Page 47: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Questions

Answers

Page 48: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

{“name” : “Radu Vunvulea,“blog” : “vunvulearadu.blogspot.com”,

“email” : ”[email protected]”,“socialMedia” :

{“twitter” : “@RaduVunvulea”,“fb” : “radu.vunvulea”

}

}

Page 49: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

https://developer.microsoft.com/en-us/windows/iot

What’s Next

Page 50: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

{“name” : “Radu Vunvulea,“blog” : “vunvulearadu.blogspot.com”,

“email” : ”[email protected]”,“socialMedia” :

{“twitter” : “@RaduVunvulea”,“fb” : “radu.vunvulea”

}

}

Page 51: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Many thanks to our sponsors & partners!

GOLD

SILVER

PARTNERS

PLATINUM

POWERED BY

Page 52: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Page 53: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Page 54: The fight for surviving in the IoT world - Radu Vunvulea

@ITCAMPRO #ITCAMP17Community Conference for IT Professionals

Q & A