This article sums up the differences in developing an app for Atlassian Cloud, Server and Data Center. New app developers, or app developers who want to target more than one deployment type, should read this first. In doing so, you’ll be better prepared to make the right architectural decisions while developing your app.
Atlassian offers three ways to use our products.
Customers can sign up online and create an instance of one of our products, like Jira or Confluence. The instance is hosted in Atlassian’s infrastructure, with a *.atlassian.net subdomain by default. All cloud instances can be accessed through the Internet.
Server and Data Center
Atlassian distributes our products, standalone, for customers to run on their own infrastructure. Server deployments run on a single server, whereas Data Center deployments can run on a cluster.
For best practices developing apps for Data Center, see Developing apps for Atlassian Data Center products.
So, what’s the difference between Jira Cloud and Jira Server? Or Confluence Cloud and Confluence Server? It may be the same Atlassian product, but that doesn’t mean apps will automatically work on all deployment types.
The table below shows key differences between the deployment types for app developers to consider.
|Cloud||Server and Data Center|
|Distribution||Cloud apps are web apps. You are responsible for hosting your app and serving content as needed.||Server and Data Center apps are self-contained package files. They are installed on, and run within, the customer’s infrastructure.|
It’s possible for your Cloud app to also interact with Server and Data Center. To do this, the customer’s instance must be accessible to the Internet (see Internet availability), and you must authenticate using OAuth 1.0a (See Authentication).
|Internet availability||Your app is self-hosted and, necessarily, has access to the Internet.||There is no guarantee your app has access to the Internet. Many Server and Data Center customers keep their instances inside secure, private intranets, colloquially known as behind the firewall.|
|Tools and languages||You can use any framework or language, as long as you follow the specs for your chosen authentication method (see Authentication).|
Atlassian provides starter kits for NodeJS and Java Spring Boot to help you get started.
|Server and Data Center apps are written in Java. To get started, use the Atlassian SDK.|
|Persistent storage||You can use the database of your choice. If you store any user-identifying data, you are required to follow GDPR specifications.|
Alternatively, you may use Entity Properties to store data by Jira issue, or Content Properties to store data by Confluence page. Both of these are available in Cloud, Server, and Data Center.
|Entity Properties and Content Properties are simple ways to store data on a Jira issue and Confluence page, respectively.|
For an advanced database interface, see Active Objects.
|Authentication||Atlassian Connect and OAuth 2.0 are exclusive to Cloud. To extend the product UI, or display repository, build, deployment, or feature flag details on each issue, use Atlassian Connect. If you only need REST APIs, use OAuth 2.0.|
OAuth 1.0a is available for REST APIs on Cloud, Server, and Data Center. But, it requires Site Admins to generate a private/public key pair and configure an incoming Application Link for your app.
|Java APIs need no special authentication, beyond requesting the needed permissions upon install. |
For the REST APIs, OAuth 1.0a is available on Cloud, Server, and Data Center. But, it requires Site Admins to generate a private/public key pair and configure an incoming Application Link for your app.
|Versioning||Atlassian manages all product updates.||Customers are responsible for product updates. When listing your app on Marketplace, you must specify the range of product versions your app is compatible with.|
Not all Atlassian products are available in all three of Cloud, Server, and Data Center. For example, Bamboo is not available for Cloud, whereas Trello is Cloud-only.
For more information about the differences between Cloud and Server from a customer’s perspective, see Atlassian Cloud vs. Server: features and use cases.