Architecture

ClearBlade IoT Enterprise is a development and runtime environment to run IoT applications efficient and at scale.

Purpose

ClearBlade IoT Enterprise operates as:

  • IoT application stack execution environment

  • Development environment

  • Edge orchestration platform

IoT Enterprise functional capabilities

ClearBlade IoT Enterprise operates as a full stack, middleware, or backend to an IoT application with its six core modules:

Module

Features

Module

Features

Code Engine

JavaScript engine designed for highly parallelized microservices

Collections

A generic API for interacting with data stores, such as ClearBlade Cloud, MySQL, MongoDB, and PostgreSQL

Portals

A fully customizable user dashboard for interacting with your IoT application

Deployment

A highly customizable configuration for pushing microservices, data, sync behavior, and portals to edge groups

Messaging

A scalable, lightweight MQTT broker for interacting with IoT devices

Adapters

A robust model for deploying software and hardware adapters to many new or existing edges

API/Broker and IoT Enterprise/Edge integration

Development environment

Deploying an IoT solution once is simple, but a production solution will require many development iterations, new features, and security updates. ClearBlade IoT Enterprise operates as a development environment, allowing developers to modify micro-services, collections, portals, and other assets within the centralized platform. The changes are synced across all edges. This creates a simple, centralized development experience that can seamlessly sync across many edges running on different machines in many geospatially distant networks.

Edge orchestration

The Edge orchestration feature allows a single platform to

  • Administrate deployment to configure which microservices, collections, portals, and assets are deployed to edges and synced

  • Start, stop, pause, deploy, and undeploy adapters to edge groups

  • Monitor real-time system edge resource usage to evaluate appropriate hardware needs

Multi-tenanted model

Developers can use a single ClearBlade IoT Enterprise instance at once. Each developer can run many IoT applications simultaneously, and systems can be shared between developers. Each IoT application, called a system, includes the six above modules and runs completely isolated from every other platform system.

Scaling

ClearBlade IoT Enterprise is comprised of cluster nodes. Each node contains a certain number of vCPUs. Additional nodes provide additional vCPU and memory capacity to support devices. For some solutions, the following estimates can be made using nodes with eight vCPUs.

Number of devices

Cluster nodes required

Storage (GB) required per month

Number of devices

Cluster nodes required

Storage (GB) required per month

1,000

1

1.5

10,000

1

15

25,000

2

37

100,000

6

146

250,000

14

364

500,000

28

728

1,000,000

56

1,456

10,000,000

556

14,551

ClearBlade

Name

Value

Details

Name

Value

Details

Platform messages process rate

300

Per ClearBlade node per second

Devices supported per ClearBlade node

200,000

= msg_proc_per_node_per_sec / (msg_per_hour / 3600), = 30 / (6 / 3600)

IoT

Name

Value

Details

Name

Value

Details

Device message size

349 bytes

MQTT publish, packet size. See appendix

Device hourly message rate

6

Per hour, ClearBlade best practice: Interval > 10 minutes

Device data generated

1.49 megabytes

Per device per month = 349 * 6 * 24 * 31 / 1024 / 1024

Number of devices

Cluster nodes required

Storage (GB) required per month

Number of devices

Cluster nodes required

Storage (GB) required per month

1,000

1

1.5

10,000

1

15

25,000

2

37

100,000

6

146

250,000

14

364

500,000

28

728

1,000,000

56

1,456

10,000,000

556

14,551

Appendix

Average MQTT publish message size

Topic:

**_monitor/_asset/D4-53-83-A0-AF-F9/location**

Contents:

{ "name": "pump", "id": "214wsafd21-42112-1dfdsfsd-243-ddff", "amps": 244, "description": "some description", "enabled": true, "last_update": "2019-09-04T17:57:16.875586669Z", "location": { "latitude": 12.132233, "longitude": 123.1234 } }

 

Packet component

Size (bytes)

Packet component

Size (bytes)

Topic

42

Payload

298

Control, length, and meta

9

Total

349 bytes