Atlassian is an enterprise-software company that project managers, software developers, and content managers use to work more effectively in teams. Its primary application is an issue-tracking solution called JIRA. Atlassian has more than 1,800 employees serving more than 68,000 customers and millions of users.
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 centre, ” Riley continued.
To move into a more scalable, highly available environment, Atlassian created JIRA Data Centre, 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 AWS Cloud.
“We initially looked at several vendors, but AWS was the clear leader. We needed automatic scaling and reliability, and AWS offered us that,” Bressler says.
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.
After evaluating several options for JIRA shared storage on AWS, Atlassian chose to use Amazon Elastic File System (Amazon EFS) to support attachments and log-application files for support.atlassian.com. “Amazon EFS gives us an easy way to scale our customer-facing instances of JIRA, so our teams can more quickly jump on support cases,” says Bressler.
The company then created an AWS CloudFormation template for deploying JIRA Data Center on AWS. Atlassian also takes advantage of Amazon CloudWatch to monitor JIRA.
“We’re using CloudWatch to monitor RAM usage and bandwidth, so we can more easily optimise the application,” says Bressler.
As the company believes in using its own software, Atlassian also deploys JIRA Data Center for internal support tickets, which it runs on AWS.
“By moving to the AWS Cloud, our company has been able to focus more on what we do well: providing great services to our customers”
Prior to using Amazon EFS as a shared file system for JIRA Data Center, Atlassian tested the solution internally. During testing, the company discovered the technology was simple to set up and enabled consistent throughput and capacity that stayed within threshold.
“Once we went live, everything worked exactly as we expected it to. It was performant, resilient, and easy to set up, and it is easy to maintain.”
“A Shared File System should be easy to set up and scale to your needs as you grow, with minimal effort. Taking advantage of Amazon EFS, our customers can deploy JIRA Data Center clusters through CloudFormation templates with only a few clicks.”
Because it can more easily manage its JIRA instances in the cloud, Atlassian is putting more effort into enhancing applications.
“By moving to the AWS Cloud, our company has been able to focus more on what we do well: providing great services to our customers. Instead of having to spend time on managing the back-end application stack, we can really step up our game and better support our tens of thousands of global customers,” says Bressler.
By moving to the cloud, we can efficiently grow JIRA Data Center. “We can much more rapidly scale our application using Amazon EFS and Auto Scaling,” says Riley. “If we had an event that required us to add 10,000 customers, it would previously have taken weeks, if not months, to plan for it because of the complexity. Using AWS, we have everything in place to support that traffic immediately.”
Atlassian is better supporting its customers by utilizing the built-in disaster recovery and high availability of AWS. “We have better disaster-recovery capabilities and better uptime because our application data is replicated across multiple AWS Availability Zones. If our application instances go down, we’re stopping thousands of people from getting support. By moving to a highly available platform on AWS, we are much more confident that our solutions are available at all times,” says Riley.
The company will likely migrate more applications to AWS in the coming months. Riley says, “We trust in AWS to help us grow our company in a flexible and cost-effective way, and we will be expanding our relationship with AWS well into the future.”