Hi, I am trying to design High Availability for Appian platform. Currently I hav

Hi, I am trying to design High Availability for Appian platform. Currently I have Appian and Jboss installed in the same VM. I will be installing additional Jboss and Appian in another VM.
In web server I will have my load balancer configured to take care of load balancing the request. And in Appian side I will update topology xml with 16 engines on VM1 and same set of engines on VM2 and complete configurations related data source xml’s and custom properties and etc.
My questions are -
1. Do I need to update both my primary and secondary Appian deployment scanner in both VM1 Jboss and VM2 Jboss standalone.xml file?
2. How data get synchronized between Appian instances on VM1 and VM2?
3. What happens if Appian engines are down on VM1 but Appian is up on VM2, how data get synchronized between VM1 and VM2 Appian when VM1 Appian member join back?
4. What are the risks I will have when I implement Clustering/ High Availability of Jboss an...

OriginalPostID-167764

OriginalPostID-167764

  Discussion posts and replies are publicly visible

Parents
  • I don't know much since I'm not an admin for my team. We spread our single VM instances in dev/test/qa/prod to run on 2 machines each also a year or so ago. We now have 16 engines running on each of the 2 machines with 1 machine a primary and the other the secondary. It seems to work fine and we use a single server alias for the users to connect to (versus the actual computer name) which helps with https certificates, etc. When we made the move we copied 1-2 of the 3 large .kdb files for the execution engines to the new box so that it could better spread the load and large (40+gb) memory usage of our server over 2 machines. It took a while for new incoming processes to balance out over the 6 engines (3 per box) with older processes completing and eventually auto archiving/deleting.

    Load & performance wise this has been an improvement for us since we now have 2x the analytics engines, etc. However, I don't think it has really helped from an uptime/availability perspective. Generally speaking both machines have to be fully operational at all times for Appian to be responsive. Users are unable to connect to machine 1 for half of a transaction and 2 for the other half, as far as I know our load balancing system with the alias creates sticky sessions. However, per the docs, when a process model kicks off a subprocess the subprocess runs on the same engine (versus a random engine if a JMS send/receive message node starts a new process). By moving to 2 machines and 6 execution engines there is less delay when processes spawn subprocesses because in theory only half of the business users are on each server and so the potential queue length on those engines is shorter. From a users perspective they connect to the alias in their browser and never know (nor do I) which server or engines they are on.

    RAM usage is lower on both servers (which are Win 2008 R2 guests in a VM) which makes our data center people happier. 2 servers with additional patching requirements and configuration issues has gotten a bit more complicated as well as our disaster recovery testing, log file analysis, etc. I don't know how the errors are tracked between the log files, I assume that all errors are on both servers since I only look at them on the primary when necessary. We run 1 MS SQL 2008 database and both servers connect to it. I can't comment on how adding new datasources is done (i.e does an admin have to add it to a config file on each machine).

    So far as a developer with minimal need to be an admin and only semi-annual DR drills the dual server setups haven't been a problem. I import my application exports into the test/qa/prod servers only 1 time and Appian is smart enough to apply them to both systems.
Reply
  • I don't know much since I'm not an admin for my team. We spread our single VM instances in dev/test/qa/prod to run on 2 machines each also a year or so ago. We now have 16 engines running on each of the 2 machines with 1 machine a primary and the other the secondary. It seems to work fine and we use a single server alias for the users to connect to (versus the actual computer name) which helps with https certificates, etc. When we made the move we copied 1-2 of the 3 large .kdb files for the execution engines to the new box so that it could better spread the load and large (40+gb) memory usage of our server over 2 machines. It took a while for new incoming processes to balance out over the 6 engines (3 per box) with older processes completing and eventually auto archiving/deleting.

    Load & performance wise this has been an improvement for us since we now have 2x the analytics engines, etc. However, I don't think it has really helped from an uptime/availability perspective. Generally speaking both machines have to be fully operational at all times for Appian to be responsive. Users are unable to connect to machine 1 for half of a transaction and 2 for the other half, as far as I know our load balancing system with the alias creates sticky sessions. However, per the docs, when a process model kicks off a subprocess the subprocess runs on the same engine (versus a random engine if a JMS send/receive message node starts a new process). By moving to 2 machines and 6 execution engines there is less delay when processes spawn subprocesses because in theory only half of the business users are on each server and so the potential queue length on those engines is shorter. From a users perspective they connect to the alias in their browser and never know (nor do I) which server or engines they are on.

    RAM usage is lower on both servers (which are Win 2008 R2 guests in a VM) which makes our data center people happier. 2 servers with additional patching requirements and configuration issues has gotten a bit more complicated as well as our disaster recovery testing, log file analysis, etc. I don't know how the errors are tracked between the log files, I assume that all errors are on both servers since I only look at them on the primary when necessary. We run 1 MS SQL 2008 database and both servers connect to it. I can't comment on how adding new datasources is done (i.e does an admin have to add it to a config file on each machine).

    So far as a developer with minimal need to be an admin and only semi-annual DR drills the dual server setups haven't been a problem. I import my application exports into the test/qa/prod servers only 1 time and Appian is smart enough to apply them to both systems.
Children
No Data