Containers Overview
  • 01 Jul 2022
  • 3 Minutes to read
  • Dark
    Light

Containers Overview

  • Dark
    Light

Containers do not support the following features:

Overview

Containers are independent architectures that are used to isolate applications with the required elements and dependencies that allow them to function as intended. Containers provide the ability to run an application regardless of the environment that they are launched from, and they are recommended for users expecting a high volume of back-end processing while also reducing the amount of variation and maintenance across the entire environment.

There is no hard limit to the number of containers supported by a Decisions installation. 

Instead, the only 'soft' limiter would be the amount of traffic between the Decisions database and the ECS. Each container has its own unique IP.

This allows users to leverage container orchestration architecture to rapidly scale and descale implementations for better availability, performance, and/or hosting cost efficiency. In addition, Decisions supports containerization from other services such as AWS and Azure.


How it Works

AWS ECS can operate each container headlessly allowing it to run nearly independently from its standalone environment. To accomplish this, the ECS configures the publicly available Decisions Docker Image from Docker Hub by defining environment variables to configure the container Image to connect to a Decisions Database.

Whenever a container aka a “Task” in ECS deploys, it uses the Docker Image and the Decisions database to acquire the resources (i.e. Flow/Rule Definitions) needed to execute the processes. Containers can sit behind an EC2 Application Load Balancer that routes and then distributes HTTP traffic across each container round-robin style.

ECS can auto-scale and descale the number of containers based on usage metrics such as Request Traffic and CPU/Memory Usage by utilizing AWS services such as Cloudwatch to create metric alarms. These alarms may define scaling policies in ECS services. In this case, 'service' also refers to 'container groups'. Each ECS service can also be associated with discrete AWS Target Groups that allow traffic to be routed to specific container groups with unique scaling policies that give distinct scaling criteria to Decisions processes.



Additional configuration

Below are changes needed for specific modules or features in order to utilize them for a container.

SAML Module

In the SAML settings, the X.509 certificate requires ----BEGIN CERTIFICATE---— and ----END CERTIFICATE---— otherwise an invalid certificate error will be thrown.

WordToPDF Module

In order to utilize the module. A custom font needs to be added. This is due to the module using a Windows native font, which is not supported in Linux. In order to add the font:

  1. Create a folder path. This path will need to be volume mapped for the environment
  2. Copy the .TTF and .TTC  files from C:\Windows\Fonts into the directory
    • An easy way to accomplish this is to copy the needed files from a Windows environment and store them in a directory on the Linux machine.

Afterward, verify whether the font licensing is required, and read the EULA carefully before installing the MS Font on the Linux machine


External Form

Since the file path for a Linux operating system is case-sensitive, ensure that the Javascript paths for the external form have the correct casing.


Decisions Agents

The Download Agent button will not download the DecisionsAgent.msi in the container. In order to retrieve the .msi, it must be downloaded from the release site.


HL7 Module

The HL7 module requires that extra ports need to be open and exposed. This can be done by running the Docker expose commands. Ports can be opened using the following command:

—expose=port_number

Afterward, the port can be published and mapped to the container. This is done by the below command.

-p portnumber:portnumber

Active Directory

Currently, containers are able to access to utilize all steps in the active directory module except for the Create user advanced and Set Password steps. For logging into a container using an AD account. The user must enter the domain name along with the username. (domainName\userName)



For further information on Installation, visit the Decisions Forum.

Was this article helpful?