At Atlassian, growth is on a fast track. The company adds more customers every day and consequently needed an easy way to scale JIRA, which is growing by 15,000 support tickets every month. The instance supporting this site was previously hosted in a data center, which created challenges for scaling. “The scale at which we were growing made it difficult to quickly add nodes to the application,” says Brad Bressler, technical account manager for Atlassian. “This is our customer-facing instance, which gathers all the support tickets for our products globally. It’s one of the largest JIRA instances in the world, and growing and maintaining it on premises was getting harder to do.” For example, the support.atlassian.com instance was hosted on a single on-premises server, which the company needed to frequently take down for maintenance.
The company also needed to ensure high availability for JIRA. “This is a mission-critical application, and the number of customers potentially impacted by downtime is huge,” says Neal Riley, principal solutions engineer for Atlassian. “As we grew, we became more concerned about the resiliency and disaster-recovery capabilities of the data center.”
To move into a more scalable, highly available environment, Atlassian created JIRA Data Center, a new enterprise version of the application. However, JIRA Data Center required shared storage. “We needed a shared file system so the individual application nodes could have a shared source of truth for profile information, plug-ins, and attachments,” says Riley.
Atlassian also needed to respond to customers wanting to run JIRA on the Amazon Web Services (AWS) Cloud. “We initially looked at several vendors, but AWS was the clear leader,” Bressler says. “We needed automatic scaling and reliability, and AWS offered us that.” The company migrated JIRA Data Center to the AWS Cloud, running all application nodes on Amazon Elastic Compute Cloud (Amazon EC2) instances. Atlassian takes advantage of Auto Scaling groups to enable automatic scaling of both applications, and uses Elastic Load Balancing to redirect application traffic to Amazon EC2 instances for consistent performance.