Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST....

35
1 Copyright Solace Confidential Solace SUG 2017

Transcript of Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST....

Page 1: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

1Copyright SolaceConfidential

Solace SUG

2017

Page 2: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

2Copyright SolaceConfidential

Solace Do What Ah?

Page 3: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

3Copyright SolaceConfidential

Page 4: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

4Copyright SolaceConfidential

Ask not what your app can do for your data movement layer, but what your data movement layer can do for your app!!

Page 5: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

5Copyright SolaceConfidential

What do we expect from the “Data River”

Page 6: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

6Copyright SolaceConfidential

Burst Handling

Page 7: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

7Copyright SolaceConfidential

Load Balancing

Page 8: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

8Copyright SolaceConfidential

Throttling

Page 9: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

9Copyright SolaceConfidential

And a lot more…

Message Exchange Patterns

Request Reply

Pub Sub

Queuing

QoS

Guaranteed

Direct/Reliable

Topic/URL Routing

Multi Protocol Interoperability

Subscription Management

Slow Consumer Handling

High Availability – Zero RPO, RTO

Disaster Recovery

Elastic Scalability

Multi Data Centre and Multi/Hybrid

Cloud Agnosticiy

Security

WAN Optimization

Functional Non Functional

Page 10: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

10Copyright SolaceConfidential

Endgame

Rivers flowing through Clouds

Page 11: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

11Copyright SolaceConfidential

Open Data MovementThe Major Industry Trends

CloudBig Data IoT

Digital Backbone

Next-GenMessaging

Page 12: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

12Copyright SolaceConfidential

The Digital Data River

Application & Service Layer

Data Movement Layer

Network Layer

TCP/IP

JMS AMQPREST MQTT

Pub/Sub

WebSocket

Req/RepQueueing Streaming

Environment Layer

On PremisePublic Cloud

Private Cloud

Application & Service Layer

Network Layer

TCP/IP

Environment Layer

On PremisePublic Cloud

Private Cloud

Solace moves data across applications/devices/clients • from/to where-ever in the network • in whatever way as needed • with open protocols & APIs

Capability High Speed Robust Secure Operational

Page 13: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

13Copyright SolaceConfidential

Event Driven Architecture

Self Orchestrating MicroServices

Page 14: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

14Copyright SolaceConfidential

Page 15: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

15Copyright SolaceConfidential

In Only

Out In

In Out

Out Only

Data Movement Patterns – Not Just Request Reply

This is usually what RESTFul microservices are limited to

Page 16: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

16Copyright SolaceConfidential

Multi Protocol Interoperability

REST POSTURL: http://solace_ip:port/a/b/c

DigitalChannelClient or Device

REST

MQTT Publish/SubscribeTopic: a/b/c

DigitalChannelClient or Device

MQTT

JMS Topic or Queues Topic: a/b/c

Core Business

Logic Analytics

JMS

AMQP Topic or Queues Topic: a/b/c

PaaSB2B

Business Logic

AMQP

o Solace allows interoperable data exchange between multiple protocols without any proxies or bridges

o Native wireline conversion between REST, MQTT, AMQP and JMS support

o This works across all message exchange patterns, In Out, Out In, In Only, Out Only –protocols can be mixed and matched

Page 17: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

17Copyright SolaceConfidential

The Impact of Event-Driven IT on API Management

Command

Query

Responsibility

Segregation

Page 18: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

18Copyright SolaceConfidential

MicroservicesEndpoints Business LogicData RiverAMQPREST MQTT

Solace is the “glue” which allows Microservices to self orchestrate in an

Event Driven Architecture

Page 19: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

19Copyright SolaceConfidential

Single Technology Core, Multi-Protocol EdgeOpen API and Open Wireline Protocols

Objective CiOS

JavaScriptHTML5

Silverlight, Flash & .NET HTTP API

JMS

Python

Ruby

C++

.NET

Perl

JMS/JCA

RESTC

C++

Java

JavaScript

Python

Go

C Java Node.jsC# / .NET Boot CloudConnector

CloudStreams

CloudBus

Page 20: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

20Copyright SolaceConfidential

App

licat

ion

Serv

ices

Event Sourcing & CQRS Patterns

Event Sourcing:

Capture all changes to an application state

as a sequence of events.

CQRS:

Command Query Responsibility Segregation

CommandServices

UserInterface

QueryServices

CommandModel

QueryModel

EventServices

EventStore

QueryStore

Performs:- Validation- Aggregation- Logic- Etc..

Example Views:- RDB- NOSQL- ElasticSearch- Etc..

Eventual ConsistencyModel

Example:- Create- Debit- Credit- Etc..

Benefits:- Use to rebuild state - Temporal query- Replay- State change auditable

Page 21: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

21Copyright SolaceConfidential

App

licat

ion

Serv

ices

Adm

inis

tratio

n

Mon

itorin

g

Gov

erna

nce

Applying Event Sourcing & CQRS PatternsEvent Sourcing:

Capture all changes to an

application state as a sequence of

events.

CQRS:

Command Query Responsibility

Segregation

CommandServices

UserInterface

QueryServices

CommandModel

QueryModel

EventStore

QueryStore

Performs:- Validation- Aggregation- Logic- Etc..

Example Views:- RDB- NOSQL- ElasticSearch- Etc..

Eventual ConsistencyModel

Example:- Create- Debit- Credit- Etc..

Benefits:- Use to rebuild state - Temporal query- Replay- State change auditable

Burst HandlingThrottlingLoad Balancing

Page 22: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

22Copyright SolaceConfidential

Big Data RiverData Lakes Need

Data Rivers to Feed Them

Page 23: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

23Copyright SolaceConfidential

Page 24: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

24Copyright SolaceConfidential

24Copyright SolaceConfidential

Big Data – Any Lake needs a Rivero Volume

- Up to 26 M / sec

o Velocity- µSec Latency

o Variety- All API/Protocol

o Veracity- Integrity

BigDataLake

Big Data River

“Analytics”What value is all this data?

Ingest

Action

JMS

Page 25: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

25Copyright SolaceConfidential

Page 26: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

26Copyright SolaceConfidential

26Copyright Solace

The shift to the cloud is on…

Source: Wikibon Public and PrivateCloud Research Projects 2016

LegacyDatacenter

PrivateCloud

PublicCloud

LegacyDatacenter 2026

2016

Page 27: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

27Copyright SolaceConfidential

Public Clouds

Legacy Environment

JMS MQ

??? ? ?

Challenges:• Cloud messaging?• Legacy-to-cloud?• Cloud-to-Cloud?• Application portability?• Enterprise grade features?• Out of the box?• Simplicity?• Robustness?• New non-cloud apps?

?

S-SQSO-SQSSNS

Service BusGCM

RabbitMQActiveMQ

Data Movement is getting harder!!

Platform as a

Service

Page 28: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

28Copyright SolaceConfidential

On Ramp to the Cloud –a Cloud Migration Digital Data River

You are

here

You want to be here

You want to be here

You want to be here

Page 29: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

29Copyright SolaceConfidential

Datacenter

Legacy

JMS MQ

New Apps

Benefits: Cloud messaging Hybrid-cloud Cloud-to-Cloud New non-cloud apps Application portability Enterprise grade features Out of the box Simplicity Robustness

Public CloudsPlatform

as aService

Page 30: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

30Copyright SolaceConfidential

Datacenter

Legacy

Public Clouds

JMS MQ

New Apps

Benefits: Cloud messaging Hybrid-cloud Cloud-to-Cloud New non-cloud apps Application portability Enterprise grade features Out of the box Simplicity Robustness

Platform as a

Service

Page 31: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

31Copyright SolaceConfidential

Chosen IaaS

Pivotal Cloud Foundary ArchitectureElastic Runtime Solace

MessagingRouters

OtherPCFTiles

OtherPCFTiles

Diego

Loggregator

ServiceBrokers

Blobstore

SolaceServiceBroker

PCF Services & Add Ons

Apps Manager

Auto-Scaling

API Gateway

Data Sync

IPSec Add-on

Redis MySQL

Push Notifications

GemFire

Single Sign-On

Metrics Server

Ops Metrics Notifications

BOSH

Pivotal ElasticRuntime

SolaceMessaging

Page 32: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

33Copyright SolaceConfidential

Message Exchange PatternDevice to Cloud, In Only

Connection Layer Application Layer

MQTTdevice_id:dev456Type: Box, home

RESTdevice_id:dev123

Type: Phone

MQTTdevice_id:dev789

Type: Car

Solace Multi Node Routing

JMSSubscribe Topic: out/phone/>

Phon

e ba

cken

dBo

x ba

cken

d

JMS Subscribe Queue: (Load Balanced)out/>

MQTT Subscribe: out/>

AMQPSubscribe Topic: out/box/>

o Publish topics/URLs should have the chosen namespace for “out” for out from devices, “in” as in to devices, or other similar/multiple verbs

o Messages land at the connection layer Solace router

o The connection layer Solace router is “wireline bridged” to the application layer Solace router

o “Out/>” or any other relevant topics are mapped to bridges for the data to flow from connection tier to application tier. Any other verbs/with more levels, wildcards, static subscriptions can be used for more sophisticated routing/filtering

o The Core Application Solace routers deliver messages to backend systems based on their subscriptions (note the phone and box wildcards). MQTT, JMS, AMQP.. Any protocols work interoperably

o For disconnected or slow consumer, Solace queues the data at the Application routers. Load Balancing is also supported/recommended

Load

Bal

ance

r

Publish Topic: out/car/dev789/status

3

21

4

5

1

1

1

2

3

5

4

Page 33: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

34Copyright SolaceConfidential

Message Exchange PatternCloud to Device, Out Only – Alerts/notifications

Connection Layer Application Layer

MQTTdevice_id:dev456Type: Box, home

RESTdevice_id:dev123

Type: Phone

MQTTdevice_id:dev789

Type: Car

Solace Multi Node Routing

JMSPublish Topic:In/phone/dev123/reboot

Phon

e ba

cken

dBo

x ba

cken

d

JMS Subscribe Queue: (Load Balanced)In/>

MQTT Subscribe: In/>

AMQPPublish Topic: In/phone/dev123/reboot

o Publish topics/URLs should have the chosen namespace for “out” for out from devices, “in” as in to devices, or other similar/multiple verbs

o Messages land at the connection layer Solace router

o The connection layer Solace router is “wireline bridged” to the application layer Solace router

o “In/dev wildcard/>” is used to route the messages to the connectivity Solace VMR based on the device range connected to it. The device range connectivity is done using the load balancer configuration.

o The Core Application Solace routers deliver messages to backend systems based on their subscriptions (note the phone and box wildcards)

o The same information, which is going to the devices can also be captured for analytics and audit by passive listeners such as Hadoop and Spark over various protocols

Load

Bal

ance

r

Subscribe Topic: /car/dev789/>

1

23

3

3

1

4

4

1

2

3

4

Page 34: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

35Copyright SolaceConfidential

Data River Endgame

Page 35: Sumeet-Singapore-User-Group-Slides · Data Movement Layer. Network Layer. TCP/IP. JMS. AMQP. REST. MQTT. Pub/Sub. WebSocket. Req/Rep. Queueing. Streaming. Environment Layer. On …

36Copyright SolaceConfidential

Thank You

[email protected]

http://dev.solace.com

www.solace.com