Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

21

Transcript of Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Page 1: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
Page 2: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Imagination at work

CF & IoT Protocol Support

Atul Kshirsagar Senior Engineer, GE Software Dedicated Committer, CF Diego Project May 11, 2015

Page 3: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

3

Protocol Landscape – GE Usecase

P Predix

ERP / CRM

Predix Go

L P F L P

Data historian HMI

station Engineering

workstations

Printer Control server (SCADA - MTU)

Serial based radio

Cellular, satellite, mesh, P/ethernet or

serial communication

Control server (SCADA - MTU)

P P

Pump Valve Pump Valve

Pressure sensor

Flow sensor

Level sensor

Pressure sensor

Flow sensor

Level sensor

RTU PLC

Modem gateway

P

Local access

Remote station

Remote station

Modem gateway

F

Modem gateway

HML station

Corporate enterprise network

WAN

Primary control center

Backup control center

Regional control center

Data historian

P MODBUS OPC-UA OPC-UA MTConnect

DDS DDS DDS DDS

DDS

MQTT

S2S

XMPP

HTTP

Binary

PROFINET MODBUS

CDMA FDMA

TDMA

HTTP RMI

SFTP SMTP

AMQP

Asset optimization

Operations optimization

Page 4: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

GE | Non-GE

Predix-ready MACHINES and industrial

devices

Industrial Internet apps powered by Predix

Cloud Infrastructure

•  Scalable •  Elastic • Reliable •  Trusted end-to-end

Cloud Foundry

Industrial Microservices Catalog

Application services Infrastructure services

• Built by GE, customers, partners

Machine Embedded

Discover Code Deploy Operate Monetize • BizOps • DevOps • Community

Asset Performance Management (APM) Operations Optimization

Predix* Industrial Internet Platform - Architecture

Predix is a trademark of General Electric Company.

Page 5: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

IoT Protocols

Page 6: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

IoT Protocols

Page 7: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

CF

Go router

App1

App2

App3

mqtt://app1

http://app1

Sensor/Device/Gateway

Cloud Foundry Protocols

Page 8: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

App1

App2

MQTT Service

Sensor/Device/Gateway

Go router

App3

http://app1

mqtt://iotservice Service Broker

CF Service

Cloud Foundry Services

Page 9: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Option 1 – Layer 7 Router

•  Pluggable architecture for protocol specific proxies

•  Routes traffic to protocol specific proxies based on standard ports

•  Protocol proxy then routes traffic to appropriate app/instance based on routing table

App n App3 App2 App1

Layer 7 router Layer 7 router

MQTT DDS XMPP

App1 App2 App3 App n

Load Balancer

1883 7400 5222

Page 10: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Option 1 – Layer 7 Router

•  Pluggable architecture for protocol specific proxies

•  Routes traffic to protocol specific proxies based on standard ports

•  Protocol proxy then routes traffic to appropriate app/instance based on routing table

Pros •  Standard ports exposed for protocols

•  Scalable

•  Extensible as more protocol proxies can be added on needed basis

•  Router services could be developed

Cons

•  Support for each protocol needs to be developed independently

•  Difficult for protocol proxies to decipher logical targets

App n App3 App2 App1

Layer 7 router Layer 7 router

MQTT DDS XMPP

App1 App2 App3 App n

Load Balancer

1883 7400 5222

Page 11: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

bit 7 6 5 4 3 2 1 0

byte 1 Message type (1) DUP Flag QoS Level RETAIN

byte 2 Remaining length

Fixed Header

Variable Headers for CONNECT

Protocol Name (8 bytes)

Protocol Version (1 byte)

Connect flags (1 byte)

Keep Alive timer (2 bytes)

Header extensions to support protocol specific router plugins requires client-side updates – doesn’t work for IOT!

MQTT Headers

7 6 5 4 3 2 1 0 User

name flag

Password flag

Will RETAIN

Will QoS

Will QoS

Will flag

Clean Session

Reserved

Page 12: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Option 2 – Layer 4 (TCP) Router

•  Map external port on router to an app

•  Route traffic on mapped port to appropriate app

•  Specify mapping of router port to app as part of cf cli

•  Mechanisms to detect and report port conflicts App3 App4 App1 App1

Layer 4 router Layer 4 router

Load Balancer

TCP router - 1

App1 App2 App4

1883 5222 5222

1883 5222 5222

TCP router - 2

Load Balancer

App3

5222

51216

Page 13: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Option 2 – Layer 4 (TCP) Router

•  Map external port on router to an app

•  Route traffic on mapped port to appropriate app

•  Specify mapping of router port to app as part of cf cli

•  Mechanisms to detect and report port conflicts

Pros •  Ability to support almost all layer 7

protocol (including but not limited to IoT protocols)

•  Reduced complexity

Cons

•  May have to use of non standard ports

•  Number of apps that can have non-http traffic is limited

•  Number of ports on router ( ~ 64K)

•  Number of front end IPs

App3 App4 App1 App1

Layer 4 router Layer 4 router

Load Balancer

TCP router - 1

App1 App2 App4

1883 5222 5222

1883 5222 5222

TCP router - 2

Load Balancer

App3

5222

51216

Page 14: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Layer 4 (TCP) Router - Architecture

Page 15: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Layer 4 (TCP) Router - Architecture

Page 16: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

•  As apps get placed/moved emit the information to router •  Update the tcp router config to forward the traffic to appropriate

host IP/Port

Route TCP traffic

•  During Config changes

Zero downtime

Rolling deploy

Layer 4 (TCP) Router – Goals

Page 17: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Load balancing among app instances

•  Is the host IP/Port in routing table still reachable

Health checks

•  Simultaneous connections •  Connection rate

Traffic shaping/limiting

Managing backend ports

Layer 4 (TCP) Router - Goals

Page 18: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

•  Cloud controller changes

Reserve front end IP/Port combination

•  CLI changes

Add/Remove/Show mapping

Application manifest to support new mapping

Layer 4 (TCP) Router – Goals

Page 19: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Summary

Layer 4 (TCP) router to provide IoT protocols (and more) support in CF

1

Will be hosted in cloudfoundry-incubator 2

Feedback/contributions are welcome •  IoT usecases •  Contact [email protected] or [email protected]

3

Page 20: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

Imagination at work

Q&A

Page 21: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support

General Electric Company reserves the right to make changes in specifications and features, or discontinue the product or service described at any time, without notice or obligation. These materials do not constitute a representation, warranty or documentation regarding the product or service featured. Illustrations are provided for informational purposes, and your configuration may differ. This information does not constitute legal, financial, coding, or regulatory advice in connection with your use of the product or service. Please consult your professional advisors for any such advice. No part of this document may be distributed, reproduced or posted without the express written permission of General Electric Company. GE, Predix�and the GE Monogram are trademarks of General Electric Company. ©2015 General Electric Company – All rights reserved.