Most of the functionality provided in the Exalate for JIRA Server is also available in the Exalate for JIRA Cloud.  This article describes major difference between the Cloud and the Server app.

Licensing

Exalate app for JIRA Server

JIRA Server app licenses are perpetual and the purchase price includes 12 months of maintenance (support and version updates).


Exalate app for JIRA Cloud

JIRA Сloud is monthly subscription-based license. Therefore you are automatically billed for apps together with host products.

For more information check the Exalate pricing and licensing details.

Hosting and data storage

Exalate app for JIRA Server

You host the app on your server.

JIRA server URL is also the Exalate URL after the app installation.


Exalate app for JIRA Cloud

We are hosting the Exalate app for JIRA Cloud on our own servers. Check DATA SECURITY AND PRIVACY STATEMENT for more details. 

It means that you have 2 separate servers: one where you are running the JIRA Cloud instance itself and another one with the Exalate app on it. 

The Exalate app has its own Exalate URL, that is different from JIRA Cloud instance URL.

There is a possibility for connectivity delays between the JIRA Cloud and the Exalate app. The physical location of the servers that host the app and the instance might affect the connectivity performance.


Backups and Updates

Exalate app for JIRA Cloud

As far as the Atlassian JIRA Cloud is a hosted service, the Exalate app for JIRA Cloud is upgraded automatically.

Atlassian automatically detects updates to Atlassian Connect apps with a polling service and updates your app. More details about automatic updates.

We perform a back up every hour on the Exalate servers to avoid data loss.

If a customer unsubscribes from our Cloud app we mark stored Customer Data, for deletion. The data is deleted after 180 days at the latest if the customer does not re-subscribe. However, the customer can contact us to ask for an earlier deletion. 

 

Exalate app for JIRA Server

Since the app is hosted on your server,  you decide how often to backup data. 

 

 

Monitoring 

Exalate app for JIRA Server

As for the Exalate server apps, monitoring could be done only by the JIRA server admin.


Exalate app for JIRA Cloud

Since the Exalate cloud app is hosted on our own servers, we do system health monitoring for the app.

 

Connection type

Exalate app for JIRA Cloud

JIRA Cloud Instance could not be set as a private instance. 

Check how the traffic is different between private and public JIRA instances.

When you set up Connection with a JIRA Server instance that is behind the firewall,  you should use the Exalate URL as far as it's different from the Atlassian JIRA Cloud instance URL. More details.



Scripting

Most of the functionality provided in the Exalate app for JIRA Server is also available in the Exalate app for JIRA Cloud,  but there are limitations because not all API's are available for JIRA Cloud.

Below you can see a list of the most common differences in Groovy scripting:

  • APIs:
  • Exalate API for JIRA Cloud is different from the Exalate API for JIRA Server
  • Exalate runs on different Java versions:
    • Server - depends on your Jira version 

    • Cloud - is determined by idalko, since we host cloud apps on our own servers

  • The app architecture is different for Cloud and Server apps: this affects advanced scripting, which would be different depending on the platform
  • Some of the script helpers are platform specific: 

    JIRA ServerJIRA Cloud
    • Page:
      attachmentHelper — The attachmentHelper provides functions to manipulate attachments.
    • Page:
      commentHelper — The commentHelper provides functions to manipulate comments.
    • Page:
      nodeHelper — The nodeHelper is an object which can be used in the Sync Rules scripts to get specific information from the underlying tracker
    • Page:
      userHelper — The userHelper provides functions to manipulate users
    • Page:
      workflowHelper — The workflowHelper provides functions to transition issues. If the transition does not have any conditions and validators, its name can be used to perform the transition.
    • Page:
      workLogHelper — The workLogHelper provides functions to manipulate worklogs

     

    • Page:
      attachmentHelper — The attachmentHelper provides functions to manipulate attachments.
    • Page:
      commentHelper — The commentHelper provides functions to manipulate comments.
    • Page:
      jiraHelper — Deprecated
      The jiraHelper is an object which can be used in the relation scripts to get specific information from the underlying tracker.
    • Page:
      nodeHelper — The nodeHelper is an object which can be used in the Sync Rules scripts to get specific information from the underlying tracker
    • Page:
      serviceDeskHelper —  The serviceDeskHelper is an object which can be used in the Connection's scripts to get specific information from the underlying tracker.
    • Page:
      workflowHelper — The workflowHelper provides functions to transition issues. If the transition does not have any conditions and validators, its name can be used to perform the transition.
    • Page:
      workLogHelper — The workLogHelper provides functions to manipulate worklogs

 

Follow the guide to set up your first synchronization.