Everyware Cloud (EC) applications are distributed as containers. Everyware Cloud uses a container orchestration system to automate the deployment, the scaling and the lifecycle 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 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 7.8+ (<8.0)
- [Optional] Redis 6.0+
Note: Before deciding to not configure one of the optional external services, consider which Everyware Cloud features are impacted:
- Everyware Cloud Datastore Service rely on the availability of an Elasticsearch instance
- Everyware Cloud Logstore Service rely on the availability of an Elasticsearch instance
- Redis is highly recommended to improve access to relational data (MariaDB)
Please consider that a DNS service is required required as well 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 in EC is achieved using OpenShift and Kubernetes features. This means that OpenShift and Kubernetes need to be deployed in high availability mode.
Since EC relies on MariaDB and optionally Elasticsearch, these two services need to be deployed in an highly available configuration as well.
High Availability of the nodes (machines) running the services should be taken into account if needed (e.g. spreading of the nodes over multiple data centers or automatic replacement of nodes in case of failure) however this is considered provided as part of the infrastructure, this guide does not include documentation regarding this topic.
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.
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.
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).
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 7 months ago