service blueprint and deployment for an iot cloud ... · service blueprint and deployment for an...
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
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)