API Management in Docker containers

This topic describes how to run a multi-node Axway API Management system in Docker. It provides an overview of the main steps and describes the recommended default topology.

Docker containers wrap software in a complete file system that contains everything required to run (for example, code, runtime, system tools, and system libraries). This guarantees that the software always runs the same way, regardless of environment. For more details, see https://www.docker.com.

Running your API Management system in Docker makes it easy to quickly build, test, and run API Management solutions in containers for standalone or high availability (HA) deployment. The API Management sample system supports Docker version 1.13.x, and includes API Gateway, API Manager, and Apache Cassandra. For details onAPI Portal Docker support, see the API Portal Installation and Upgrade Guide.

This topic assumes that you have working knowledge of API Management architecture, Apache Cassandra, and Docker. For more details, see the following:

Create Docker images using scripts

Axway provides Docker files and compose scripts to enable you to create custom Docker images for API Gateway, API Manager, and Apache Cassandra. You can deploy these images in Docker containers on any host operating system or cloud platform that supports Docker (for example, IBM Bluemix or Amazon Web Services). The API Management sample system supports both CentOS Linux 7 and Red Hat Enterprise Linux 7 base images, which you can customize to generate your API Management Docker topology.

Note   Generating custom Docker images using scripts is the recommended approach in an HA production environment.

The following diagram shows a high-level overview of the steps to create and deploy your desired API Management topology:

Overview of Docker steps

These steps are described in the following sections:

Run pre-built Docker images

Axway also provides pre-built Docker images (CentOS Linux 7 base image only), which you can download from Axway Support.

Note   These pre-built CentOS 7 Docker images are recommended for development and test purposes in an standalone environment only, and are not designed for use in an HA production environment. For production environments, see Create Docker images using scripts.

For more details, see Run pre-built API Management Docker images.

API Management Docker HA topology

This section describes the default API Management topology that is generated in the 3-node sample system, which is recommended for an HA production environment:

API Management Docker Reference Architecture

This sample topology includes the following:

  • Three Docker containers each including API Gateway, API Manager, and an Admin Node Manager or Node Manager.
  • Three Docker containers each including Apache Cassandra for HA. Each API Gateway node is aware of all three nodes in the Cassandra cluster, and does not map to a single Cassandra node. The Cassandra cluster has a replication factor of 3 and quorum consistency. This ensures that reads and writes are consistent and tolerates the loss of one node, which is recommended for API Management HA.
  • Multiple Docker data volumes per container to manage persistence of API Gateway and Cassandra configuration data.

Axway provides scripts to build Docker images and generate a docker-compose.yml configuration for running the API Management solution on a single host. You can specify which components are included in the solution: API Gateway, API Manager, Admin Node Manager, and Node Manager (non-admin). You can also configure Docker data volumes for persistence. For more details, see Generate API Management Docker images.

Deploy your Docker infrastructure to the cloud

For details on how to deploy your Docker infrastructure in the cloud, see the product documentation for your chosen third-party cloud platform. For example, this includes Platform as a Service (PaaS) environments such as IBM Bluemix or Amazon Web Services.

For more details, see the following:

Further information on Docker

For more details on Docker, see the following:

Related Links