iot platform supporting million requests per second

11
IOT Architectural Patterns Applied Abinasha Karana, Architect, OlaCabs Your company logo here

Upload: abinasha-karana

Post on 11-Apr-2017

388 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Iot platform supporting million requests per second

IOT Architectural Patterns Applied

Abinasha Karana, Architect, OlaCabsYour company logo here

Page 2: Iot platform supporting million requests per second
Page 3: Iot platform supporting million requests per second

Edge Server

Cloud ServerEdge Server

Edge Server

Tiered Data Percolation & Processing

Page 4: Iot platform supporting million requests per second

IOT Infrastructure Services

Plugin APIsReal time Dashboard

Machine Learning Provisioning & Deployment

In-Stream Computing Batch Analysis

Persistency Data Ingestion & Lineage

Page 5: Iot platform supporting million requests per second

Sensors to Edge Server Communication

TCP UDP

CoAPMqTTRestful HttpXMPPWeb Sockets

JSON XML Google Protobuf Custom

1. Number of Sensors Support2. Throughput (Messages / Sec)3. Network bandwidth overhead4. Battery Usage 5. Resource constraint sensors/devices

Page 6: Iot platform supporting million requests per second

Protocol ComparisonProtocol CoAP AMQP Restful HTTP MQTTTransport UDP TCP TCP TCP (TLS/SSL)

Message Req-Res Pub-SubReq-Res Req-Res Pub-Sub

Req-Res# Sensors 100 K 10K 10K 10K#Messages 500K 500K 10K 500KSporadic Connection Good Reconnection

overhead is highReconnection overhead is high

Reconnection overhead is high

BandwidthObserver pattern avoids http polling. Save Battery

ASCII headers overhead for small messages - Tax battery

Less Bandwidth for small message Save battery

Security Datagram TLS SSL/TLS SSL/TLS SSL/TLS

Page 7: Iot platform supporting million requests per second

A good broker makes it effective.Protocol CoAP AMQP Restful HTTP MQTTBroker Apache Mina Apache Qpid Netty Apache MoquetteUsing Netty Netty +Ring buffer

Clients 30 100 1,000 5,000Nginx module(1C) 1 4 32 3,047Nginx module(Multi-core) 1 6 205 3,036Erlang(1C) 3 8 629 6,337Erlang(Multi-Core) 2 7 223 3,084Java, Netty 1 3 3 3,084Go 26 33 47 9,005

Page 8: Iot platform supporting million requests per second

Processing at Edge Server – Pipeline

In Memory Queue

Ring Buffer(Aggregate on

Seconds )

In Stream

SQL

Rules Engine

Notification

Send to Cloud

Storage(TTL)

Physics Expression

Sensor Grouping

Real time Dashboard

Page 9: Iot platform supporting million requests per second

Choosing the database

Time To LiveRead HeavyWrite HeavySQL Support

No TransactionsWrite OnceSingle Writer (Async)Multi Reader

RocksDB HBase Cassandra Webscale

SQL VoltDB OrientDB

Page 10: Iot platform supporting million requests per second

Centralizing Monitoring

Gmond GangliaGmetad

NagiOSPlugin

NagiOS ELK

Page 11: Iot platform supporting million requests per second