Installing JIRA is simple and straightforward. However, it is important for you to understand the components that make up the overall architecture of JIRA and the installation options available. This will help you make an informed decision and be better prepared for future maintenance and troubleshooting.
Atlassian provides a comprehensive overview of the JIRA architecture here. However, for day-to-day administration and usage of JIRA, we do not need to go into details; the information provided can be overwhelming at first glance. For this reason, we have summarized a high level overview that highlights the most important components in the architecture.
JIRA is a web application, so there is no need for users to install anything on their machine. All they need is a web browser that is compatible with JIRA. Since version 4.1, JIRA has undergone some major changes to its user interface. New JIRA interface is now more interactive and dynamic. However, this means a newer version of web browsers will be required to take full advantage of all the functions provided with the new UI. Internet Explorer 6, for example, is no longer fully compatible.
The following table summarizes the browser requirements for JIRA.
The application services layer contains all the functions and services provided by JIRA. These services include various business functions such as workflow and notification. Other services, such as REST/Web Service, provide integration points to other applications, and OSGi service provides the base plugin framework to extend JIRA’s functionalities.
The data storage layer stores persistent data in several places within JIRA. Most business data such as issues and projects are stored in a relational database. Contents such as uploaded attachments and search indexes are stored on the file system. The underlying relational database used is transparent to the users and you can migrate from one database to another with ease.
JIRA installation directory
This is the directory where you install JIRA. It contains all the executable files and configuration files of the application. JIRA does not modify contents of files in this directory during runtime, nor does it store any data inside; the directory is used primarily for execution. We will be referring to this directory as JIRA_INSTALL.
JIRA home directory
This directory contains key data files that are specific to each JIRA instance. There is a one–to-one relationship between JIRA and this directory. This means each JIRA instance must and can have only one JIRA Home, and each JIRA Home can serve only one JIRA instance. In the old days, this directory was sometimes called the data directory. It has now been standardized as the JIRA Home. It is for this reason that we will be referring to this directory as JIRA_HOME.
It is recommended that JIRA Home is be created separately from the JIRA installation. This separation of data and application makes tasks such as maintenance and future upgrades an easier process.
Within JIRA Home, there are several subdirectories that contain vital data.
When JIRA is running, this directory is locked, when JIRA shuts down, it will be unlocked. This locking mechanism prevents multiple JIRA instances from reading/writing to the same JIRA Home directory and causing data corruption.
JIRA is a Java-based web application developed using many open standards and libraries. Hence it is able to run on many operating systems, relational databases, and application servers. We will take a closer look at each of the components and options you have, and help you to make an informed decision.
Standalone and WAR-EAR distributions
First of all, we need to decide on the distribution. JIRA comes in two distributions:
- Standalone bundled with Apache Tomcat
Fundamentally, there are no differences between the two distributions. The standalone distribution comes with Apache Tomcat, which means you do not have to spend time on deployment efforts that are usually required by Java web applications. The standalone distribution also comes with an embedded in-memory database that can be used for evaluation purposes.
If you would like to deploy JIRA onto an existing application server, such as IBM WebSphere, the WAR-EAR distribution is for you. Due to the differences that exist between different application servers, when you download the WAREAR distribution, you are required to build the final deployment artifact with the provided build script file for your application server. Once the artifact is built, you can deploy JIRA just like any other Java web application.
JIRA supports most of the major operating systems, so the choice of which operating system to run JIRA on becomes a matter of expertise, comfort, and in most cases, existing organization IT infrastructure and requirements.
The operating systems supported by Atlassian are Windows, Linux, and MacOS. With Windows, Atlassian provides a wizard-driven installation package that simplifies the installation process (only available for standalone distribution). Other than that, there are minimal differences when it comes to installing, configuring, and maintaining JIRA on the different operating systems.
If you do not have any preferences and would like to keep the initial cost down, Linux is a good choice.
JIRA stores all its data in a relational database. While you can run JIRA with an inmemory database such as HSQLDB, it is prone to data corruption. For this reason, it is important that you use an enterprise database for production systems.
Most relational databases available in the market today are supported by JIRA, and there are no differences when you install and configure JIRA. Just like operating systems, your choice of database will come down to your IT staff’s expertise, experience, and established corporate standards. If you are running Windows as your operating system, you probably want to go with Microsoft SQL Server. On the other hand, if you are running Linux, then you should consider Oracle (if you already have a license), MySQL, or PostgreSQL.
The following is a table summarizing the list of databases that are currently supported by JIRA. It is worth mentioning that both MySQL and PostgreSQL are open source products, so they are excellent options if you are looking to minimize your initial investments.
As we saw earlier, JIRA requires a JavaEE compatible application server. With the WAR-EAR distribution, you can deploy JIRA onto any supported application server. With the standalone distribution, Apache Tomcat comes bundled and you do not need to do anything extra for deployment.
All the application servers support both Windows and Linux, so unlike databases, you are not affected by which operating system you are running. Apache Tomcat is an open source product and comes bundled with JIRA in standalone. If you do have any preferences, Tomcat will be your best option as it is the least demanding.
The following is a table summarizing the list of supported application servers. Please note that JBoss is no longer supported.