CurveCue

Management Stack for Docker Swarm Cluster

docker-swarm

There are many production grade container orchestration technologies available such as Docker Swarm, Kubernetes, Mesos and so on. All these technologies simplify the process of automatic deployments, scaling and management of containerized applications. At CurveCue, we support deployment of our components using either Docker Swarm Cluster or with Kubernetes platforms (GKE, EKS, AKS, On-Premise).

In this article we will look at the management tools for building a production grade Docker Swarm cluster.

Creating a Cluster

  • First we create a base machine image using the packer tool and then provision servers using terraform scripts though a CI/CD pipeline.
  • Once the servers with basic configurations are provisioned, we use Ansible scripts to install and configure the desired server configurations.
  • At the end of this phase we have
    • one master node
    • and many worker nodes

Configuration files

Below are snippets from the necessary config files:

Build pipeline snippet

Here we are showing a sample build created using our build pipeline:

Network Routing

Once the master and worker nodes are set up, we use Traefik for networking and proxy management.

Real Time Alerting and Monitoring Dashboard

We use a list of common set of best class tools and tech stack for this purpose as below.

Prometheus: It is an open-source monitoring and alerting toolkit which collects and stores metrics as time series data.

cAdvisor: It analyzes and exposes resource usage and performance data from running containers.

Node Exporter: The Prometheus Node Exporter exposes a wide variety of hardware- and kernel-related metrics

Alert Manager: The Alertmanager handles alerts sent by client applications such as the Prometheus server.

Grafana: It is an open-source dashboard for monitoring and alerting.

Unsee: Alertmanager UI is useful for browsing alerts and managing silences, but it’s lacking as a dashboard tool – unsee aims to fill this gap.