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 is supported on the following container orchestration systems:

  • Red Hat OpenShift Container Platform
  • Amazon Elastic Kubernetes Service (EKS)
  • Azure Kubernetes Service (AKS)

For more information regarding the support on other orchestration systems, please contact us.

These are the minimum requirements to deploy EC on OpenShift (or OKD):

  • OpenShift 3.11+
  • OpenShift router
  • OpenShift docker registry

📘

OpenShift version

OpenShift 4+ is supported as well.

These are the minimum requirements to deploy EC on Kubernetes:

  • Kubernetes 1.18+
  • Helm 3.0.0+

📘

Orchestration system installation

The orchestration system is considered provided as part of the infrastructure, this guide does not include documentation regarding its installation.
If you need support in order to deploy the orchestration system for your Everyware Cloud deployment please contact us.

🚧

Docker logging configuration.

Everyware Cloud containers can potentially generate a large amount of logs. It's advisable to configure docker to limit the amount of storage used by these logs. For example, in the json-file driver it's possible to limit the size and the number of files to keep for a single container. More details can be found on the official docker documentation.

Everyware Cloud rely on the following external services:

  • MariaDB 10.2+
  • [Optional] Elasticsearch 6.8+ (< 7.0)
  • [Optional] Redis 6.0+

A DNS service is also required if EC service endpoints are exposed using DNS names.

📘

External services installation

External services are considered provided as part of the infrastructure, this guide does not include documentation regarding their installation.
If you need support in order to deploy the external services for your Everyware Cloud deployment please contact us.

🚧

Access to external services.

Be sure that your network setup allows external services, that is MariaDB and Elasticsearch, to be accessed by applications running in containers deployed in the OpenShift instance.

High Availability and Scaling

High availability and auto healing in EC is achieved using OpenShift and Kubernetes features. This means that OpenShift and Kubernetes need to be deployed in high availability mode as well.

Databases

EC uses MariaDB to persist the status and the configuration of the system while uses Elasticsearch as storage for device telemetry data and device logs.

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.

Cache

EC uses Redis as caching service. While the cache service is optional, deploying this service is strongly recommended as it can speed up the performances of some functionalities.

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).

Logs

Everyware Cloud may generate a significative number of logs with the increase of the traffic to and from its components. It's important to configure the underlying infrastructure layer correctly in order to avoid issues with the node disks becoming full. We suggest to ship the logs to an external application or to configure log rotation for the containers.

Updated about a month ago

Prerequisites


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.