Multi-part Design Overview
Starting from the version 9.2.3, XESModule for Docker can be distributed in two ways:
- As a traditional all-in-one monolithic Docker image that includes all the Edifecs components (XEServer/ XEngine cores, ECLs, Standards, and so on) required for solving generic EDI tasks.
- As a multi-part solution that comprises a set of Docker images. Each image is an Edifecs product/component that acts as a self-contained module. The modules are bound together to operate as a single mechanism.
The main advantages of the new multi-part approach are the following:
- Flexibility. You can selectively update or replace individual images within XESModule for Docker instead of replacing the entire monolithic image in case of even minor updates.
- Lesser containers overhead. You do not have to run heavy containers with functionality that you do not actually use. Instead, you include only those Edifecs products and components that are truly utilized by your solution.
Use Kubernetes
Since the multi-part XESModule for Docker is a set of Docker containers that interact with each other, the management of these containers can be shifted onto an orchestration tool, such as Kubernetes. Kubernetes manages the lifecycle of multiple clustered Docker containers in a smart way: it provides communication between the containers, manages the load balancing, handles the recovery of dead containers, provides scheduling, monitoring, and so on. You can leverage the flexible capabilities of Kubernetes that binds all the things together and makes isolated Docker images work as a single mechanism.
Docker Images Distribution
XESModule for Docker images are distributed in two ways:
- Using Google Cloud Repository (GCR).
- In the form of .tar images.
For more information, see Docker Images Distribution.
Prerequisites
To deploy XESModule for Docker in Kubernetes as described in this section, you must have the following:
- One or more Linux computers to run the Kubernetes cluster. In this section, two computers with Ubuntu 20.04 are used as an example.
- cURL installed on each computer.
- Docker 18.03 installed on each computer.
- Configured Kubernetes cluster. This section discusses a sample cluster running on two Linux nodes. For demonstration and testing purposes, you can use a single-noded Kubernetes cluster.
- XESModule for Docker images (either pulled from GCR or as .tar files) to deploy in Kubernetes.
- XEServer license (.lic file).