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