Deployment Guide

Introduction

This guide will walk you through a production Synapse Azure Axon deployment.

Synapse Azure Axon is a service that implements a Synapse Axon which stores its data in a separate object storage container implementing the Azure Blob Storage API.

Synapse Azure Axon will register with AHA for service discovery and future devops tasks, and therefore this guide assumes the Synapse Deployment Guide has been followed.

As in the Synapse Deployment Guide, docker-compose will be used as a light-weight orchestration mechanism.

Preparation

With the Synapse Deployment Guide completed, the following items will be needed before starting the deployment:

  • Access to the running AHA container.

  • The previously chosen network name; referred to as <yournetwork> in this guide.

  • A host prepared as specified by Prepare your Hosts.

Note

Synapse Azure Axon expects the container to be dedicated. Objects are indexed using the SHA256, and therefore only files that are uploaded using this service are accessible for retrieval.

Note

The deployment guide assumes fixed credentials are used. For deploying the Synapse Azure Axon with alternative credentials, review the devops task Provide Azure Credentials prior to deploying the Synapse Azure Axon.

Deployment

Inside the AHA container

Generate a one-time use provisioning URL:

python -m synapse.tools.aha.provision.service 00.axon

You should see output that looks similar to this:

one-time use URL: ssl://aha.<yournetwork>:27272/<guid>?certhash=<sha256>

On the Host

Create the container directory:

mkdir -p /srv/syn/00.axon/storage
chown -R 999 /srv/syn/00.axon/storage

Create the /srv/syn/00.axon/docker-compose.yaml file with contents:

version: "3.3"
services:
  00.axon:
    user: "999"
    image: vertexproject/synapse-axon-azure:v0.x.x
    network_mode: host
    restart: unless-stopped
    volumes:
        - ./storage:/vertex/storage
    environment:
        - SYN_AZUREAXON_AZURE_CONTAINER=mycontainer
        - SYN_AZUREAXON_AZURE_CONNSTR=<Azure Storage account connection string>
        - SYN_AZUREAXON_HTTPS_PORT=null
        - SYN_AZUREAXON_AHA_PROVISION=ssl://aha.<yournetwork>:27272/<guid>?certhash=<sha256>

Note

Don’t forget to replace your one-time use provisioning URL!

Start the container:

docker-compose --file /srv/syn/00.axon/docker-compose.yaml pull
docker-compose --file /srv/syn/00.axon/docker-compose.yaml up -d

Remember, you can view the container logs in real-time using:

docker-compose --file /srv/syn/00.axon/docker-compose.yaml logs -f

Configure the Cortex to Use the Azure Axon

The axon configuration parameter on the Cortex can be used to set a Telepath URL for a remote Axon.

For example, to set this in the Cortex docker-compose.yaml file using an environment variable:

environment:
    # ...
    - SYN_CORTEX_AXON=aha://axon...

What’s next?

See the DevOps Guide for instructions on performing various maintenance tasks on your deployment!