cloud foundry summit 2015: cloud foundry and iot protocol support
TRANSCRIPT
![Page 1: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/1.jpg)
![Page 2: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/5.jpg)
IoT Protocols
![Page 6: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/6.jpg)
IoT Protocols
![Page 7: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/14.jpg)
Layer 4 (TCP) Router - Architecture
![Page 15: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/15.jpg)
Layer 4 (TCP) Router - Architecture
![Page 16: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/16.jpg)
• 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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/18.jpg)
• 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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/20.jpg)
Imagination at work
Q&A
![Page 21: Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support](https://reader030.vdocuments.us/reader030/viewer/2022020101/55b3515cbb61eb43148b474a/html5/thumbnails/21.jpg)
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.