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

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

This documentation explains how to install and configure Everyware Cloud in one of the supported platforms using the provided templates.

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

  • OpenShift 3.5+
  • OpenShift router
  • OpenShift docker registry

Note: OpenShift 4+ is not supported yet, please contact us for more info regarding this version.

These are the minimum requirements to deploy EC on Kubernetes:

  • Kubernetes 1.13+
  • Helm 3.0.0+

Other external services:

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

A DNS service is also required if EC endpoints in OpenShift services are exposed using OpenShift routes.

🚧

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.

🚧

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

High availability and auto healing in EC is achieved using OpenShift and Kubernetes features. This means that also OpenShift and Kubernetes also need 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 is supported since 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).

Software Updates