internet of things: patterns for building real world applications

40
THE INTERNET OF THINGS Patterns for building real world applications

Upload: ivan-dwyer

Post on 17-Aug-2015

340 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Internet of Things: Patterns For Building Real World Applications

THE INTERNET OF THINGSPatterns for building real world applications

Page 2: Internet of Things: Patterns For Building Real World Applications

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

Page 3: Internet of Things: Patterns For Building Real World Applications

Confidential and Proprietary - Iron.ioConfidential and Proprietary - Iron.io

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?

Page 4: Internet of Things: Patterns For Building Real World Applications

Beyond the Buzz

Page 5: Internet of Things: Patterns For Building Real World Applications

Confidential and Proprietary - Iron.ioConfidential and Proprietary - Iron.io

2020 Forecast

4 Billion Connected People

200 Billion Connected Devices

25 Million Applications

50 Trillion GBs of Data

$8.9 Trillion Market Size

Source: IDC

Page 6: Internet of Things: Patterns For Building Real World Applications

The Hype Lies in the Consumer Apps

Page 7: Internet of Things: Patterns For Building Real World Applications

Confidential and Proprietary - Iron.ioConfidential and Proprietary - Iron.io

The Value Lies in the Real World Solutions

Home Healthcare Cities Cars Energy Manufacturing

Page 8: Internet of Things: Patterns For Building Real World Applications

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”

Page 9: Internet of Things: Patterns For Building Real World Applications

“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.”

Page 10: Internet of Things: Patterns For Building Real World Applications

Opportunities for Developers

Page 11: Internet of Things: Patterns For Building Real World Applications

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.

Page 12: Internet of Things: Patterns For Building Real World Applications

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

Page 13: Internet of Things: Patterns For Building Real World Applications

Data Flow Pattern

EXTRACT LOAD

TRANSFORM

The data destination of the things is the data source for the applications

Page 14: Internet of Things: Patterns For Building Real World Applications

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

Page 15: Internet of Things: Patterns For Building Real World Applications

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

Page 16: Internet of Things: Patterns For Building Real World Applications

Confidential and Proprietary - Iron.ioConfidential and Proprietary - Iron.io

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

Page 17: Internet of Things: Patterns For Building Real World Applications

“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.”

Page 18: Internet of Things: Patterns For Building Real World Applications

Architectural Patterns

Page 19: Internet of Things: Patterns For Building Real World Applications

End-to-End IoT System

Gateway API IoT PlatformComponents

Application API

Security & Monitoring

Infrastructure

Network

API Management API Management

A complete IoT system covers the lifecycle of data from device to application

MQTTCoAPXMPPHTTPAMQP

Web Sockets

HTTP

Page 20: Internet of Things: Patterns For Building Real World Applications

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

Page 21: Internet of Things: Patterns For Building Real World Applications

Who’s Doing What

Device Gateways

API Management

Software Platforms

Software Services

The key to a successful IoT ecosystem will be in seamless integrations

Page 22: Internet of Things: Patterns For Building Real World Applications

“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.”

Page 23: Internet of Things: Patterns For Building Real World Applications

The Workloads of IoT

Page 24: Internet of Things: Patterns For Building Real World Applications

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

Page 25: Internet of Things: Patterns For Building Real World Applications

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

Page 26: Internet of Things: Patterns For Building Real World Applications

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

Page 27: Internet of Things: Patterns For Building Real World Applications

Platform Distinction

App-centric Task-centric

Hosted

Load Balanced

Elastic

Orchestrated

Real-time

Ephemeral

Queued

Concurrent

Choreographed

Asynchronous

IoT Workloads need a new event-driven computing environment

Page 28: Internet of Things: Patterns For Building Real World Applications

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

Page 29: Internet of Things: Patterns For Building Real World Applications

“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.”

Page 30: Internet of Things: Patterns For Building Real World Applications

Where Iron.io Fits

EVENT-DRIVEN COMPUTINGFOR A CONNECTED WORLD

Page 31: Internet of Things: Patterns For Building Real World Applications

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

Page 32: Internet of Things: Patterns For Building Real World Applications

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

Page 33: Internet of Things: Patterns For Building Real World Applications

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

Page 34: Internet of Things: Patterns For Building Real World Applications

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

Page 35: Internet of Things: Patterns For Building Real World Applications

Live Demo

Page 36: Internet of Things: Patterns For Building Real World Applications

Why Choose Iron.io

“Serverless” EnvironmentPower large-scale workloads without

the need to provision and manage infrastructure.

No Ops NeededCreate complex workflows without

configuration scripts or custom async/concurrent code.

Workload ScalabilityScale effectively and efficiently at the

task level through lightweight and loosely coupled containers.

Developer FriendlyCloud-native REST API-driven feature set

with client libraries across all major languages.

Speed to MarketComprehensive environment that gets

up and running in minutes with seamless platform integrations.

Hybrid CapableDeploy components and distribute

workloads to any cloud environment, public or private.

Page 37: Internet of Things: Patterns For Building Real World Applications

Deployments and Integrations

Public Cloud On-Premises

IaaS

PaaS

➔ Managed cloud service

➔ Containerized deployment

➔ Marketplace add-on

➔ Service API broker

Page 38: Internet of Things: Patterns For Building Real World Applications

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

Page 39: Internet of Things: Patterns For Building Real World Applications

“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

Page 40: Internet of Things: Patterns For Building Real World Applications

Pair ProgrammingGet a hands-on walkthrough

of our platform

Architecture ReviewLet us share some best practices and advice

Start a Free TrialStart building with Iron.io

in minutes

www.iron.io