Hello Atlassian Community!
It is important to have a business continuity strategy for applications running in your Organization. Systematic plan roads to the application running with minimal downtime and your users happily using the application with no issues.
In this article, let's have a look at how backup, high availability, and disaster recovery can be managed for Jira Data Center.
The backup strategy is handled depending on the instance size.
Here's a quick overview of the documentation on the Jira Server/Data Center sizing guide
https://confluence.atlassian.com/jirakb/jira-server-sizing-guide-975033809.html
https://confluence.atlassian.com/enterprise/jira-data-center-size-profiles-955171062.html
Backup options goes like this,
1. If the instance is considerably small in size
You can enable automatic backup of your instance to take XML backup.
The documentation to enable automatic backup is here. Remember to backup the data directory.
Atlassian recommends the second backup method over the first one since it is not guaranteed to be consistent as the database may be updated during the backup process.
Native database backup tools offer a much more consistent and reliable means of storing (and restoring) data while Jira is active.
2. If the instance is medium, large, or enterprise in size
When we talk about High Availability for Jira, we are focusing on the availability of Jira by eliminating failure modes via redundancy.
Well, the business requirements in your organization decide whether to have a high availability solution for Jira.
The approach depends on the cloud platform you are on, the architecture you are building.
The basic thing is that you have active clustering when you setup Data Center, automatic failover is also available in Jira Data Center.
Follow this guide to know more about High Availability here.
Disaster Recovery in Jira
If you need to have business continuity, you need to have a better plan for disaster recovery.
Atlassian has its way in Jira, let's look at that briefly on how to achieve it and have everything ready in place if something were to go down in primary how to bring up the secondary instance running.
Let's understand this by example
Jira Data Center is installed with two nodes, Postgres DB, Shared NFS. Let's call this primary.
We are planning to have the secondary instance as part disaster recovery plan.
The main components that need to considered in the Disaster Recovery plan are:
The secondary instance needs to have the same version of Jira as the primary.
The database in the secondary instance should be replicated with the primary instance.
The Shared NFS directory should be synced with the secondary instance.
While we have the Jira Data Center installed in the secondary instance, have the jira-config.properties file in the home directory and set the following property.
disaster.recovery=true
Implementing database replication to the secondary instance is a crucial step.
While Cloud platforms have their native service to have the data replication to another database, if you setup database manually please checkout the documentation of the respective database on how to replicate dB to secondary instance.
Although it's recommended to have replication of NFS sharedhome directory to secondary, you can manage replication of files to secondary instance.
Set jira.secondary.home (replication folder) in jira-config.properties file and rest, Jira takes care of the replication.
Failover is not a long process from here.
We have to shutdown the primary and bring up the secondary by following the guide here.
You may want to return to the primary once all the things are in place.
Well, that's for the business continuity strategies in Jira. I hope you have got an idea of how you may want to proceed with your current instance for the explained strategies. Please share your thoughts in the comments.
Thanks,
Pramodh
Pramodh M
DevSecOps Consultant
DevTools
Bengaluru
661 accepted answers
2 comments