service blueprint and deployment for an iot cloud ... · service blueprint and deployment for an...

24
Service Blueprint and Deployment for an IoT Cloud Integration Platform Ludwigsburg – October 24th 2017 Stefano Morson – Senior Software Manager at Eurotech Jens Reimann – Senior Software Engineer at Red Hat

Upload: doancong

Post on 22-May-2018

229 views

Category:

Documents


1 download

TRANSCRIPT

Service Blueprint and Deployment for an IoTCloud Integration PlatformLudwigsburg – October 24th 2017

Stefano Morson – Senior Software Manager at EurotechJens Reimann – Senior Software Engineer at Red Hat

Eclipse KapuaAgenda

• Kapua Platform Overview

• Core IoT Services

• Modular Architecture

• Deployment Options

• Roadmap

• Modular Integration Platform forEnd-to-End IoT Solutions

• Provides Multi Tenant Environment

• Focuses on ProvidingComprehensive Management ofEdge Devices

• Focuses on Data Collection andRouting for Real Time DataProcessing and Storage

@

Eclipse KapuaPlatform Overview

Application Integration

Security

Device Management

Data Management

De

vice

Co

nn

ecti

vit

y

@

Me

ssa

ge

Ro

uti

ng

Ad

min

istr

ati

on

Data Registry

Device Registry

MQ

TT

CoA

P

Data Store

AM

QP

Account Management Access Control

RE

ST

AP

ID

evic

e M

gmt C

onso

le

Device Management ProtocolsKura, LWM2M

Device Configuration Device Package Update

Eclipse KapuaPlatform Overview

Eclipse Kapua ArchitectureCore IoT Services

Account

User

Device Registry

Device Management

Authentication & Authorization

Datastore

Device Jobs

Scheduler

• Identity Validation

• Credentials

• Permissions

• Permission Check

• Roles

• Resource Groups

• Device Registry

• Device Lifecycle

• Device Connections

• Device Events

• Application Configuration

• Bundle Start/Stop

• Remote Command Execution

• Asset/Channel Read/Write

• Package Install

• Generic Request/Response

• Client Registry

• Channel Registry

• Metric Registry

• Message Store • Asset Write

• Bundle Start/Stop

• Command Execution

• Configuration Write

• Package Install/Uninstall

Eclipse Kapua ArchitectureService Blueprint

Device Registry

Device Registry Service

Device Connection Service

Device Events Service

Device Lifecycle Service

Device Registry Service

Service API

Service Impl

• A Kapua Service exposes a interface and aobject model that conforms to a service blueprint

• Serializable Model Objects (JSON and XMLformats supported)

• Kapua Services can handle persistent entities• Kapua Services can raise/handle events for

choreography interactions• Support per tennant “scoped” configurations• Service implementations may optionally leverage

Kapua Commons Library to reduce the burdenof implementation

• A service defines a bounded context • All interactions between services are handled

through the Kapua Service interfaces• Can manage resources• No resource sharing between modules

Kapua Commons

Eclipse Kapua Deployment

• Applications provided:– Web Console– RESTful API– Multiprotocol Messaging– Service Event Bus[1]

• Provide extension points for:– Web Console– RESTful API

• Data tier:– NoSQL Schema Less Engine (Elasticsearch)– Multiple SQL DB Support – Support for Database Migrations

• Provides demo deployments for:– Plain Docker Containers– Orchestrated Dockers (OpenShift Origin)– Virtual Machines (Vagrant)

Message Broker

RESTful API

Admin Console

Event Bus[1]

• Note:

1. Available with next release (1.0.0)

Eclipse Kapua DeploymentDefault Deployment

Frontend Services

Kapua Locator

API GatewayAdministration

Console

Kapua Locator Kapua Locator

AUTH SERVICE

DEVICE MANAGEMENTSERVICES

DATASTORE SERVICE

ACCOUNT SERVICE

Jetty

USER SERVICE

DEVICE REGISTRYSERVICE

Docker

TAG SERVICE

SCHEDULER SERVICE

JOB SERVICE

AUTH SERVICE

DEVICE MANAGEMENTSERVICES

DATASTORE SERVICE

ACCOUNT SERVICE

Jetty

USER SERVICE

DEVICE REGISTRYSERVICE

Docker

TAG SERVICE

AUTH SERVICE

DEVICE MANAGEMENTSERVICES

DATASTORE SERVICE

ACCOUNT SERVICE

ActiveMQ

USER SERVICE

DEVICE REGISTRYSERVICE

Docker

DeviceBroker

Artemis

Docker

Service EventsBroker

• NoSQL Datastore (Elasticsearch)

• SQL Persistency (Default H2)

Eclipse Kapua ExtensibilityApplication Integration

RESTful API

Event Bus

OpenID Auth Providers

Message Routes

• The REST API allow programmatic access to theplatform. It exposes all the platform functionality,including, tennant management, devicemanagement and data management.

• The Message Routes allow routing of telemetrydata to a wide range of destinations.

• The Event Bus allow both backend services andexternal applications to react to relevant eventstriggered

• Kapua supports authentication via OpenID.OpenID service providers can be used out of thebox to provide authentication services

ConterizationPlain old hardware

Hardware

Kernel

OS

Environment

Application

ConterizationScaling up

Hardware Hardware

Kernel

OS

Environment

Application

Kernel

OS

Environment

Application

ConterizationVirtualization

Hardware

Kernel

OS

Kernel

OS

Environment

Application

Kernel

OS

Environment

Application

ConterizationContainers

Hardware

Kernel

OS

OS

Environment

Application

OS

Environment

Application

Container

ConterizationBuilding containers

Environment

Application

Environment

Application+ =

Layer 1 Layer 2

Environment

Application

Environment

Application

Environment

Application

Environment

Application

Environment

Application

Environment

Application

Inst

ance

s

ContainerizationOrchestration – Kubernetes/OpenShift

Node 1 Node 2 Node n

Environment

Application

Master

Router

Environment

Application

Environment

Application

Environment

Application

Environment

Application

Micro servicesKapua 0.3.0 / 1.0.0

Node 1 Node 2 Node n

Web Console

Router

MQ

TT

HT

TP

Broker

API Server

Storage

Web Console

API ServerAPI Server

Micro servicesKapua beyond 1.0.0

Node 1 Node 2 Node n

Web Console

Router

Device

API Server

Storage

User / Groups

AuthZ / AuthN

Device Device

API Server

Web ConsoleM

QT

T

HT

TP

Eclipse Kapua RoadmapMicroservices

Frontend Services

Kapua Locator

API GatewayAdministration

Console

Kapua Locator Kapua Locator

Jetty

Docker

DeviceBroker

Artemis

Docker

Service EventsBroker

Jetty

Docker

ActiveMQ

Docker

JVM

Docker

DATASTORE SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

SCHEDULER SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

USER SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

AUTH SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

ACCOUNT SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

TAG SERVICE

Kapua Locator

µService Endpoint

JVM

Docker

DEVICE REGISTRYSERVICE

Kapua Locator

µService Endpoint

JVM

Docker

DEVICE MANAGEMENTSERVICE

Kapua Locator

µService Endpoint

JVM

Docker

JOB SERVICE

Kapua Locator

µService Endpoint

Service Discovery

Eclipse Kapua RoadmapMicroservices

ServiceAserviceB = Locator.getService(…)

ServiceB.doSomething(...)

Loca

t or

ServiceB Wrapper

ServiceDiscovery

ServiceAEntry

ServiceBEntry

Discovery.publishService()

ServiceB

doSomething(...)

Loca

t or

ServiceBEntry

µService Endpoint

µService Endpoint

• Services advertise themselvesto the service discovery

• Service discovery is delegatedto the Locator

• Client code is agnostic of thelocation of the services it uses

• Client code is agnostic of theprotocol used to communicatewith the microservice

• Should have minimalassumptions on the containermodel

Eclipse KapuaService Events

Interceptor

ServiceA

// Raise Service EventdoSomething(...)

Event Bus Broker

Interceptor

ServiceB

// Handle Service EventonKapuaEvent(...)

JMS 2.0 – AMQP 1.0

EventBus

JMS 2.0 – AMQP 1.0

EventBus

• Backend services should be able to exchange Events to react tochanges in the global status of the backend

• Service Events are raised upon the execution of a servicemethod

• Event management guarantees that the global status of thesystem is eventually consistent

Eclipse Kapua RoadmapIntegration with Other IoT Projects

• Messaging: Eclipse Hono

– https://www.eclipse.org/hono/

• Device Protocols: – Eclipse Leshan

● https://www.eclipse.org/leshan/– Eclipse Kura

● https://www.eclipse.org/kura/

• Software Updates: Eclipse hawkBit

– https://projects.eclipse.org/projects/iot.hawkbit

• Digital Twins: Eclipse Ditto

– https://projects.eclipse.org/projects/iot.ditto

Eclipse KapuaOpen Discussion

Joint Us this Eveningat

The Birds of Feather

Interested to Discuss More ?

Join Us this Eveningat

the Birds of Feather (BoF)

www.eurotech.com

Thank You!www.redhat.com

Want to Learn More? Meet Eurotech at Booth #2

E v a l u a t e t h e S e s s i o n sS i g n i n a n d v o t e a t e c l i p s e c o n . o r g

- 1 + 10