Docker Packaging Kit for Apama applications now available on GitHub

Apama image and application samples are now available as a ready-to-go Docker image along with Kubernetes config file on GitHub! Please visit https://github.com/SoftwareAG/apama-streaming-analytics-docker-samples to get started.

These samples function using the provided Dockerfile to create an image from your Apama installation. Most of them also work with the pre-built images, which are available for free from Docker Store. You can add them to your Store account by visiting https://store.docker.com/images/apama-correlator.

The GitHub repository contains configuration and samples to help you containerize and run Apama components and applications in Docker. It demonstrate how you can use either Docker or Kubernetes to deploy and manage entire applications.

All of this can be accomplished by sequences of Docker commands such as ‘build’ and ‘run’. Docker Compose, Stack and Kubernetes provide orchestration of these commands, as well as process monitoring and scaling. Please see below for a short description on the samples themselves.

Simple Application: 

This sample is a very simple application, deploying a correlator with a trivial EPL program. This sample creates a derived image containing the application which is loaded into the correlator when the application starts.

Adapter Application:

This sample starts an IAF in a container, which connects to a correlator running in another container. The IAF is running the File transport. An EPL application is deployed into the correlator, which requests the contents of a file ‘inputFile.txt’ from the File adapter, and then directs it to write those contents back out to another file ‘outputFile.txt’.

This sample will only work with the packaging kit, as the IAF is not provided in the pre-built images.

MemoryStore Usage Application:
This sample contains a toy application ‘MemoryStoreCounter.mon’ that makes use of the MemoryStore to lay down persistent state on disk in the form of a number that increments each time the monitor is loaded. While the correlator container is the one reading and writing to the MemoryStore, the persistent file is on a Docker or Kubernetes volume which is persisted between container restarts.

UM communication between two Apama correlators:
This sample demonstrates two Apama correlators communicating with each other via a UM realm server, all in separate containers.

Weather Application:
This sample provides an example of a dashboard for viewing DataViews created with EPL. The project has been converted (manually) to an init.yaml configuration file so the correlator injects the monitors at startup.

This sample will only work with the packaging kit, as the dashboard server is not provided in the pre-built images.

Queries Sample:
An Apama Query is running on multiple correlators with a shared Terracotta store. It demonstrates the use of StatefulSet in Kubernetes or Docker Swarm to scale the application dynamically. This sample also demonstrates how to deploy an application build using Software AG Designer into a Docker image.

– Chetan Laddha