At Atlassian, you have a host of options for deploying our products in your company, one of them being as single server applications. Whether they are deployed on a physical server, in a virtual environment, or on AWS, these deployments consist of an application server running one of the Atlassian products like Jira, Bitbucket, or Confluence alongside a database.
This simplicity lets you get up and running fairly quickly. While the single server installation is great to get started with, we’ve heard that many of you experience challenges when trying to keep your systems ahead of your team’s growth. You can add resources to your current instance to help address performance concerns in the short-term, but at some point, you’ll have to create a strategy to handle this growth.
As your team’s use of Atlassian products grows, it is inevitable that you will experience an outage, degraded performance or downtime due to upgrades. In any of these cases, somebody somewhere on your team will feel the pain because they depend on the system to get their work done. Whether it’s end users who are trying to use the system or an administrator who is trying to bring the system back up – downtime is never ideal. Without a long-term plan, managing your infrastructure and administering your Atlassian products can become costly and time-consuming.
This is where the Data Center editions of Atlassian products come in. Data Center is a deployment option of Atlassian products built specifically for customers running in mission-critical environments. Data Center gives you the product functionality you’re already familiar with plus benefits like deployment flexibility, scalability, high availability, and improved authentication and control.
Here are the details on how Data Center can help your organization scale Atlassian’s products.
Our customers have many different requirements when it comes to deploying and managing our products. You can deploy Data Center editions of Atlassian products behind your firewall using a variety of technologies like VMWare or bare metal, or you can run it on IaaS like AWS, allowing you to reduce administrative costs of your infrastructure, but still maintain control over your data.
We made it easy for you to deploy Data Center on AWS by providing QuickStart guides and CloudFormation Templates that provide instant deployment and auto-scaling for our Data Center applications. For example, auto-scaling with AWS allows you to automatically add a fourth node in AWS when the first three nodes are getting close to threshold without intervention from an administrator. We are committed to supporting multiple deployment options because we want you to be able to choose the best option for your organization.
Today, in software development, IT, or nearly any technology or knowledge worker field, your team’s time is its single most precious resource. Because of this, any amount of downtime can be incredibly expensive. We built Data Center editions of our products to decrease downtime and make sure that your teams are not impacted by a single component failure.
While clustering in Data Center gives you failover in the case of a single node failure, what happens when there is a site-wide failure? With Data Center’s disaster recovery, you have the ability to failover to a standby node with a replicated database and file store if your primary location power or network fails. In either scenario, Data Center makes sure that things continue running without impacting your team’s ability to work.
Performance at Scale
The single server architecture limits how inbound traffic is handled by your instance. Any request coming in, whether it’s a normal interaction through the UI or through an external integration, is funneled to the same server and processed along with every other activity – including administrative work like indexing or upgrading.
Many people try to perform some of this admin work during off-peak hours to try to get some level of control. Plus, at a certain point in time, you will most likely reach the upper limits of the machine – physical or virtual – that you are using for your Atlassian instance, and you will need to find another option to help manage the load on your system.
With Data Center, you can increase throughput by adding more servers to your cluster to handle load. Rather than continuously trying to scale your single server further, you can add more and more nodes as your teams grow and then distribute load across multiple nodes to optimize performance. By distributing each type of activity to different nodes, you can separate and manage external integrations from normal internal usage activity, while also managing administrative tasks in parallel.
Authentication and Control
As our products become more mission-critical to your users, it’s important that you focus on standardizing and controlling how your end users access and use these systems. For access control, Data Center offers SAML 2.0 support, which allows you to use your existing identity provider for authentication. Not only does it simplify and help you ensure compliance to your company’s security policies, but your users don’t have to remember (or forget) multiple passwords.
What our customers are doing with Data Center
1. Optimizing performance with Jira Software Data Center
One of our customers had three primary Jira Software Server instances serving thousands of their developers. They suffered from degraded performance because many people were using the system at any given time (i.e. hundreds of concurrent users) and some of these users also abused the system by making expensive REST API calls.
To alleviate some of the load issues they were experiencing, they looked to Jira Software Data Center. They set up their cluster to segment ‘abusive’ traffic from normal UI traffic by dedicating one of the nodes in the cluster to handle just external REST API traffic. In addition to performance improvements, they also wanted some administrative flexibility. To do this they added another node to the cluster to run indexes so they wouldn’t impact their team’s work. They could take this node out of the load balancer and re-index their system. After completing the re-index, the other nodes in the cluster would receive a copy of that updated index, optimizing their performance even further.
2. Accelerating work among distributed teams with Bitbucket Data Center
Another customer who had a large geographically distributed development team suffered from high latency and their developers competed for limited bandwidth with every operation they performed. Their developers had to wait a long time – often hours – to clone a large repository from across the globe. They also couldn’t pull changes on one of the mirror servers when the main instance was down because authentication happened at the primary Bitbucket instance. They needed to find a way to better serve their teams located across the globe.
With Bitbucket Data Center, they set up what we call Smart Mirrors, which are geographically distributed servers that are strictly used for fetching code. These mirror servers operate as read-only copies of repositories in remote locations that are automatically updated by the primary Bitbucket instance. This helped reduce the delays their end users experienced when executing CI builds or cloning a repository. The customer also took advantage of additional functionality we provided this year, smarter mirroring. This cached authentication on the mirror servers, allowing their users to pull changes to their machines even when the main server is down, further improving their remote team’s ability to work.
We will continue to invest in these four primary areas – deployment flexibility, scalability, high availability and authentication and control – as we continue to serve our customers whose Atlassian products are critical to their business. It’s sometimes assumed that Data Center is only for the largest deployments, but Data Center is not just about scale. We believe Data Center is for any customer where Atlassian’s products are mission-critical to their organization.