Everyware Cloud Developer's Hub

Everyware Cloud (EC) is an IoT Integration Platform distributed and supported by Eurotech. Based on Eclipse Kapua, Everyware Cloud offers an open and modular IoT Cloud Platform based on a micro-services architecture. Everyware Cloud provides device management, diagnostics, provisioning, remote access of IoT gateways and devices and integration services for the telemetry data.

Get Started

Prerequisites

Requirements

Everyware Cloud (EC) applications are distributed as containers. Everyware Cloud uses a container orchestration system to automate the deployment, the scaling and the management of its components. Everyware Cloud can be deployed using the following container management platforms:

  • Red Hat OpenShift (preferred platform)
  • OKD (the Origin Community Distribution of Kubernetes, former "OpenShift Origin")

This documentation explains how to install and configure Everyware Cloud in an OpenShift deployment using the provided templates.

These are the minimum requirements to deploy the services:

  • OpenShift 3.5+
  • OpenShift router
  • OpenShift docker registry

External services:

  • MariaDB 10.1+
  • Elasticsearch 5.4+ (< 6.0)

The AWS CLI configured with the credentials provided by Eurotech is also required to download the Docker images from the Eurotech registry.

A DNS service is also required to be able to configure the routes to the EC endpoints in OpenShift.

High Availability

High availability and auto healing in EC is achieved using OpenShift. This means that also OpenShift itself needs to be deployed in high availability.

API and Console can be made HA by scaling up the number of pods to more than one. This can be done also with the broker but you may end up with inconsistencies in cases where the device moves from one broker to the other for example after a disconnection so we discourage this configuration. Broker clustering will be added in version 5.0.1. The VPN does not support multiple nodes so it can only have auto healing in case of failure of the container.

Databases

EC uses MariaDB as database and Elasticsearch as metric storage. The installation of these two databases is not covered in this documentation.

For MariaDB it's important to set the lower_case_table_names parameter to 1 when starting the database engine. This flag can be set using --lower-case-table-names=1 argument for Docker or normal installations or setting the MYSQL_LOWER_CASE_TABLE_NAMES environment for OpenShift installations using the service catalog.

Certificates

You will need some certificates in order to setup an SSL deployment of Everyware Cloud. Depending of how you want to configure the environment you may need one certificate for each endpoint/component.

In this guide, however, we use a single wildcard certificate for the common name *.ec.example.com (cert.pem), its private key (key.pem) and a file containing the intermediate/root certificate chain (ca.pem).