Deploying Axual Platform

Axual Platform consists of multiple components wrapped in Docker containers. As for any generic Docker container, deployments poses some complexity on passing the correct environmental variables and network / persistence setup (port mapping, volume mapping).

In order to overcome this complexity we have created a tool called Axual Deploy that bootstraps the configuration and deploy the Platform into your local machine.

Prerequisites

Before starting, there are a few things required to setup:

  • use any Linux distribution or OS X with Bash 4.2+ installed ( Windows systems are not supported )

  • install Docker

  • download the example setup of Axual Deploy for local distribution

Configuring your local machine

The example setup of Axual Deploy is as follows

  1. Deployment scripts and platform configuration

    • scripts that starts/stops the following services: Cluster, Instance, Management and Monitoring

    • Cluster configuration

    • Tenant and Instance configuration

  2. Setup.sh script

  3. Security folder with Dummy Keystores for components in order to enable SSL communication

Before running the platform, it is required to run the setup.sh script (it might ask your for the sudo password):

./setup.sh

This script will prepare your system for running the platform, here’s what it does

  1. Creating an alias between localhost and 192.168.99.100 (all components will be exposed under the mentioned IP instead of localhost)

  2. Generating a ~/host.sh file used by deployment scripts containing the NodeName, Instance name and your Local Data Directory

Running the platform

To simply run the platform, change the directory to axual-deploy folder and run the following command:

./axual.sh start

If everything went successfully, a similar output should be present in the console:

Configuring cluster services for node localhost in cluster LOCAL
Preparing exhibitor: Done
Starting exhibitor: Done
Waiting for exhibitor on 192.168.99.100
Connected to exhibitor on 192.168.99.100
Preparing broker: Done
Starting broker: Done
Waiting for broker on 192.168.99.100
Connected to broker on 192.168.99.100
Preparing cluster-api: Done
Starting cluster-api: Done
Preparing distributor: Done
Starting distributor: Done
Deploying topic _company-local-environments: Done
Deploying topic _company-local-schemas: Done
Configuring instance services for company-local in cluster LOCAL
Stopping distributors with prefix company-local-message-distributor-from-: Done
Stopping distributors with prefix company-local-offset-distributor-from-: Done
Stopping distributors with prefix company-local-schema-distributor-: Done
Preparing company-local-sr-master: Done
Starting company-local-sr-master: Done
Preparing company-local-sr-slave: Done
Starting company-local-sr-slave: Done
Running copy-config-company-local-discovery-api: Done
Preparing company-local-discovery-api: Done
Done
Starting company-local-discovery-api: Done
Preparing company-local-instance-api: Done
Cluster servers are https://platform.local:9080
Done
Starting company-local-instance-api: Done
Configuring mgmt services for node localhost in cluster LOCAL
Running clean-config-prometheus: /config/prometheus
Done
Generating prometheus targets...
Generating prometheus configuration...
Running create-config-prometheus: Done
Running copy-config-prometheus: Done
Starting prometheus: Done
Provisioning grafana dashboards...
Running copy-config-grafana: Done

To stop the platform, run the following command:

./axual.sh stop

Troubleshooting

Troubleshooting the platform deployment can be done at multiple levels the following scenarios can be referenced when attempting to troubleshoot your own deployment.

Axual Deploy scripts completed with errors

In this case, adding the -v flag would result in a verbose output on the console which it will make the debugging process easier. The command will look like :

./axual.sh start -v

Axual Deploy scripts completed successfully but some components are unreachable

Run the following command to check if all the applications have started and the port mappings are correct:

docker ps

If everything was alright, an output similar to this one should be present:

CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS                                                                                                                                  NAMES
a7c7b082b7fa        axual/clusterapi:1.0.1             "/home/kafka/start-j…"   About a minute ago   Up About a minute   192.168.99.100:9080->9080/tcp, 192.168.99.100:4001->8081/tcp                                                                           cluster-api
046e11d87426        axual/instance-application:1.0.0   "/home/kafka/start-j…"   3 minutes ago        Up 3 minutes        192.168.99.100:9181->9181/tcp, 192.168.99.100:31000->31000/tcp                                                                         axual-local-instance-api
711704a1c458        axual/discovery-api:2.0.2          "/home/kafka/start-j…"   17 minutes ago       Up 17 minutes       192.168.99.100:29000->8080/tcp, 192.168.99.100:30000->8081/tcp, 192.168.99.100:443->8443/tcp                                           axual-local-discovery-api
6a7443c81309        axual/schemaregistry:3.5.0         "/home/kafka/start-s…"   18 minutes ago       Up 17 minutes       192.168.99.100:24000->24000/tcp, 192.168.99.100:25000->25000/tcp, 192.168.99.100:27000->27000/tcp, 192.168.99.100:26000->8088/tcp      axual-local-sr-slave
106eb3fc17e2        axual/schemaregistry:3.5.0         "/home/kafka/start-s…"   18 minutes ago       Up 18 minutes       127.0.0.1:20000->20000/tcp, 127.0.0.1:21000->21000/tcp, 192.168.99.100:23000->23000/tcp, 192.168.99.100:22000->8088/tcp                axual-local-sr-master
a6bb2f788cdd        axual/broker:5.0.2                 "/home/kafka/start-b…"   22 minutes ago       Up 22 minutes       192.168.99.100:9001->9001/tcp, 192.168.99.100:9092->9092/tcp, 192.168.99.100:9094-9096->9094-9096/tcp, 192.168.99.100:4003->8088/tcp   broker
3c015ffebbc6        axual/exhibitor:2.0.1              "/home/kafka/start-e…"   23 minutes ago       Up 23 minutes       192.168.99.100:2181->2181/tcp, 192.168.99.100:2888->2888/tcp, 192.168.99.100:3888->3888/tcp, 192.168.99.100:8082->8082/tcp             exhibitor

Please pay attention to the following columns:

  1. STATUS - all components should have an Up status (e.g. Up 10 minutes)

  2. PORTS - all components should be listening on ip 192.168.99.100 on the assigned ports

In the case that all components have a correct state but they are not accessible make sure to run setup.sh script before running Axual Deploy.

If there are any issues or questions regarding Axual Deploy you can always contact the support team using the Support Page