1

Try to deploy multiple Usergrid containers on different machines, and make them point to a Cassandra cluster. But I cannot find documents about running multiple Usergrid nodes, and I only found instructions about Cassandra cluster.

Is this the right way to scale up my Usergrid services ? Or, what is the best practice to run multiple Usergrid nodes ?

zeck
  • 769
  • 1
  • 7
  • 13

2 Answers2

1

My understanding is this is the correct way to go about it. You just need to to deploy the ROOT.war file to a new Tomcat instance.

Docs for configuring the usergrid-deployment.properties file so that UG knows where Cass and ES instances are, then deploying to Tomcat are steps 4 and 5 here: https://usergrid.apache.org/docs/installation/deployment-guide.html#deploying-the-usergrid-stack

You can also use the AWS cloudformation scripts in the repo to have AWS handle this for you (https://github.com/apache/usergrid/tree/master/deployment/aws)

amuramoto
  • 2,838
  • 1
  • 11
  • 15
  • We used the AWS Cloud Formation script but I don't think its handling things well. We were running fine for a few days but once we started hammering it things went south quickly. I don't know enough about optimizing AWS to even begin to find the issue. The cloud formation script puts Tomcat, Cassandra, and Elastic Search on the same EC2 instance as well as the load balancer. Or at least that's what I got. It could be me but I don't think that's the best approach. Thoughts? – MoreScratch Aug 27 '18 at 20:59
0

There are no documented architecture about scalable usergrid deployment. You need to configure your own deployment based on your requirements. Some samples can be found on the internet, this presentation helped me to configure our usergrid installation: http://events.linuxfoundation.org/sites/events/files/slides/Intro-To-Usergrid%20-%20ApacheCon%20EU%202014.pdf (pages 47-48).

And here is my deployment strategy: All the components (tomcat, C*, es) are java applications, so putting them on to the same machine will be expensive on RAM. So, separate the layers, and scale them independently. For example, if your application chokes on incoming user connections, just scale up tomcat cluster (behind a LB probably). Spend time on configuring Cassandra, and don't stick to the default values - your data will be there and you don't want to lose it.

Eren Yilmaz
  • 1,082
  • 12
  • 21