"Industrial Internet IoT bootcamp" meetup, 11-5-2015 hosted by GE Digital at HackerDojo. Discussing topics ranging from IoT architecture to connectivity and protocols, cyber security, data science and industrial UX design.
2. -- 6 x 15 minutes --
Industrial Internet for Developers
Building a 12 Factor App
Connecting Machines to Cloud Foundry
OAuth for Industrial Strength Security
Mission Critical Industrial Big Data
UX Design for the Industrial World
-- live DJ, drinks and food --
10. GE DigitalTitle or Job Number | XX Month 201X
GE Business
Unit Name
1
0
power of
11. GE DigitalTitle or Job Number | XX Month 201X
GE Business
Unit Name
1
1
1% more output
240 TWh extra electricity (~Canada)
1% more output
240 TWh extra electricity (~Canada)
Source: GE and industry estimates
12. GE DigitalTitle or Job Number | XX Month 201X
GE Business
Unit Name
1
2
1% more efficiency
45,000+ saved lives each year
1% more efficiency
45,000+ saved lives each year
Source: GE and industry estimates
13. GE DigitalTitle or Job Number | XX Month 201X
GE Business
Unit Name
1
3
1% more on-time
100,000 minutes less waiting time (UK)
1% more on-time
100,000 minutes less waiting time (UK)
Source: GE and industry estimates
14. GE Digital
1% more production
$10b more output (US)
1% more production
$10b more output (US)
Source: GE and industry estimates
16. Air Speed Calibrated
Altitude
Cooling Valve Position
Exhaust Gas Temperature
Fuel Flow
Ground Speed
and more…
500 GB / FLIGHT
5,000 PARAMETERS
1 SNAPSHOT / SEC
Source: GE Aviation
24. Title or Job Number | XX Month 201X2
4
We’re Hiring!
gesoftware.com/careers
We’re Hiring!
gesoftware.com/careers
25. GE Digital
12 Factor App in 12 Minutes
Your cloud app report card
Matt Momont, Software Developer
@muymoo
26. GE Digital
Why 12 Factors
• Strange things happen in the “The Cloud”
– Think: Network explosions, data center
explosions, server explosions
• The cloud requires a new way of developing
apps
• These 12 factors will help you build your next
cloud app safely.
12factor.net
28. GE Digital
1. Codebase
Level I. Email src zip with different name
Level II. Frequent commits to source control
App lives in one repo
Level III. App is broken into system
Each piece is an app in its
own repo
29. GE Digital
2. Dependencies
I. Manually download jars to /lib
II. Use package manager (mvn, npm)
Expect tools to be provided (curl)
III. Use artifact manager (Artifactory)
Bundle dependencies and tools
New
30. GE Digital
3. Config
I. Hardcode URLs, passwords in code
Use code like: if(Mode.PROD)
II. Use config files
Multiple config files for different
environments
III. Use config service (Spring Cloud Config,
Zookeeper)
31. GE Digital
4. Backing Services
I. Vendor specific connection libraries
Hardcode connection strings
II. Connection parameters live in config files
III. Resources are found dynamically
Update backing services independently
32. GE Digital
5. Build, Release, Run
I. Devs build and deploy code from local
Production is pushed manually
II. Use build/release tools (Jenkins, Travis CI)
Cleanly separate build and deploy steps
III. Have one click release pipeline
Each release is versioned and saved for
rollback
No human intervention
33. GE Digital
6. Processes
I. Sticky session
Write app data to local filesystem
II. Does not rely on data stored locally
III. Stateless
Store session data in datastore (redis)
Cache intermediate transaction steps
34. GE Digital
7. Port Binding
I. Deploy to app container
II. Standalone, but listens to specific ports
III. Web server is part of app (node, netty)
App exports HTTP as a service
35. GE Digital
8. Concurrency
I. Blocking tasks that must run sequentially
II. Non-blocking IO server (node, netty)
III. Scale horizontally
Small, independent microservices
Scale out, not up.
36. GE Digital
9. Disposability
I. Needs a dev to coordinate reboot
II. Fast startups
III. Crashes gracefully
Sub 1 second restarts
Stores state to quickly recover
Your servers are cattle,
not pets.
brosher.com
37. GE Digital
10. Dev/Prod Parity
I. Devs have no insight to prod
Dev is different from prod
II. Substitute lightweight replacements
(In-memory H2, SQLite)
III. Environments are identical
SQLite ≠ Postgres
38. GE Digital
11. Logs
I. System.out.print()
II. Write to log files on web server
III. Treat logs like a stream (ELK)
39. GE Digital
12. Admin Processes
I. Edit database entries manually
II. Store migration scripts in repo
III. Use framework’s tooling
40. GE Digital
Thank you!
• Follow these 12 factors
• Survive explosions
• Build awesome cloud apps
• 12factor.net
• Migrating to Cloud Native Application Architectures – Matt Stine
42. GE Digital
Who
• Senior Software Architect @ GE Digital
– Committer on Cloud Foundry Diego, Gorouter,
TCP router and Routing release projects
– Runtime PMC member in Cloud Foundry
foundation
• Email: atul.kshirsagar@ge.com
• Twitter: @atulckshirsagar
43. GE Digital
Predix Platform enables
Asset Performance Management
for GE and non-GE assets
Predix
Industrial
Cloud
SDM
SDM
SDM
SDM
SDM Predix-ready
gateway
Predix-ready
gateway
Why
DDS
MQTT
S2S
XMPP
Binary
AMQP
HTTP
50. GE Digital
AMQP, MQTT
• RabbitMQ is available as a service on most CF
based hosted PaaS
• RabbitMQ supports:
– AMQP
– MQTT Adapter available
cf cs <rabbitmq-service> <plan> <instance-name>
cf bs <app-name> <service-instance-name>
53. GE Digital
CF
Go router App1
App
(Industrial)
dds://app1
http://app1
Sensor/Device/
Gateway
TCP Router
TCP router
54. GE Digital
• 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
App
3
App
4
App
1
App
1
Layer 4
router
Layer 4
router
Load
Balancer
TCP router
- 1
App
1
App
2
App
4
1883 5222522
2
1883 5222 5222
TCP router
- 2
Load
Balancer
App
3
5222
51216
TCP Router
55. GE Digital
CC Bridge
Cloud
Controller
etcd
TCP Emitter
Routing API
TCP Router – under the hood
Diego
App
1
App
1
App
1
App
2
App
1
App
n
……
Routing API
TCP Emitter
etcd
Cloud
Controller
CC Bridge
Load Balancer
TCP routerTCP router
HAProxy
Router
Config
HAProxy
Plugin
62. GE Digital
Summary
• Devices/Machines talk different protocols
• Two ways to connect machines to Cloud
Foundry
– Cloud Foundry services
– TCP router
68. GE Digital
Predix.io: You’ve got the power
• You get your own authorization server(s)
– Manage identities (SCIM)
– Manage OAuth clients
– Federate with external IdPs
• Configure any service from the marketplace
as an OAuth resource server
• Configure any app you deploy as an OAuth
client
69. GE Digital
OAuth Limitations
• Dynamic & fine-grained access control
– Access Control Service
• Revocation
– RFC 7009
• Impersonation (i.e. act-as, on-behalf-of)
– ???
76. powered by#IndustrialInternet
Industrial stakes are high…
Major patient
delays
Major flight
delays
INDUSTRIAL DATA
Cumulative waiting cost (US)
$100B annually
Delays and cancellations
$40M annually
77. Cooling Valve Position
Exhaust Gas Temperature
Fuel Flow
Water Pump Pressure
Power Assembly Output
Turbo Throughput
Bearing Friction Coefficient
and more…
100 GB / TRIP
3,000 PARAMETERS
Continuous DATA STREAM
Source: GE Transportation
78. Source: GE estimates
100 GB / TRIP
3,000 PARAMETERS
Continuous DATA STREAM
[X]
25 Railroad Networks
3.2 MILLION TRIPS
79. Source: GE estimates
4000
gas turbines
23,000
wind
turbines
21,500
locomotives
28,000
commercial
jet engines
1.4 million
pieces of
health care
equipment
20,700
units of oil
and gas
equipment
81. GE Digital
Data Management
Data
scientist
Business
analyst
Data governance
and federation
Fast ingestion,
storage and
compute
High
performance
analysis
Optimized for
mission-critical
workloads
Field
operations
Industrial Data Lake
Sensor
data
Sensor
data
Content
(images, videos,
manuals, etc.)
Content
(images, videos,
manuals, etc.)
Historian
data
Historian
data
Machine
data
Machine
data
CRM, ERP,
etc.
CRM, ERP,
etc. LogsLogs
Social network
data
Social network
data
Geo-location
data
Geo-location
data
93. GE Digital
Offices vs. Industrial Workplaces
CONVENTIONAL INDUSTRIAL
LOCATION Fixed Mobile
HANDS Free Full
CONNECTIVITY Good Unreliable
LIGHTING Consistent Variable
ENVIRONMENT Clean Messy
DISTRACTION Optional Required