Speaker: Atul Kshirsagar, GE Software
To learn more about Pivotal Cloud Foundry, visit http://www.pivotal.io/platform-as-a-service/pivotal-cloud-foundry.
Generative AI for Technical Writer or Information Developers
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
1.
2. Imagination at work
CF & IoT Protocol Support
Atul Kshirsagar
Senior Engineer, GE Software
Dedicated Committer, CF Diego Project
May 11, 2015
3. 3
Protocol Landscape – GE Usecase
P
Predix
ERP / CRM
Predix Go
L P F L P
Data
historian
HMI
station
Engineering
workstations
PrinterControl server
(SCADA - MTU)
Serial based radio
Cellular, satellite, mesh, P/
ethernet or
serial communication
Control server
(SCADA - MTU)
P P
PumpValve PumpValve
Pressure
sensor
Flow
sensor
Level
sensor
Pressure
sensor
Flow
sensor
Level
sensor
RTUPLC
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
HTTPRMI
SFTP SMTP
AMQP
Asset
optimization
Operations
optimization
4. 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.
9. 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 nApp3App2App1
Layer 7 routerLayer 7 router
MQTT DDS XMPP
App1 App2 App3 App n
Load Balancer
1883 7400 5222
10. 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 nApp3App2App1
Layer 7 routerLayer 7 router
MQTT DDS XMPP
App1 App2 App3 App n
Load Balancer
1883 7400 5222
11. 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
Pass
word
flag
Will
RETAIN
Will
QoS
Will
QoS
Will
flag
Clean
Session
Reserved
12. 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 App4App1App1
Layer 4 routerLayer 4 router
Load
Balancer
TCP router - 1
App1 App2 App4
1883 52225222
1883 5222 5222
TCP router - 2
Load
Balancer
App3
5222
51216
13. 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 App4App1App1
Layer 4 routerLayer 4 router
Load
Balancer
TCP router - 1
App1 App2 App4
1883 52225222
1883 5222 5222
TCP router - 2
Load
Balancer
App3
5222
51216
16. • 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
17. 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
18. • 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
19. Summary
Layer 4 (TCP) router to provide IoT protocols (and more)
support in CF
1
Will be hosted in cloudfoundry-incubator2
Feedback/contributions are welcome
• IoT usecases
• Contact atul.kshirsagar@ge.com or scoen@pivotal.io
3