Containerization Overview
  • 06 Apr 2022
  • 2 Minutes to read
  • Dark
    Light
  This documentation version is deprecated, please click here for the latest version.

Containerization Overview

  • Dark
    Light

Article summary

Overview

Prerequisites
The following is required before proceeding with Docker Integration:
  • A valid Docker Services Account.
  • Proper installation of the Docker Module in Decisions.
    For more information on how to install Modules in Decisions, see: Installing Modules.

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. 

This allows users to leverage Container Orchestration Architecture to rapidly scale and descale implementations for better availability, performance, and/or hosting cost efficiency. 

The Docker module is best suited for organizations that require a large amount of back-end processing, as this module cannot containerize front-end/UI interactions (this will be available on newer versions of Decisions in the near future).



How it Works

AWS ECS can operate each Decisions Container headlessly thus powering it to run nearly independent from the counterpart standalone Decisions environment. To accomplish this, the ECS configures the publicly available Decisions Docker Image from DockerHub by defining Environment Variables to allow the Image aka the Container 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 then distributes HTTP traffic across each Container round-robin style. 

There is no hard limit to the number of supported Containers. 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

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' would somewhat translate 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 their own unique scaling policies which gives Decisions processes distinct scaling criteria.

The following diagram illustrates how Containers works with other Decisions Architectures (such as Clustering) to provide high availability.



Features and Limitations

Information on Version Update Plans
V.7 of Decisions brings greater support for Containerization with the intent that the platform is fully Containerized by v.8.

Due to the recent addition of the Docker Module, Decisions is working to provide a comprehensive list of all the supported features. The list below represents an overview of the currently available Containerized features.

Supported Features

Some features (noted below) may not be available; please contact Decisions Support for additional information.

  • Execution of complex Flows and Rules
  • Most core Decisions steps (some steps relying on an external library may not be currently available)
  • Decisions Data Structures
  • Database Integrations
  • Headless functionality; the “ControlInstance/EC2 can be off but Containers will continue to work
  • Per-Container Caching
  • HTTP POST/GET Requests (however, there are issues with REST Integrations that should be resolved in a future version)
  • FlowSets Module (support for other Modules is currently limited, please contact Decisions Support for assistance)
  • Integration with AWS CLI via the PowerShell Module to have direct & automated control over Container deployment

For further information on Installation, visit the Decisions Forum.

Was this article helpful?