Streamlining Python Development: A Guide to a Modern Project Setup
Internet of Things: Patterns For Building Real World Applications
1. THE INTERNET OF THINGS
Patterns for building real world applications
2. About the Presenter
Ivan Dwyer | Head of Business Development
➔ Co-Founded a Web 1.0 Startup in 2000
➔ Helped build the first mobile app developer program at PalmSource
➔ Spent 10 years in international business with ACCESS
➔ Joined Iron.io in early 2014 to collaborate with cloud ecosystem
@fortyfivan
3. Agenda
What’s with all the hype?
Who’s building it out?
What’s it going to take to power it all?
Where does Iron.io fit in the picture?
7. The Value Lies in the Real World Solutions
Home Healthcare Cities Cars Energy Manufacturing
8. Impact on Business
“The Internet of Things will change business models, technology investments,
consumer experiences, and everyday life”
“There will be a string of new businesses, from those that will expand the
Internet “pipes”, to those that will analyze the realms of data, to those that will
make new things we have not even thought of yet”
“The Internet of Things market is a burgeoning market that will lead to all things
being connected and capturing data to transform business processes and
consumer behavior”
“As the Internet of Things grows rapidly, it is linking millions of assets, including
devices, people and places, to deliver and share information, enhancing business
value and competitive advantage, and creating new business opportunities”
9. “IoT is expected to be the next great technological
innovation and business opportunity. It will exceed in size
and importance both the personal computer and mobile
communications markets, and even the development of
the Internet itself.”
11. The Business of Things
Things Events Data Insight Business
The key for developers will be to translate events into insight through data
Actionable Intelligence
Real World Solutions
Big. Very Big.
12. Data Transformation
Raw Data
Filtered Data
Processed Data
API
Capture from connected devices
Dispatch workloads with relevant data
Run through analytics engines
Expose for application building
Close the gap between raw data and actionable intelligence
13. Data Flow Pattern
EXTRACT LOAD
TRANSFORM
The data destination of the things is the data source for the applications
14. The Power of APIs
API
An application that displays traffic patterns
throughout the day to provide city managers
insight into how best to adjust the timing of
traffic light.
An application that shows the number of
pedestrians on the street at a given time of day
to provide retail shops insight into when is the
best times to be staffed.
An application that monitors parking spots and
recognizes a car leaving to provider drivers with
real-time insight into where to park.
A single API can compound to multiple applications across verticals
15. A Fresh Look at UX
Goal Ensure all parts along the assembly line are functioning properly
Scenario A single part breaks
Response The part is replaced
Insight A sensor can detect failing parts in advance, notifying operators
Goal Ensure all steps in the assembly line complete within a set time frame
Scenario One step starts to slow down
Response Optimize process to fit within time window
Insight Capture and display time series data through charts in an application
How people interact with the world, and how the world interacts with people
16. New Challenges for Developers
➔ Dealing with varying protocols and communication layers
➔ More moving parts means more components to maintain
➔ Protecting against single points of failures across components
➔ Maintaining security across the entire lifecycle of things and data
➔ Collecting, processing, delivering, storing, and accessing large volumes of data
➔ Network reliability, resiliency, and latency across regions
➔ Cost-effective scalability, structured agility, and interchangeable flexibility
17. “The Internet of Things needs developers. And
developers need tools. The key isn’t the things, but the
data these things generate and the applications that will
be built on top of that data.”
19. End-to-End IoT System
Gateway API
IoT Platform
Components
Application API
Security & Monitoring
Infrastructure
Network
API Management API Management
A complete IoT system covers the lifecycle of data from device to application
MQTT
CoAP
XMPP
HTTP
AMQP
Web Sockets
HTTP
20. IoT Platform Components
Infrastructure
Compute Storage Networking
Workload Processing
Services
Messaging Dispatch Scheduling
Security Monitoring Analytics
➔ Additional running agents and APIs
➔ Developer tools and add-ons
➔ Raw resources ready to use
➔ Run on cloud or on-premises
➔ Choreograph event-driven workflows
➔ Task-centric platform environment
There is no single “IoT Platform” that covers the entire system
21. Who’s Doing What
Device Gateways
API Management
Software Platforms
Software Services
The key to a successful IoT ecosystem will be in seamless integrations
22. “IoT software platforms will become the rage, displacing
the hardware. Much of the early hype has been about
cool new sensors, high-tech wearables, and new wireless
technologies. In 2015 we’ll see increased focus on the
software and especially the cloud services to make all
these sensors connect, upload data, and drive analytics
that generate insights and enable business
improvements.”
24. Common IoT Workloads
Data Filtering Analytics Processing Multimedia Encoding Data Transfer
Stream Processing Transaction Handling Workflow Dispatch Alerts & Notifications
IoT workloads behave differently than traditional application workloads
25. Impact on Systems
750%
INCREASE IN IOT
WORKLOADS BY 2019
Pressure on data centers providing the infrastructure, telecoms providing
the network, and software companies providing platforms and services
Source: IDC
26. Modern Cloud Evolution
Server VM Container
Monolith N-Tiered Microservices
DIY Software Defined Event-Driven
Unit of Scale
Software Architecture
Workload Handling
The cloud infrastructure and developer services ecosystem have
evolved to tackle these challenges with IoT workload volume
28. What it Means to Be Event-Driven
Humans Apps Services
Sensors Processes
Feeds Engines DBs
Event Triggers Event Processing Event Subscribers
Event
Publish
Alert
Invoke
Queue
Simple tasks or chained workflows
Database Cache
Dashboard
App
Service
Warehouse
Capture anything, anywhere, any time… and then act on it automatically
29. “The Internet of Things will gain widespread adoption
throughout the enterprise when the connectivity
between machines is used to generate machine
generated responses that create action.”
31. Our Products
Reliable message queue service to connect
systems and decouple components
Async task processing environment to power
event-driven workloads at scale
Iron.io provides the glue and the muscle for large scale IoT systems
32. Iron.io Concepts
➔ Workers: The task code and our unit of containerized compute
➔ Runners: The runtime agent that spins up containers for workload processing
➔ Stacks: Docker images that provide basic language and library dependencies
➔ Queues: Method of dispatching workloads through a persistent message queue
➔ Schedules: Regular occurring tasks much like cron jobs, but managed
➔ Concurrency: Number of tasks run at the same time and our unit of scale
➔ Clusters: Location and environment for runner deployment and workload processing
33. How It Works
Build Upload Run Scale
➔ Build lightweight tasks
➔ Use any language
➔ Containerize with Docker
➔ Package code & deps
➔ Upload to Iron.io
➔ Configure workloads
➔ Runs on event trigger
➔ Runs on set schedules
➔ Queue to run on-demand
➔ Scales automatically
➔ Processes concurrently
➔ No provisioning needed
Developers Iron.io
34. The Iron.io Stack
File/Object Store
Task Code Stacks
API Services
Task Scheduler Task Prioritizer
Middleware
Task Queues / Message Queues
Execution Servers
➔ Task execution within lightweight containers
➔ Task code packages and dependencies
➔ Dispatch workloads to execution containers
➔ Persists task state for reliable operations
➔ Manages regular occurring tasks
➔ Manages task priorities
API
36. Why Choose Iron.io
“Serverless” Environment
Power large-scale workloads without
the need to provision and manage
infrastructure.
No Ops Needed
Create complex workflows without
configuration scripts or custom
async/concurrent code.
Workload Scalability
Scale effectively and efficiently at the
task level through lightweight and
loosely coupled containers.
Developer Friendly
Cloud-native REST API-driven feature set
with client libraries across all major
languages.
Speed to Market
Comprehensive environment that gets
up and running in minutes with
seamless platform integrations.
Hybrid Capable
Deploy components and distribute
workloads to any cloud environment,
public or private.
37. Deployments and Integrations
Public Cloud On-Premises
IaaSPaaS
➔ Managed cloud service
➔ Containerized deployment
➔ Marketplace add-on
➔ Service API broker
38. All About Choice
Choose Your Triggers Choose Your Code Choose Your Location Choose Your Endpoints
Set your event response to fire
off from an API call, webhook,
schedule, or queue
Write custom tasks and
workflows in any language
using any library
Execute workloads in any
environment, public cloud or
private data center
Deliver data and results to any
destination directly or via a
message queue
39. “We have a system that can easily scale to take data
from a large amount of speed bumps from all over
Europe and the world. The ease of use has been a huge
benefit to allow us to get up and running and into
production. But it’s the flexibility, scalability and
reliability of this architecture, and company behind the
products, that give us the confidence we’ll be able to
handle the traffic loads we foresee.”
- John Eskilsson, Technical Architect at Edeva
40. Pair Programming
Get a hands-on walkthrough
of our platform
Architecture Review
Let us share some best
practices and advice
Start a Free Trial
Start building with Iron.io
in minutes
www.iron.io