Introduction
Jira Data Center is designed for organizations that need high availability, fault tolerance, scalability, and enterprise-grade performance. Unlike single-node Jira Server deployments, Jira Data Center operates in an active-active clustered architecture, where multiple Jira nodes run simultaneously behind a load balancer.
Recently, I performed a Proof of Concept (POC) for Jira Data Center clustering by deploying two Jira application nodes and successfully configuring them into a working cluster. This article explains:
- Jira Data Center clustering fundamentals
- Core architecture and components
- Benefits of clustering
- Step-by-step POC approach based on my implementation
- Key learnings and best practices
Key Components of a Jira Data Center Cluster
A standard Jira Data Center clustered setup consists of the following components:
Multiple Application Nodes
- Identical Jira installations running on separate servers
- Handle user requests and application logic
- In my POC, I configured two Jira nodes with identical versions and configurations
Shared Database
- A single external database used by all nodes
- Ensures consistent issue, project, and configuration data
- Supported databases include PostgreSQL, MySQL, and Oracle
Shared Home Directory
- Network File System (NFS) mounted on all nodes.
- Attachments
- Avatars
- Index snapshots
- Cluster-wide configuration files
Load Balancer
- Sits in front of Jira nodes and distributes traffic
- Performs health checks
- Must support sticky sessions (session affinity)
- Examples: HAProxy, AWS ELB/ALB, F5, NGINX (software LB)
Benefits of Jira Data Center Clustering
High Availability : If one node fails, traffic is automatically redirected to the remaining nodes
Performance at Scale : User load is distributed across nodes, improving response time
Disaster Recovery : Enables multi-data-center or geographically distributed deployments
Zero-Downtime Upgrades : Nodes can be upgraded one by one without impacting users
Jira Data Center Clustering: My POC Implementation (2-Node Setup)
This section highlights the actual steps I followed during my POC.
1. Preparation and Prerequisites
Before starting the setup, I ensured the following:
- Active Jira Data Center license
- Two Linux servers for Jira application nodes
- One shared database server
- One shared NFS location accessible by both nodes
- Proper network connectivity between all components
2. Jira Installation on Both Nodes
- Installed the same Jira Data Center version on both nodes
- Verified Java version compatibility
- Confirmed both nodes could independently start Jira
Each node had:
- Its own local home directory
- Access to the shared home directory
3. Cluster Configuration (cluster.properties)
For clustering, I configured the cluster.properties file on each node.
Key parameters included:
- jira.node.id (unique per node)
- jira.shared.home (same NFS path for both nodes)
- jira.cluster.name
This allowed Jira to recognize both nodes as part of the same cluster.
4. Shared Home Directory Setup
- Mounted the NFS location on both nodes
- Copied required files from the first node into the shared home
- Verified file permissions and ownership
Once configured, Jira automatically synchronized shared data across nodes.
5. Database Configuration
- Configured both nodes to point to the same external database
- Verified database connectivity
- Ensured database connection pooling was properly configured
6. Load Balancer Integration
For the final step of the POC:
- Configured the load balancer in front of both Jira nodes
- Enabled sticky sessions, which is mandatory for Jira Data Center
- Set up health check URLs to monitor node availability
After this step, users could access Jira via a single load balancer URL, while traffic was distributed across both nodes.
POC Validation and Testing
To validate the success of the clustering POC, I performed:
- Node shutdown testing to verify failover
- Session persistence checks
- Simultaneous user access from multiple browsers
- Log verification to confirm cluster heartbeat communication
All tests confirmed that:
- Nodes were active simultaneously
- Failover worked as expected
- No data inconsistency was observed
Key Learnings from the POC
- Sticky sessions are critical — without them, users face login and session issues
- Proper NFS performance and permissions are essential
- All nodes must be version-aligned and identically configured
- Monitoring cluster health is crucial in production environments
Conclusion
Jira Data Center clustering is a robust solution for enterprises that require continuous availability, scalability, and resilience. Through this 2-node POC implementation, I was able to validate the core clustering concepts and gain hands-on experience with real-world challenges such as shared storage, load balancing, and failover testing.