Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WSO2 API Manager Clustering configuration

Tags:

wso2

I'm trying to install and configure a highly availability setup for the WSO2 API Manager. I've been reading through this document: http://docs.wso2.org/wiki/display/Cluster/Clustering+API+Manager and in there it explains to break up the 4 components of the application into separate folders and that these 4 components can run on a single server. I'm not sure why this is needed. All I really want to do is take 2 servers, install the full application on both of them (without breaking the application up into 4 different pieces) and cluster them together between two servers with an Elastic Load Balancer in front of them. What is the purpose of splitting up the multiple components on the same server if they all run out of a single installation? I'm looking for the simplest way to provide fail over capability to this application if one server goes down. Any insight into their methodology would be greatly appreciated.

Thanks.

like image 309
user2543731 Avatar asked Aug 15 '13 23:08

user2543731


2 Answers

The article you've linked describes on distributing different components of API Manager. If you look at the very end of that article there's a link to clustering configuration doc. In a production deployment usually it is encouraged that the 4 components are run on different nodes rather than having everything in a node and having multiple such nodes. That's why it goes on explaining breaking it down to separate components. The official AM doc below has a page on different deployment patterns.

You can go through the following articles to get a better understanding on clustering API Manager.

http://docs.wso2.org/wiki/display/AM140/Clustered+Deployment

http://sanjeewamalalgoda.blogspot.com/2012/09/how-do-clustering-and-enable-replicate.html

like image 141
Nufail Avatar answered Nov 14 '22 08:11

Nufail


My 2cts:

The documentation mentioned in the remarks, explains how WSO2 sees the world of clustering. Spread the different functionality over different JVM's. This sounds logical from architectural point of view. A dis-advantages is that the diffent applications need to me administrated as well by operations. This makes the technical architecture rather complex.

In our situation, we defined 2 different servers with extra CPU and memory, on these servers we have installed the full WSO2 API Manager and defined the cluster configuration. Everything provisioned via Puppet.

Just a straightforward install, all data-source pointing to one schema in an Oracle database.

And...it is working; Our Developers happy, Operations happy, Architect department happy

like image 45
Marc Avatar answered Nov 14 '22 08:11

Marc