One Server to Rule them all?
Asked by Michael Roff:

My company is looking at reconfiguring its setup of Atlassian tools and is contemplating putting all services on one server.

The tools we are looking to put on this one server are:

* JIRA
* Crucible / Fisheye
* Bamboo
* Subversion

Confluence would run on a seperate server, but within the same server rack.

Remote Agents for Bamboo would run on remote servers.

Anyone that has been succesful with this setup, I would appreciate if you would outline the size of your developments (subversion commits / JIRA issues) and the specifications of the server you are running this on.

If anyone would recommend NOT to go forward with this configuration, I would be interested to hear from you and your reasoning why this is a bad idea.

Thanks.


Answers:
author: JamieA
body: I'm going to disagree with the other replies. My opinion is that that configuration is fine but it totally depends on the load and the capabilities of the machine. The biggest hog is Fisheye, depending on the size and "shape" of your repositories you may need a lot of memory, and as above, during indexing it will use as much CPU as it can get.

The thing is though you are not locked in to this config - front all the apps with apache, then if you need to split one or more apps to different machines it can be done through apache config, and the urls won't change.


author: JohnA
body: One server to rule them all? That's easy ;) -----\> <http://www.atlassian.com/hosted/studio/>


author: Michael Roff
body: So a quick update ........

We are now running two servers.

One for Confluence and one for everything else pretty much.

Everything else includes JIRA, SVN, Bamboo and Crucible.

So far so good. The only complaint is Crucible runs like a three legged dog - galantly but not as quick as you would like. I don't think this is a server limitation though - I think it's just Crucible.

If anyone thinks otherwise, I am happy to take some advice on squeezing the most out of Crucible speed wise.


author: Andrey Larionov
body: The disk IO will be bottleneck in your case. All the services performs many reads and writes from/to file system. Even if you have a lot of memory (24G+) FS caches will be flushed frequently. So be prepared to unexpected hangs from 1-2 up to 30 seconds (in case of clean checkout from SVN, FishEye new repository indexing, and JIRA bulk operations in parallel).


author: Martin Cooper
body: Just to echo the wise words above :)

For a small business one server may be ideal, and you are not locking yourself into expanding in the future.

But depending on the size of your instances and expected usage I suspect that you will quickly outgrow that configuration.

So whilst may appear worthwhile now, you may just be storing work up for yourself in the future.

I would recommend svn fisheye/crucible get their own box, as these will be the major resource grabbers (they really need co-locating so can use the fast file access between Fisheye and SVN)

PS: You didn't mention what DB you would use or where that would live, and is another key aspects of your deployment model that needs taking into account.


author: Jobin Kuruvilla [Adaptavist]
body: My two cents! As much as it easy to support when it is one server, the risk is huge because if the server crashes all the applications are down together.

I am sure you will have a backup server ready if you go with this :) Resources, space and memory, will be other thing that should be considered.


author: Bob Swift (personal)
body: Hard to make comparisons, but here is what we have done for the past few years supporting a few hundred users.

* 2 servers (dual quad core) - primarily to have an emergency backup and make it easier for testing upgrades
* 2 comm cards for each server
* primary (newest) runs postgres, crowd, confluence, jira, bamboo#2 running various integrations for jira/confluence
* secondary (older) runs postgres, bamboo#1, fisheye/crucible, nexus, various test instances
* key was getting enough memory (12GB) so we could allocate enough for each service and have room for backup processing
* has worked well, dependable, good performance, relatively easy to manage (2 system images)
* source control is Perforce, but it is a separate dedicated server


author: jhinch _Atlassian_
body: I can really only speak for FishEye/Crucible but depending on the size of your instance, specifically how many repositories and how large the repositories are and what the specs of your server is, you may want to put FishEye/Crucible onto a separate server. It use a large amount of resources during slurp time. I would contact [support](http://www.atlassian.com/support) and they would be able to analyse your requirements.


Tags: configuration

server