You are currently reviewing an older revision of this page.

KB-XXXXX [DRAFT] How To Go From High Availability to Standalone for On Premise Installations

The following steps are not generally supported for Cloud sites unless there is a specific reason (such as an RRT issue). For the proper procedures to follow on Cloud sites, follow INT-1636 How to convert Appian Cloud sites between the three main server configurations: single node, hot/cold, high availability (hot/hot)

The below steps will cause Appian to be unavailable until all steps are completed. Please schedule a maintenance window and inform your users. Note: When moving from High Availability to Standalone, it is recommended to adjust autocheckpoint configuration so that checkpoints do not run during business hours. More information is provided in the Configuring Checkpointing Frequency documentation.

Backup Kafka and Zookeeper Data

On each server hosting Appian engines, do the following:

  1. Create a backup folder of <APPIAN_HOME>/services/data/kafka-logs.
  2. Move all the content from <APPIAN_HOME>/services/data/kafka-logs to the backup folder created in step 1.
  3. Create a backup folder of <APPIAN_HOME>/services/data/zookeeper.
  4. Move all the content from <APPIAN_HOME>/services/data/zookeeper to the backup folder created in step 3.

Note: Performing these steps without correctly checkpointing the engines may cause data loss.

Stop a Subset of Appian Services 

  1. Stop all Services that are dependent on the Messaging Service (Kafka & Zookeeper) on all servers
    Stopping the Application Suite on Linux Complete all steps prior to the one that says to “Stop the Appian engines”. 

  2. Stop Service Manager & Engines without stopping Zookeeper & Kafka on all servers by running: 
    <APPIAN_HOME>/services/bin/stop.sh -p <password> -no-kafka -cluster -s all

Move Kafka Data to Appropriate Servers 

  1. Note the host and port of the last Kafka broker listed in <APPIAN_HOME>/conf/appian-topology.xml.
    This is the server that should be removed. This should also be the broker that was most recently added. Kafka brokers are listed under the <kafka-cluster> element

  2. Remove partitions from the broker that will be removed by running the following on any one server: 
    <APPIAN_HOME>/services/kafka_<versionInfo>/bin/decreaseBrokerCount.sh --exclude-brokers [<host:port>]
    1. The script needs to be passed the hostname and Kafka port of the server that will be removed. This is determined in step 1

  3. Make sure that the broker in step 2 is no longer replicating any partitions by running the following using any Zookeeper host and port:
     
    <APPIAN_HOME>/services/kafka_<versionInfo>/bin/kafka-topics.sh --describe --zookeeper <Zookeeper host>:<Zookeeper port>

    Make sure that the broker-id of the broker that will be removed does NOT appear in the values for any column. The highest broker-id displayed should be your target Kafka cluster size - 1  

Stop Remaining Appian Services

  1. Stop Kafka on all servers
    <APPIAN_HOME>/services/stop.sh -p <password> -s kafka

  2. Once all Kafka brokers have stopped, stop Zookeeper on all servers by running: 
    <APPIAN_HOME>/services/stop.sh -p <password> -s zookeeper

Change Topology

  1. Edit appian-topology.xml on every server. The topology file must be the same on all servers
    Location: <APPIAN_HOME>conf/appian-topology.xml
    Remove the appropriate lines from the <kafka-cluster> and <zookeeper-cluster> elements. These should be the lines with the same host name as the server you will be deactivating. There should be only one Kafka, one Zookeeper and one instance of each engine. 

    Below is an example topology file 
    <?xml version="1.0" encoding="UTF-8"?>
    <topology port="5000">
    <server host="<MACHINE_A_IP>">
    <engine name="forums"/>
    <engine name="notify"/>
    <engine name="notify-email"/>
    <engine name="channels"/>
    <engine name="content"/>
    <engine name="collaboration-statistics"/>
    <engine name="personalization"/>
    <engine name="portal"/>
    <engine name="process-design"/>
    <engine name="process-analytics0"/>
    <engine name="process-analytics1"/>
    <engine name="process-analytics2"/>
    <engine name="process-execution0"/>
    <engine name="process-execution1"/>
    <engine name="process-execution2"/>
    </server>
    <search-cluster>
    <search-server host="<MACHINE_A_IP>" port="9301"/>
    </search-cluster>
    <kafkaCluster>
    <broker host="<MACHINE_A_IP>" port="9092"/>
    </kafkaCluster>
    <zookeeperCluster>
    <zookeeper host="<MACHINE_A_IP>" port="2181"/>
    </zookeeperCluster>
    </topology>

  2. Deactivate server
    This step is handled by the customer’s Appian System Administrator

Restart Appian

Make sure you are looking at the version of docs that matches the version of Appian you are running  
Starting the Application Suite on Linux

Affected Versions

This article applies to Appian 17.4 and later