Post on 15-Apr-2017
DevOps for the Industrial Internet
SOFTWARE FOR DEVICES IS A NIGHTMARE
“The Web brought about the end of the annual software release cycle...The industrial internet will bring about a similar change in the physical world.”- O’Reilly, “Industrial Internet”
SOFTWARE FOR DEVICES IS A NIGHTMARE
Devops skill needed for simplest projects
Finding the device on the network
Installing and managing an OS
On-device compilation incredibly slow
Cross compilers very complex to set up
Painfully long iteration cycles
A misstep can brick the device, causing
frustration & delay
Setting up Command & Control servers in
the cloud
Hard to reach devices
Home-brewed update systems
Easy to brick a device in the field
Software rollouts taking weeks
Many opt to never update, or require
physical presence (very expensive)
Outdated operating systems
Unprotected or compromised
networks
Need to secure update system
Device theft exposes data
MITM attacks
Hacked hardware is a PR disaster
DEVELOPMENT PRODUCTION SECURITY
Programing for the cloud has surged ahead, but we program devices (“firmware”) like we did in the 80’s.
WE LIVED THE PROBLEM
WE LIVED THE PROBLEM
In 2011 and 2012, we supported a network with hundreds of screens in 5 countries.
We had to go out on weekends, in the snow, with drills and USB sticks, upgrading software.
We spent a lot of resources on infrastructure that had little to do with our specific application.
resin.io is the platform we wished we had
A MULTI-DISCIPLINARY TEAMTeam of 35 (Sep ‘15) and counting, plus Advisors
Series A funding led by DFJ
HOW DOES RESIN.IO HELP USERS?
Provisionwithout sweat
Deploy & Configure just like the cloud
Developwith fast feedback
“Resin allows us to apply continuous integration and delivery best practices across our entire stack” -Forrest Pieper, NV Bots
Securelyout of the box
At Scalefor any size fleet
Uniformlyacross device form factors
BEHIND THE SCENES
BEST PRACTICES FROM THE CLOUD...
“Look and Feel” of CloudGit push changes, run unit and integration tests,
compatible with Docker, Travis, Jenkins etc
LightweightRemote environments require
small payloads, so we dynamically generate “diffs” of
new container versions
...SOLVING HARD IOT PROBLEMS
Fail-Safe DeploymentsIoT-specific deployment logic that guards against “bricked”
devices
Architecture agnosticIoT devices have diverse CPU
architectures. Our builders compile for the target device
architecture
ON-DEVICE S/W ARCHITECTURE
All containers update safely and reversibly. Our own agent (Supervisor) runs in its own container
Layers shared between containers are stored only once
Docker and Yocto userspace update using conventional methods
Safe kernel updates without fully rebooting the device (currently at proof of concept)
All software projects we depend on are under open source licenses
The Vision: 100% updateable
THE OPEN IOT COMPANY
Open Source - All core technology being released under Apache 2.0 license
Open Containers - Founding members of the Open Container Initiative
Open Standards - RESTful interfaces, standard tools & protocols
DEVICE FLEET DASHBOARD
● Device name● Connection status● UUID● Code version● IP Address● Last seen time● Configuration● Location● Logs● Terminal
Eric Ries on Learning Fast
The only way to win is to learn faster than anyone else.
DevOps for the Internet of Things
Georgios MichalakidisOperations Directorgeorgios@resin.io+44 (7964) 68 79 54