Hi Imesh,

Given the AS restriction, and if I assume that "sharing" tends to be harder to 
setup than "not-sharing", I suggest we focus on "shared-nothing, 
Active-Standby" as the first use case to focus on for 1, 2, and 3. I don't have 
a strong feeling at present for BAM (4), and I guess we should just use 
whatever makes sense for LB (5).

Does that sound reasonable?

Thanks, Shaheed

From: Imesh Gunaratne [mailto:[email protected]]
Sent: 08 April 2014 00:21
To: [email protected]
Subject: Re: High Availability setup for Stratos

Hi Shaheed,
Thanks for bringing this up. According to my knowledge currently we do not have 
a guide for enabling High Availability for Stratos. I will start preparing one 
so that everyone could contribute.
If we consider the set of products we may use in Stratos:

1. Stratos Core (Stratos Manager, Autoscaler, Cloud Controller)
Stratos core products use Carbon registry for managing their state and registry 
could be persisted by a given RDBMS. Therefore we could enable HA for Stratos 
core products by enabling HA for the connected RDBMS and running multiple 
instances of each product in Master-Slave mode using Linux-HA [1].

As I know currently we cannot run Autoscaler in Master-Master mode since the 
auto-scaling decision making process is not designed to run in a distributed 
environment.
2. Message Broker (ActiveMQ)
ActiveMQ supports HA in three different ways [2]:
   a) Shared File System Master Slave
   b) JDBC Master Slave
   c) Replicated LevelDB Store
3. Complex Event Processor (CEP)
There are two methods for enabling HA in CEP [3]:
    a) Distributed Cache Mode Deployment
    b) Persistence Mode Deployment

4. Business Activity Monitor (BAM)
There are two methods for enabling HA in BAM [4]:
    a) Partially Distributed
    b) Fully Distributed
5. Stratos Load Balancer
Stratos load balancer use Synapse for implementing session affinity and 
currently Synapse does not support distributed session management. Therefore we 
could run Stratos load balancer in a distributed environment but without having 
session affinity support.

[1] http://www.linux-ha.org/doc/users-guide/users-guide.html
[2] http://activemq.apache.org/masterslave.html
[3] https://docs.wso2.org/display/CLUSTER420/Clustering+CEP
[4] 
https://docs.wso2.org/display/CLUSTER420/Clustering+Business+Activity+Monitor

Thanks
Imesh

On Mon, Apr 7, 2014 at 9:43 PM, Shaheedur Haque (shahhaqu) 
<[email protected]<mailto:[email protected]>> wrote:
Hi all,

Separate but related to the thread on "Separating Read-Only files from 
Read-Write?<http://mail-archives.apache.org/mod_mbox/incubator-stratos-dev/201404.mbox/%3C6899B95749E44F43BF2128D9A4FD000CF67476%40xmb-rcd-x09.cisco.com%3E>"
 is the question of how to configure High Availability (HA) for Stratos. My 
assumption is that something like the following steps are needed:

1.       Configure MySQL as a cluster of some kind, or active-active, or 
active-standby pair

2.       Configure Cassandra as a cluster of some kind, or active-active, or 
active-standby pair

3.       Configure Stratos (MB, CEP, AS, CC and maybe BAM) to use the above
 Is there a configuration guide as to how to do this?
 Thanks, Shaheed



--
Imesh Gunaratne

Technical Lead, WSO2
Committer & PPMC Member, Apache Stratos

Reply via email to