(MBL201) Device Clouds: Best Practices in Building a Connected Device Backend in the Cloud | AWS...
-
Upload
amazon-web-services -
Category
Technology
-
view
729 -
download
0
description
Transcript of (MBL201) Device Clouds: Best Practices in Building a Connected Device Backend in the Cloud | AWS...
November 12, 2014, Las Vegas, NV
Jinesh Varia, @jinman
Scalability
User Experience
Security
Elastic Load
BalancingElastic Load
Balancing
API
API
API
Device
Device
Device
Brokers
Scalability
User Experience
Security
Scalability
User Experience
Security
POST https://api.spark.io/v1/devices/teddy-bear/hug
??
a = 1 b = “two”
c = 3
d = “four”a = 1
b = “two”
c = 3
d = “four”
c = 3
d = “four”
geofence = inside
where truck in geofence a
and c > 1 and d != “two”
• HTTP Post (webhook)
• SNS
• RedShift
• S3
• Republish on another
topic
• Republish to another
account
• Transform payload
a = 2
– Custom actors for AWS actions
iOS 8 interactive notifications
REQUEST
RESPONSE???
STREAM PROCESSING / INTEGRATIONS
Device
Consumers
Application
Consumers
?
Study by Stephen Nicholas (MQTT and HTTP on Android)
Creating Connection (% Battery used)
3G Wifi
HTTPS MQTT HTTPS MQTT
0.02972 0.04563 0.00228 0.00276
Study by Stephen Nicholas (MQTT and HTTP on Android)
% Battery used / hour
3G Wifi
HTTPS MQTT HTTPS MQTT
1.11553 0.72465 0.15839 0.01055
0.48697 0.32041 0.08774 0.00478
0.33277 0.16027 0.02897 0.00230
0.08263 0.07991 0.00824 0.00112
60 Seconds
120 Seconds
240 Seconds
480 Seconds
BROKER
QoS 0
PUBLISH
PUBLISH
PUBACK
PUBLISH
PUBACK
PUBREL
PUBCOMP
- At most once
- Does not survive network failure
QoS 1- At least once
- Can survive network failure
- Can be duplicated
QoS 2- Exactly once
- Can survive network failure
- Never duplicated
BROKER
CONNECT ID=thing2
SUBSCRIBE things/#2
CONNECT ID=thing1 LWT=things/thing1 “disconnected”
1PINGREQ
PINGRESP
KEEP_ALIVE exceeded
2 things/thing1 “disconnected”
SUBSCRIPTION SUBSCRIPTION
SESSION SESSION
SUBSCRIPTION
SESSION SESSION SESSION
1 2 3 4 5 1 2 3 54
• Durable Subscription– Messages 2 and 4 are
not lost but will be received on next connection
Real-time message processing
& Scalable API management
1Introduction
2 3 4Under the Hood:
What’s Unique
Use Case Evolving
with AWS
Let’s take a look at the evolution…
- Listeners
- Commanders
Yarn Cluster:
- Translation (i/o)
- BI
Public-facing API
MongoDB
Sinatra
Postman
Sinatra
YARN
ZooKeeper
Postman
VPC
(translation)
Public EC2
(APIs)
http://bit.ly/awsevals