ATLASSIAN HAVE MENTIONED PLANS TO ADD SUPPORT FOR CONFLUENCE AND BITBUCKET IN A FUTURE RELEASE. IN THIS ARTICLE, WE’LL LOOK AT HOW THIS WILL HELP USERS, IN ADDITION TO THE BENEFITS OF CDN SUPPORT ALREADY IN PLAY.
Content Delivery Network (CDN) support is currently available in Data Center editions of Jira Software 8.3 and Jira Service Desk 4.3. If you aren’t familiar with a Content Delivery Network, it’s intended for distributed teams who work from a location that’s geographically distant from their server location who experience longer wait times when opening issues, fetching pages, or loading boards. The purpose of a CDN is to minimise this lag time as much as possible by spatially distributing static assets. Where data center is concerned, a CDN helps to improve poor performance experienced while using Data Center products distributed worldwide. Common CDNs include AWS CloudFront, Cloudflare and Akamai to name but a few.
Integrating with a CDN allows customers the opportunity to improve the experience of geographically distributed users, thus reducing peak loads on their primary application instances, and boosting performance all around. Whether you have as many as 100 or as few as three remote locations working from the same instance, drag can be a real problem.
How it works
This does not mean that a Content Delivery Network will make your application inherently faster, what it will do however is reduce the load on your cluster, and the possible latency experienced by users — ultimately resulting in faster page load times.
Atlassian’s internal dogfooding instances located in Poland proved that the response time for the View Issue action in Jira Data Center was 50% faster for people accessing from the US when the CDN was enabled.
Enabling CDN in Jira Data Center
By enabling the CDN, the first request for each static asset returns to the Jira instance and the CDN picks up the remaining static asset request. These are delivered from a nearby cache, rendering a faster instance for remote users all the while reducing Jira request load. After initial testing for Jira, Atlassian’s results showed a 50% increase in improvements of response time for viewing Jira issues.
To enable the CDN in Jira Data Center, you can make use of Atlassian’s template to spin up an AWS CloudFront distribution, or alternatively you can create an account with a chosen CDN vendor.
You’ll want to update your load balancer and firewall so that the CDN can reach your site.
And finally, when in your Jira Data Center application, provide the CDN URL, and enable CDN support.
How CDN will help users
The first thing to determine is whether or not it will actually help your users, and the way to look at that is by inspecting the network overhead experienced on your site.
To do this go to Content Delivery Network in the admin console of your Data Center application, and under the Performance tab, you’ll see the percentage of requests that had a transfer cost of more than one second. The higher the percentage, the more likely it is that your user requests are being affected by network conditions (latency and connection quality).
The network statistic is a useful indicator of the conditions your customers are experiencing.
In short, if the percentage is high, a CDN will be beneficial.
How is it measured?
Consider where your users are geographically located. Network diagnostic tools like traceroute, ping, and mtr, can be useful in determining the amount of latency experienced.
When end users access your website, static assets are cached on the edge server closest to them, and this will continue until expiration. It may take some time before the impact of the CDN can be measured, depending on when users are online and where they are accessing the site from.
The cache can not be preloaded, therefore assets are cached as they are served the first time.
What is cached?
Static assets served by a Data Center application or Marketplace app are all that’s cached because these are what will change when your Data Center application is updated.
When you enable CDN, the following gets cached:
What’s not cached?
- Dynamic content
- Attached files
- Pages or issues
- Personal information (including avatars)
- Assets which are part of a theme
Atlassian will handle cache invalidation when upgrading Data Center, meaning manual work is not necessary on the users part.
Planning your CDN implementation requires attention to infrastructure.
Consider the following:
HTTP/2 traffic should be allowed for by your load balancer, firewall or proxy. Using HTTP/2 will provide the best performance for end users. Atlassian advise checking with the documentation for your particular provider to find out how to do this.
Your CDN must be able to access and cache static assets. If it is not possible to access your instance publicly, you will need to make some changes to your firewall to allow requests from the CDN to pass through. Atlassian recommend using application firewalls instead of standard IP range filtering because CDN IP ranges can change without warning.
For private instances you can:
- Configure your firewall. This will allow requests from your CDN to pass through.
- Set up your own caching servers closer to your users. This will not require opening any traffic up to the internet.
Marketplace apps and third party customizations
Some marketplace apps or customizations may not be compatible with the CDN feature. A health check on the Content Delivery Network admin screen will let you know if any of your apps are not compatible.
See User-installed app health check fails in Data Center when configuring CDN to find out what to do if any of your apps are incompatible.
If you’ve developed your own plugin, see Content Delivery Network (CDN) for Jira Data Center, for APIs you can use to confirm your plugin is compatible.
Remember: Always consider testing on your staging environment before making any changes to the production site.
The future of CDN support in Data Center
Atlassian have publicly announced they will be introducing CDN in Bitbucket and Confluence, enabling integration with a Content Delivery Network (CDN) to accelerate the experience of remote users.
In addition to this, they are speeding up the experience of distributed teams, by enabling HTTP2 automatically for Server & Data Center. This looks to improve application performance by as much as 20% according to tests conducted internally.