24
GW-201: Gateway Software Architecture Hosting Diverse Protocols and Apps David Ewing President Donnie Pitts Design Engineer

GWY-101: Gateway Software Architecture Hosting Diverse

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GWY-101: Gateway Software Architecture Hosting Diverse

GW-201: Gateway

Software Architecture –

Hosting Diverse

Protocols and Apps

David Ewing

President

Donnie Pitts

Design Engineer

Page 2: GWY-101: Gateway Software Architecture Hosting Diverse

Meet Your Presenters

Donnie Pitts

Design Engineer, Firia

David Ewing

President, Firia

Page 3: GWY-101: Gateway Software Architecture Hosting Diverse

Design choices

Architecture

Recurring Costs

Maintenance

Performance

User Experience

Connecting to the Cloud

Building the

Whole Product

Page 4: GWY-101: Gateway Software Architecture Hosting Diverse

It’s all about IP

That’s Internet Protocol, not Intellectual

Property!

You’ve got an IP connection to your

product…

Now what?

• Which cloud provider to use?

• How much will it cost to run this system?

• Will I need DevOps staff?

• Am I going to be hacked?

What’s the ?

Page 5: GWY-101: Gateway Software Architecture Hosting Diverse

How you’re connecting impacts back-end

decisions too!

Embedded Wi-Fi?

• Consider impact of constrained CPU,

especially on security requirements

• Can your device support JWT (JSON Web

Tokens)?

Gateway or Hub

• Can you deploy application services here?

• Software libraries available for all the Clouds?

Dealing with multiple wireless PHYs!

Connectivity First

Page 6: GWY-101: Gateway Software Architecture Hosting Diverse

Cloud IoT Architecture

Common patterns for modern IoT Cloud

device connectivity, and their demands on

your Gateway.

Page 7: GWY-101: Gateway Software Architecture Hosting Diverse

The big three:

• AWS – Amazon Web Services

• Azure – Microsoft Cloud Platform

• GCP – Google Cloud Platform

On-Premises options?

• Also, “Hybrid-Cloud”

Multi-Cloud

• A myth to justify haphazard corporate rollouts?

• Containers and microservices.

• What cost to avoid vendor lock-in?

Cloud Providers

Page 8: GWY-101: Gateway Software Architecture Hosting Diverse

Now let’s compare this to the Big Three…

A Generic IoT Cloud Architecture

DeviceMessage Hub

(MQTT broker)

DB

Functions

as-a-service

Static

Storage

HTTPSUsers /

B2B

Cloud

Page 9: GWY-101: Gateway Software Architecture Hosting Diverse

AWS IoT Core

#workswith9

AWS CloudOn Premises

Customer’s equipment

that supports the OPC

DA protocol

Factory Equipment

PLC

Windmill

User

Industrial Gateway

Local configuration is

stored on edge device

AWS

Lambda

Function

AWS IoT

Greengrass

m2c2/job/request

M2c2/job/<job-name>/

<tag-name>

AWS Lambda

Function

AWS IoT

Core

Amazon Simple

Storage Service

(S3)

Amazon

DynamoDB

OPC DA

MQTT

IoT Rule

m2c2/job/submit/

<job-name>

X.509 IoT

Certificate

1

23

44

Page 10: GWY-101: Gateway Software Architecture Hosting Diverse

Azure IoT Hub

#workswith10

IoT Devices

Device

Management

Provision and

send data from

device to cloudCloud Gateway

(IoT Hub)

Stream

processing and

rules

evaluation over

data

Store data

UI &

Reporting

Tools

Stream

Processing

Storage

Things Insights

Business

Integration

Visualize data

and learning

Integrate with

business

processes

Actions

Page 11: GWY-101: Gateway Software Architecture Hosting Diverse

Google Cloud IoT Core

#workswith11

Gateway Device

CPU, GPU, Edge

TPU

Linux OS

Connection

Agents

Application

Logic

IoT Core

Data Analytics & ML

Control

Data

Update config &

deploy ML

model or other

files/objects

Data

TensorFl

ow

Cloud

Function

s

Pub/Sub

Dataflow

Cloud

Bigtable

BigQuery

AI

Platform

Datalab

Insights

Data

StudioTraining

Devices

Partner

Application

Partners

Service

Partners

Directly

Connected

Devices

Update

Device

Config

Update

Device

Config

Page 12: GWY-101: Gateway Software Architecture Hosting Diverse

Cost and Scale advantages lean toward

“serverless” Cloud

• Let’s talk cost $$

Reasons you may opt-out of serverless?

• Need fully private or on-premises operation

• Portability between cloud platforms (no vendor

lock-in)

• Technology constraints – ex: legacy code or

databases

• …often a hybrid approach can be used

DevOps – who’s going to maintain this?

Serverless vs [containers + microservices, etc.]

Page 13: GWY-101: Gateway Software Architecture Hosting Diverse

Full Stack Serverless Architecture: Device – Cloud – User

#workswith13

IoT Device

X.509

IoT Hub

• Commissions device IDs

• Verifies certificate chain

protobuf

Function Proxy

Proxies HTTP requests to correct destinations

HTTP Triggered

Cloud Function

• Runs Apollo (GraphQL) server

• Reads/writes to/from database

• Checks user access to devices & settings

• Responds to GraphQL queries

• Translates GraphQL mutations to

protobuf messages & sends to device(s)

Even Grid Triggered

Cloud Function

• Deserialize protobuf

• Write to database

General Storage

Holds & serves static web files

Browsers

protobuf

GraphQL

protobuf

protobuf

GraphQL

MQTT with TLS encryption

Event Grid Schema (authentication handled by Azure)

HTTPS

HTTPS with OAuth user session

SQL with TLS encryption

UNDERSTANDING THE DATA FLOW: AZURE EXAMPLE

cloud

Page 14: GWY-101: Gateway Software Architecture Hosting Diverse

Gateway Software

Architecture

Design choices for security, wireless

connectivity, commissioning, offline

scenarios, and remote software updates.

Page 15: GWY-101: Gateway Software Architecture Hosting Diverse

Provisioning certificates

• Cloud impact during factory programming / test

Managing keys

• End-user impact of security

Local connectivity concerns

• The Wi-Fi password changed!?

• Real-world scenarios

Security

Page 16: GWY-101: Gateway Software Architecture Hosting Diverse

Offering a cloud-based service to your

customers?

New legislation mandating IoT security

• California SB-327 effective Jan 1, 2020 (other

States following)

• NIST “Cybersecurity Feature Baseline for

Securable IoT Devices”

• ETSI EN 303 645

Terms of Service Agreements (TOS)

• Users don’t get a “license” to the software…

this is a service.

Service Level Agreements (SLA)

• Check your cloud provider – service level rolls

downhill ;-)

Acceptable Use Policy (AUP)

Privacy Policy – consider GDPR

The Fine PrintCloud Service Agreement

Page 17: GWY-101: Gateway Software Architecture Hosting Diverse

Multiprotocol support

• Traditional custom software approach is

brittle…

• Can it work more like TCP/IP?

▸ Requires OS support for Network Interfaces

Message Bus “Pub/Sub” – MQTT

• Decouples concerns… and processes.

Unified IoT Controller

A unified IoT software abstraction layer.

“Device Driver” for IoT.

Built on MQTT, provides JSON payload

definitions for all the layers.

Wireless Connectivity

Custom

Protocol

Controller

MQTT Interface

Protocol-Specific Interface

Mesh PHY

User Interface

Application Layer

MQTT Interface

GCP IoTTranslator

GCPConnector

Page 18: GWY-101: Gateway Software Architecture Hosting Diverse

Process for onboarding new devices

Case Studies – State of the Art

commissioning experiences

• Nest Camera

• Philips Hue

Associating unique Devices with User

Accounts

• Cloud database concerns

Commissioning

Page 19: GWY-101: Gateway Software Architecture Hosting Diverse

Case Study: Commissioning is Hard!

#workswith19

Page 20: GWY-101: Gateway Software Architecture Hosting Diverse

Designers could’ve opted for Wi-Fi soft AP mode, or BLE direct…

Oh! It’s using Thread - IEEE 802.15.4

… Goes on through Step 11!

It chose my Front

Doorbell !

Page 21: GWY-101: Gateway Software Architecture Hosting Diverse

Gateway or Device based caching /

spooling

Digital Twins on the Cloud

On-premises Cloud Functions

• Containerized Edge Computing

• AWS GreenGrass

• Azure IoT Edge

Offline Scenarios and Edge Computing

Azure Container

Registry

Sensor

IoT Hub

Devices

yourEdgeDevice

Module

Sensor

Azure IoT Edge

runtime

1

2

3

4

4

yourEdgeDevice

telemetry

Page 22: GWY-101: Gateway Software Architecture Hosting Diverse

Security patches make it risky to opt-out

Roll your own update option?

Cloud Provider service offerings

• Azure IoT Hub Device Provisioning Service

• AWS IoT Core Fleet Provisioning

3rd Party Services

• https://www.upswift.io/

22 #workswith

Software Updates

Provisioning Transaction

Customer

Device

IoT Core*If CSR

included in #1

Certificate is

signed and

returned and

in #3

Present

Bootstrap

Certification

*plus CSR

Enact Birth Policy

Execute

Provisioning

Template

Official Certification

Payload

1 2

3

4

Send ownership token

& specify provisioning

template

6

Respond with

outcome of

provisioning

transaction

5

Custom Provisioning

Validation

Activate Certificate Create

Thing/Groups

Assign Production

Policy

*CSR use case modifications

Page 23: GWY-101: Gateway Software Architecture Hosting Diverse

Technology often used on the Cloud

• Micro-Services!

• Deploy applications independently.

• Future proof.

Free your Gateway Applications from

Dependency Hell™

…But they may have to break out of

Container Jail™

Service Containers – like Watchtower can

provide remote updates, and more.

• Use 3rd party micro-services or roll your own.

23 #workswith

Containerization on the Gateway

Watchtower

Page 24: GWY-101: Gateway Software Architecture Hosting Diverse