Jira On a Budget
Warning: This post is outdated. It is here for reference purposes only.
I've talked about using bug trackers before, but this time I'm going to discuss how I run Atlassian's Jira on a budget. What do I consider Jira "On a Budget?" $10 one time cost with $5/mo to support! In my previous post I was specifically referencing using Mantis BT, and some folks might be wondering why I'm now talking about Jira. The answer is: They're both great for different reasons and purposes.
The biggest advantages Mantis has over Jira:
- Mantis is Open Source and free!
- Mantis will run on almost any budget web server with PHP and MySQL
- Free for as many users as you want
The biggest advantages of Jira over Mantis:
- Jira integrates with source control (Jira and Bitbucket)
- Sharp, responsive UI
- Keyboard shortcuts
- Reporting abilities
Disclaimer
The upcoming description of how I set up my Jira instance is not ideal. I am publishing this for informational purposes only. This post assumes prior knowledge related to administering servers.
Atlassian currently offers an OnDemand 10 user license for $10/mo. That is probably the most affordable and reliable way to introduce yourself to Jira. They also offer FREE trials, so there's no excuse not to give it a shot!
My Requirements
To get started, let's look at how I plan on using Jira. There's only 1 user (me) at this time but I want to be able to expand that to include a handful of people. My other requirements are unrelated to this post so to keep it simple: Jira meets all of my current needs and can meet most of my anticipated needs for the foreseeable future.
The $10 Jira license offers me up to 10 users and that should be more than enough for quite a while. If I get to the point where I need to expand my users I should be able to justify the increased expense to the upgraded version.
Jira Requirements
There are two places I've found information about the minimum requirements to host Jira on your own hardware. Both the Jira Sizing Guide on Google Docs and the Jira Requirements guide agree that a "multi-core CPU" is the minimum but they have different suggestions on RAM. The sizing guide states a minimum of 8GB ram for "Small-Scale" setups, but keep in mind they're stating 100 users with 25 concurrent users in that use case scenario. The Jira requirements guide states 2GB ram here:
For a small number of projects (10-20) with 1,000 to 5,000 issues in total and about 100-200 users, a recent server (multicore CPU) with 2 GB of available RAM and a reasonably fast hard drive (7200rpm or faster) should cater for your needs.
This makes me wonder if they just don't expect that really small teams of 1-4 users would even consider their product? Or possibly because it's such a small percentage of the total market that it isn't worth specifying/testing? But, anywho, let's see what I ended up making work.
My Jira Instance
I purchased my $10 downloadable version of Jira in mid-January 2014 and have been using it regularly since. In two months I have created 345 issues and resolved 258 of them across six (6) projects. I have created 6 custom dashboards for general reporting/informational needs, and use it daily. I technically have 2 users even though one of them was only created so I could properly test and verify my permissions were setup correctly for expanding access to new users in the future. Now that you know a little bit about my usage of Jira, let's see what I have it running on.
I use a $5/mo "droplet" from Digital Ocean which gives me 1 processor, 512 MB ram and a 20GB SSD drive. As you can see, I'm short 1 core in my processor and 1.5GB RAM according to the lowest published suggestion. My droplet is running Debian and to help overcome the shortfall in RAM I have given it a 1 GB swap file to use. My thought is that at least the server has SSDs, so that swap file shouldn't be too much of a bottleneck.
dd if=/dev/zero of=/swapfile1 bs=1024 count=1024000
mkswap /swapfile1
chown root:root /swapfile1
chmod 0600 /swapfile1
swapon /swapfile1
The screenshot below shows the output from the command: free -m
Update: The screenshot now shows the 2GB swap I'm using, you'll see I'm consuming a full 1 GB of the swap so I like to have some buffer...
You can see that I have 6 MB of the server's ram free, and 151 MB of the swap file free. The Jira process states it's using 315 MB of the available 512 MB native ram.
So... How Well Does it Work?
Pretty well. It isn't perfect, it isn't ideal, it isn't lightning fast, but it works. I've noticed that my first login of the morning typically takes a while but after it has loaded for me once it's fairly responsive the rest of the day. My VPS has crashed on me twice because of memory issues, but the first crash occurred before I added the swap file and the second crash was human error. (I started a second, very intensive process on the same server.... oops!)
The single core processor would probably cause issues on any system with more than 3 - 5 concurrent users, depending on their usage patterns. Loading a dashboard in Jira causes the processor usage to spike up to 30-40% usage, while querying for issues (aka searching) causes 10-20% usage. The only thing that is almost unbearable with my current low-power Jira instance is creating dashboards. Luckily, I've created all the ones I want at this time, so I don't have to worry about that again for at least a little while!
In Summary
I currently have no desire to upgrade my Jira instance to a more powerful server at this time. I have almost zero negative side-effects from my configuration/usage and I'm currently running it on a $60/yr budget. One of the advantages with my Digital Ocean droplet is that if I decide I need to upgrade and it must happen soon, I should be able to simply shut down my VPS, resize it to a more powerful "droplet", and spin it back up. (Of course I would take a full backup first!) Once the server boots up with more power available, that should be all that's necessary for the upgrade!
What I'm more likely to do instead is purchase a Confluence license for $10 and use the extra $5/mo to spin up a new VPS so I can run both Jira AND Confluence for a total of $10/month!
Update: Check out this post to see how Jira is running on this setup after 8 months and with 4 users!