How to Set up a Jira Azure DevOps Integration: The Comprehensive 2020 Guide

ManooshUncategorizedLeave a Comment

Jira Azure DevOps Integration

Many companies seek the right software integration solution to sync data in a flexible manner in order to seamlessly collaborate with one another. Let’s say your team is working in Jira while your customer or a partner is working in Azure DevOps. The need for a Jira Azure DevOps integration becomes obvious when both sides need to work in their own environment. Such an integration helps teams to manage their data according to their roles and needs.

In this guide, we’ll discuss the need to integrate Jira and Azure DevOps and how to share information between the two. We’ll show you how this integration is set up to keep teams and projects in sync. Once you’ve set it up, it will do the heavy lifting for you, leaving your teams free to focus on their work.

Note: In this tutorial, we will be using a software integration tool called Exalate to set up the integration. You will learn more about this throughout this guide.

Here is an overview of what we’re going to cover:

Why Integrate Jira and Azure DevOps?

What is Jira?

Jira is an issue tracking and project management platform. It is popular with developers and a good fit for teams using an agile methodology. You can use it to assign tasks and manage bugs.

It comes in two main versions. We’re looking at the cloud-hosted version here, but you can also self-host if you prefer. If you’re running an open-source project, Jira is free, making it a particularly good choice.

As well as being highly customizable, Jira has a range of extensions available on the Atlassian Marketplace. These let you extend its functionality. We’ll be taking advantage of that capability to set up our integration with Azure DevOps.

What is Azure DevOps?

Azure DevOps is a system that lets you keep track of your code and manage projects. It handles code versioning and has features for testing, build automation, and release management.

Like Jira, it is popular with developers and integrates well with Visual Studio, Microsoft’s popular development environment, as well as Eclipse.

It also has something in common with Jira, and that’s its two versions. You can use it on the cloud, or host it on your own server. It has a marketplace full of extensions, letting you expand what it can do.

Why Integrate Azure DevOps and Jira?

Both platforms have different strengths, useful for teams in various roles. A company might have a backend team working in Azure DevOps, and a frontend team using Jira, for example. Alternatively, you may be using one system for developers and one for customer support.

The biggest advantage of such an integration is that the teams have the freedom to set up their own platforms however they want. They will be working in their own environment and won’t need to worry about their security or autonomy to be lost in the process.

However, there are some problems with this approach as well. If you don’t keep an eye on things, teams can become siloed. The information they store can be duplicated or inaccurate. Fortunately, there are tools that can help with this cross-team collaboration.

How to Choose the Right Technology for Setting up your Azure DevOps Jira Integration

Working across different platforms can bring some challenges with itself. If you can meet those challenges, you’ll be able to work more efficiently and consequently, you’ll be more productive.

There are three things you need to think about when choosing a tool. These are as follows.

Reliability

Once you’ve set the integration up, you want it to work in the background without any fuss. The solution should also be able to deal with downtime to one, or both platforms and be able to get everything back in sync once they are both back online.

A reliable tool lets your teams get on with what they do and doesn’t need anyone to spend time managing it.

Flexibility

Your teams will have different roles in your organization. A compatible system has to bridge the gap between them and share only the data that either side needs. The transferred data has to be filtered so that everybody shares what they need to, and sees what matters to them.

Your workflows will likely change and evolve. Your integration solution needs to be able to handle that. As well as being able to adjust the data used by your existing platforms, it should allow you to work with other platforms and connect them together just as easily.

Autonomy

The solution should allow the teams to work independently. As well as work according to defined workflows, they should be able to change those workflows without having to coordinate with other teams.

An integration solution should be able to manage this kind of change and let teams make adjustments without being dependent on the other end. If teams want to use additional information or change the data structure, this should be possible without the whole system needing to be changed.

Because of the above requirements, we have chosen a solution for this guide which is called Exalate.

Now that we’ve selected a tool, let’s look at how it can be used. We’ll show you how to set it up with Jira and AzureDevOps and to get the platforms to share information automatically.

How to Set up a Jira Azure DevOps Integration (a Step by Step Process)

To set up our integration, there are three main steps to follow. First, we install Exalate on Jira, then we do the same for Azure DevOps. And finally, we set up a connection between the two. We’ll also look at how to control what information is shared, and what triggers data exchange.

Step 1: Install Exalate on Jira

We’ll start by setting up Exalate in Jira. For more information, check this link. If you’re running Jira on your own server instead of the cloud, click here instead.

First, we need to find and install Exalate. To do that, click the Jira administration settings button and choose add-ons from the drop-down menu. On the left-hand menu, select “Find New Apps”.

Type “Exalate” in the search box and press enter. You’ll see multiple apps listed. Select the “Exalate Jira Issue Sync & more” option.

jira azure devops issue sync with exalate

Click on the “Free Trial” button. This will take you to MyAtlassian, so click the button on the popup to confirm this. Log in here, if you haven’t already, then agree to the terms and conditions and click “Generate License”.

azure devops jira integration free trial

Next, your license will be generated. You’ll see a pop-up that lets you apply the license to your Jira instance. Confirm the details are correct and click “Apply License” to continue.

exalate integration apply license

You’ll then be redirected back to your Jira page. A pop-up will appear confirming Exalate is licensed.

exalate license for jira azure devops

Click “Get started” to complete the installation. We’re now ready to go on to Jira, but before we can connect our platforms, we need to set up Azure DevOps, too.

Step 2: Install Exalate on Azure DevOps

As with Jira, we need to install Exalate on Azure DevOps before connecting the platforms.

Read more about setting it up on Azure DevOps Exalate Documentation.

Firstly, we’d like to clarify that there are two places you need to work in to complete this step. Your own Azure DevOps instance, which will have its own URL, and the Exalate instance we will request during this step. Make sure you are in the right place and try not to get mixed up.

You need to request an Exalate instance setup. Visit this page. Click the Azure DevOps option, enter your details and wait until you get an email response.

exalate instance setup for integration

You’ll get an email with a link to your newly created node. There will also be an evaluation key. First, we need to look in our own DevOps account though. Now we can set the newly created Exalate installation up with our Azure DevOps instance. Read more about that here.

Before checking out the app link, go to your DevOps instance and generate a personal access token. You can find out more here. The first step is to open the settings menu and click ‘Profile’. Now look at the left-hand menu, and click ‘Personal Access Tokens’, under the ‘Security’ heading.

azure devops access tokens

From here, click the button that says ‘New Token’. There will be two buttons if you haven’t done this before, a blue and a white one. You can click either one.

azure devops new personal access token

Give your new token a name, choose the organization it is associated with, and give it expiry date. The installation will stop working when the token does, so you should refresh it if you pick a short lifespan.

azure devops integration access token expiry

There are several scopes you can set. Make sure you grant access to read, write, and manage work items. That’s all you need to do here, so click ‘Create’ to continue.

azure devops personal access token for exalate

Now your token is generated. It is a text string, so copy it and store it somewhere. Be careful here. If you don’t copy it, it will be lost and you’ll need to repeat this step.

Check your in-tray for the message from Exalate that was requested earlier. Navigate to the new app node using the link in the mail. Firstly, you need to accept the license.

exalate for azure devops license

Next enter the details for your Azure DevOps instance. These include the instance URL, your organization name, and the Personal Access Token generated earlier. Try using the default URL, dev.azure.com if your own setting doesn’t work.

azure devops integration settting

Next, you’ll need to confirm your login, so enter the personal access token again.

exalate for azure devops integration login

Once you’ve entered your token, click the “Login” button and you’ll be redirected to the settings page.

exalate general settings for integrating jira azure devops

Step 3: Connect Azure DevOps and Jira

Now that we’ve installed Exalate on both platforms, we need to create a connection. We do that by generating an invitation code on one platform and passing it on to the other.

Look at the settings page on Azure DevOps in the above screenshot. You’ll see there’s a “connections” item in the left-hand menu. Click that now.

connect jira azuredevops with exalate

Next click the green “initiate connection” button in the top right.

jira azuredevops integration type

Then we choose our connection type. For now, leave it as default: “another instance which is accessible”. Click the green “next” button.

exalate for jira and azure devops connection details

Next, enter the URL of the Jira instance used in step one. When you’re done, click “Next” again.sync rules for azure devops jira integration

On the next screen, you can pick whether to sync basic project information, or whether to use a synchronization template. For now, leave the default “single project”, and click “next” again.exalate sync for jira and azure devops

On the next screen, pick the project you want to synchronize from the drop-down list, then click “Next” again.

jira azure devops connection name

Finally, give the new connection a name and, optionally, add a description. Doing this will help you identify it later. Leave the “active” button ticked. Then click the green “Initiate Connection” button to create the connection.

exalate invitation for jira azure devops integration

Now, Exalate has generated an invitation code. Copy this and save it somewhere. We’re done with Azure DevOps for now, but we need to enter our code into Jira as well. So let’s head back there.

exalate for jira connection

Look in the “Add-ons” section in Jira, then click “Connections” from the Exalate section in the left-hand menu. Click the “Accept Invitation” button.

exalate invitation code for jira integartion

On the next screen, you’ll see a space where you need to enter your invite code. Copy the one generated earlier, and paste it in here. Then click “next”.

exalate sync rules for jira integration

As when creating the connection in Azure DevOps, you can choose a sync rules template. For now, just click “next”.

jira to azure devops connection

On the next screen, choose the project to work with from the drop-down menu. Then click “confirm” to create the connection on the Jira side. After a brief wait, we should now see our connection listed as in the image below:

jira azure devops connection

Step 4: Configure your Connection to Determine What Information Gets Shared

Let’s configure the connection now to make sure it shares what we want. Look in the action column on the right. Click the three dots next to your connection, and click “edit”.

edit connection azure devops jira

Click the “Sync Rules” tab on the next screen. This screen will show you what data is shared between the platforms.

azure devops jira sync rules

The sync rules show how the information stored in one system is matched to that on another. These will usually match correctly, but it is worth checking to ensure that is the case. If you have any custom fields or unusually named items, it’s especially important to check this.

You can also customize it however you like. Maybe you want some information to be listed as comments so you can browse through it easily. It’s up to you.

Look where it says “replica.assignee = issue.assignee” for example. That matches the assignee fields on both platforms. You might want a specific team member to deal with information shared with your other teams though. In that case, you can add the person’s name here to give them the authority to override the shared information.

You can delete any lines you don’t want to be synced, and also change anything you want to be sent to a different field.

Adding and deleting lines is straightforward. Changing field names is also simple. Just change the text after the dot. If you understand code, you can do more and set specific conditions for when things are shared.

Take a look at our script helpers guide for more information on what you can do.

Step 5: Set up Automated Synchronization Triggers

Our platforms are now connected and we have chosen what information to be shared. Next, we need to select what will trigger the sharing of that information. For more detail on how you can customize what is exchanged and how it is done, please read this.

jira triggers for integrating with azure devops

In, Jira, click “Triggers” in the left-hand Exalate menu. Then click the green “Create Trigger” button.

creating trigger for jira azure devops sync

On the “Create Trigger” screen, we can enter a JQL query that lets us choose when and how issues are synced.

JQL might sound intimidating, but a pop-up guide will appear as you type, showing you what commands are available. It is intuitive and powerful. Give it a try!

choose connection between azure devops and jira

Once you’ve done this, choose the connection to sync with from the drop-down box, and enter any notes. The notes are especially useful for keeping track of multiple connections with different purposes.

There’s also an “Active” switch to turn the trigger on and off, so don’t forget to activate that if you want the trigger to work. When you’re done, click the “create” button. Your newly created trigger will share information according to the conditions you have set.

Common Pitfalls to Keep in Mind When Completing the Integration Between Azure DevOps and Jira

When setting up your integration between Jira and Azure DevOps, there are some things to look out for. Being aware of these issues will help keep your teams happy and make your changes successful.

Role Clarification

When integrating tools, don’t forget to use them for what they’re good at. Jira is best at issue tracking. Azure DevOps is better for teams using a DevOps toolchain.

Too Many Messages

Most platforms send notification messages when certain things happen. This could be when a ticket is created, or when someone leaves a comment. Your integration means this information is shared automatically, which is great. What’s not great is when everybody’s in-tray fills up with unwanted messages. Make sure you tune your notification settings to avoid swamping people with emails.

Validation Errors

If you see a validation error when putting your credentials into your Exalate node, try waiting for a while. It may take time for the servers to propagate.

Architecture, Security, and Deployment for a Jira Azure DevOps Integration

Alright let’s now discuss Exalate technology in more detail. If you’re using it, you may be curious about its architecture and the security features it has.

Architectural Autonomy

This diagram shows Exalate’s architecture:

Jira azure devops architectural autonomy

The blue end represents Azure DevOps and the red end represents Jira. Exalate agents for each platform sit in between these two services and handle the exchange of information between them.

  • The letters A-F show how information flows between platforms. Both services use Exalate as an intermediary, which maintains the autonomy of each one.
  • The Exalate agents control what gets sent and how information is matched from one platform to the other.
  • As well as Azure DevOps and Jira (Cloud and on-premise), there are Exalate agents available for GitHub, ServiceNow, HP ALM/QC, and Zendesk. More services will be added soon, so check back later if the one you need isn’t ready yet. You can also request an integration.

Security

Security is definitely a key consideration when exchanging information between platforms. Exalate is designed with security in mind so you can trust it to synchronize information securely.

It uses the secure https protocol for most data exchange and nodes use a reverse proxy for data termination. It also uses JWT to ensure data requests come from trusted sources.

Exalate protects your data by taking daily backups, which are retained for two days. It also conducts monthly penetration tests to help find and eliminate potential security issues.

To learn more about how Exalate keeps data safe, read this free Exalate Security and Architecture Whitepaper

exalate for jira azure devops integration security

This image shows the relationship between Exalate and the services it supports.

Conclusion

Using issue trackers and online services is a core part of many businesses, and linking them effectively can be key to ensuring your teams work together efficiently. Being able to join the dots in your organization will save you time and money.

Platforms like Azure DevOps and Jira all have their pros and cons, and working with both of them together can cause headaches. The right software integration solution can let you take advantage of their strengths while dodging the pitfalls that can harm your productivity.

It gives you the reliability of an automated tool, as well as flexibility, letting your teams customize their own workflows. They can work independently, but without the information they store being locked away from other teams. This means you can pick the right platforms for each part of your business, without having to worry about how they connect together. Let the software do the hard work for you.

That’s it for now. In this guide, we’ve set up the integration using Exalate. And we’ve described the step-by-step process on how to complete this integration to bridge the gap between systems, different teams, and companies.

If you’re interested in learning more about software integration, you can download this ebook and read all about an effective cross-company integration. You might also want to find out more about aligning ServiceDesk and development teams in this blueprint.

Recommended reads:

Leave a Reply

Your email address will not be published. Required fields are marked *