How to implement Atlassian Jira + Confluence in a corporation. Technical questions

Are you planning to implement Atlassian software (Jira, Confluence)? Don't want to make cruel design mistakes, which then have to be solved at the last moment?

How to implement Atlassian Jira + Confluence in a corporation. Technical questions
Then you are here - we are considering the implementation of Atlassian Jira + Confluence in a corporation, taking into account various technical aspects.
Hello, I am a Product Owner at RSHB and am responsible for the development of the Lifecycle Management System (LCMS) built on Atlassian Jira and Confluence software products.

In this article I will describe the technical aspects of building a LCMS. The article will be useful to anyone who plans to implement or develop Atlassian Jira and Confluence in a corporate environment. The article does not require special knowledge and is designed for an initial level of familiarity with Atlassian products. The article will be useful for administrators, product owners, project managers, architects, and everyone who plans to implement systems based on Atlassian software.

Introduction

The article will discuss the technical issues of implementing a Life Cycle Management System (LCMS) in a corporate environment. Let's first define what this means.

What is an enterprise solution?

This means the solution:

  1. Scalable. In the event of an increase in load, there is a technical possibility to increase the capacity of the system. Separate horizontal and vertical scaling - with vertical scaling, the capacity of servers is increased, with horizontal scaling, the number of servers for the system operation is increased.
  2. Failsafe. The system will remain available if one element fails. In general, corporate systems do not require fault tolerance, but we will consider just such a solution. We plan to have several hundred competitive users in the system, and downtime will be very critical.
  3. Supported. The solution must be supported by the vendor. Unsupported software should be replaced by in-house development or other supported software.
  4. Installation Self-managed (on-premise). Self-managed is the ability to install software not in the cloud, but on your own servers. To be more precise, these are all non-SaaS installation options. In this article, we will consider only Self-managed installation options.
  5. Possibility of independent development and testing. To organize predictable changes in the system, a separate system is required for development (changes in the system itself), a testing system (Staging) and a productive system for users to work.
  6. More. Supports various authentication scenarios, supports audit logs, has a custom role model, etc.

These are the main elements of enterprise solutions and, unfortunately, they are often forgotten when designing a system.

What is a Life Cycle Management System (LCMS)?

In short, in our case, these are Atlassian Jira and Atlassian Confluence - a system that provides tools for organizing teamwork. The system does not β€œimpose” rules for organizing work, but provides a variety of tools for work, such as Scrum, Kanban boards, a waterfall model, and scalable Scrum, etc.
The name LCMS is not an industry term or a common term, it is simply the name of the system in our Bank. LCMS for us is not a bug tracking system, it is not an Incident Management system and a Change Management system.

What does implementation include?

The implementation of the solution consists of many technical and organizational issues:

  • Allocation of technical capacities.
  • Purchase of software.
  • Creation of a team to implement the solution.
  • Installation and configuration of the solution.
  • Solution architecture development. role model.
  • Development of operational documentation, including instructions, regulations, technical design, regulations, etc.
  • Changing company processes.
  • Creation of a support team. SLA development.
  • User training.
  • More.

In this article, we will consider the technical aspects of implementation, without details on the organizational component.

Features Atlassian

Atlassian is a leader in many segments:

Atlassian's products have all the enterprise features you need. I will note the following features:

  1. Atlassian solutions are based on the Java Tomcat web server. Apache Tomcat software is included with Atlassian software, as part of the installation, you cannot change the version of Apache Tomcat installed with Atlassian software, even if the version is outdated and contains vulnerabilities. The only option is to wait for an update from Atlassian with a newer version of Apache Tomcat. Now, for example, the current versions of Jira have Apache Tomcat 8.5.42, and Confluence has Apache Tomcat 9.0.33.
  2. Convenient interface, the best practices available on the market for this class of software are implemented.
  3. Fully customizable solution. With improvements, you can implement any change in the basic functionality for the user.
  4. Developed ecosystem. There are several hundred partners: https://partnerdirectory.atlassian.com, including 16 partners in Russia. It is through partners in Russia that you can buy Atlassian software, plugins, and get training. It is the partners who develop and maintain most of the plugins.
  5. App Store (Plugins): https://marketplace.atlassian.com. Plugins greatly enhance the functionality of Atlassian software. The basic functionality of Atlassian software is quite modest, for almost any task it becomes necessary to install additional plug-ins for free or for extra money. Therefore, software costs may be significantly higher than originally estimated.
    To date, several thousand plugins have been published in the store, almost a thousand of them have been tested and validated under the Data Center approved apps program. Such plugins can be considered stable and suitable for use in busy systems.
    I advise you to carefully approach the issue of planning plugins, this greatly affects the cost of the solution, many of the plugins can lead to system instability and the plugin manufacturer does not provide support to solve the problem.
  6. Training and certification: https://www.atlassian.com/university
  7. SSO, SAML 2.0 mechanisms are supported.
  8. Support for scalability and fault tolerance is only available in Data Center editions. This edition first appeared in 2014 (Jira 6.3). The functionality of the Data Center editions is constantly being expanded and improved (for example, the possibility of a single node installation appeared only in 2020). The approach to plug-ins for Data Center editions has changed a lot in 2018 with the introduction of Data Center approved apps.
  9. Support cost. The cost of support from the vendor is almost equal to the full cost of software licenses. An example of calculating the cost of licenses is given below.
  10. Lack of long term releases. There are so-called Enterprise versions, but they, like all other versions, are supported for 2 years. With the difference that only fixes are released for Enterprise versions, without adding new functionality.
  11. Extended support options (for additional money). https://www.atlassian.com/enterprise/support-services
  12. Several variants of DBMS are supported. Atlassian comes with a free H2 database, which is not recommended for productive use. The following DBMS are supported for productive use: Amazon Aurora (Data Center only) PostgreSQL, Azure SQL, MySQL, Oracle DB, PostgreSQL, MS SQL Server. There are restrictions on supported versions and often only older versions are supported, but for each DBMS there is a version with vendor support:
    Jira supported platforms,
    Confluence supported platforms.

Technical architecture

How to implement Atlassian Jira + Confluence in a corporation. Technical questions

Explanations for the scheme:

  • The diagram shows the implementation in our Bank, this configuration is given as an example and is not recommended.
  • nginx provides reverse-proxy functionality for both Jira and Confluence.
  • The fault tolerance of a DBMS is implemented by means of the DBMS.
  • Transferring changes between environments is done using the Configuration Manager for Jira plugin.
  • AppSrv in the diagram is a native reporting application server, does not use Atlassian software.
  • The EasyBI database was created for building cubes and reporting using the eazyBI Reports and Charts for Jira plugin.
  • The Confluence Synchrony service (a component that allows simultaneous editing of documents) is not separated into a separate installation and runs together with Confluence, on the same server.

Licensing

Atlassian licensing issues deserve a separate article, here I will mention only general principles.
The main issues that we met are the issues of licensing Data Center editions. Licensing features for Server and Data Center editions:

  1. The license for the Server edition is perpetual and the customer can use the software even after the license has expired. But after the license expires, the buyer loses the right to receive product support and update the software to the latest versions.
  2. Licensing is based on the number of users in the 'JIRA Users' global permission system. It does not matter whether they use the system or not - even if users have never logged into the system, all users will be taken into account for the license. If the number of licensed users is exceeded, the solution is to remove the 'JIRA Users' permission from some of the users.
  3. The Data Center license is actually a subscription. An annual license fee is required. At the expiration of the term, work with the system will be blocked.
  4. The cost of licenses may change over time. As practice shows, in a big way and, perhaps, significantly. Therefore, if your licenses cost one amount this year, then next year the cost of licenses may increase.
  5. Licensing is done by users by tier (for example, level 1001-2000 users). It is possible to upgrade to a higher tier, with a surcharge.
  6. If the number of licensed users is exceeded, new users will be created without the right to log in ('JIRA Users' global permission).
  7. Plugins can only be licensed for the same number of users as the main software.
  8. Only productive installations are required to be licensed, for the rest you can get a Developer license: https://confluence.atlassian.com/jirakb/get-a-developer-license-for-jira-server-744526918.html.
  9. To purchase maintenance, the purchase of Renew Software maintenance is required - the cost is approximately 50% of the cost of the original software. This feature is not available for the Data Center and does not apply to plugins - you will have to pay the full cost annually to support them.
    Thus, annual software support costs more than 50% of the total cost of the software in the case of the Server edition and 100% in the case of the Data Center edition - this is significantly more than most other vendors. In my opinion, this is a significant disadvantage of the Atlassian business model.

Features of the transition from the Server edition to the Data Center:

  1. The transition from the Server edition to the Data Center is paid. Price can be found here https://www.atlassian.com/licensing/data-center.
  2. When switching from the Server edition to the Data Center, you do not need to pay for changing the edition of the plugins - the plugins for the Server edition will function. But it will be necessary to renew licenses for plug-ins for the Data Center edition.
  3. You can use plugins that do not have a version for use with Data Center editions. At the same time, of course, such plugins may not work correctly and it is better to provide an alternative to such plugins in advance.
  4. Upgrading to the Data Center edition is done by installing a new license. At the same time, the license for the Server edition is still available.
  5. There are no functional differences between the Data Center and Server editions for users, all differences are only in the functions for administration and the technical capabilities of the installation.
  6. The cost of software and plug-ins differs for the Server and Data Center editions. The difference in cost is often less than 5% (not essential). An example of cost calculation is shown below.

Functional scope of implementation

The base Atlassian software package includes a huge number of features, but often the features provided by the system are severely lacking. Sometimes even the simplest functions are not available in the basic package, so plug-ins are indispensable for almost any implementation. For the Jira system, we use the following plugins (the picture is clickable):
How to implement Atlassian Jira + Confluence in a corporation. Technical questions

For the Confluence system, we use the following plugins (the picture is clickable):
How to implement Atlassian Jira + Confluence in a corporation. Technical questions

Comments on tables with plugins:

  • All prices are based on 2000 users;
  • Prices are based on the prices indicated https://marketplace.atlassian.com, the real cost (with discounts) is lower;
  • As you can see, the total amount is practically the same for the Data Center and Server editions;
  • Only plug-ins with support for the Data Center edition were selected for use. We excluded the rest of the plugins from the plans, for the stability of the system.

The functionality is briefly described in the Comment column. Additional plugins have expanded the functionality of the system:

  • Added several visual tools;
  • Improved integration mechanisms;
  • Added tools for waterfall model projects;
  • Added tools for scalable Scrum to organize the work of large project teams;
  • Added functionality for time tracking;
  • Added tools for automating operations and configuring the solution;
  • Added functionality to simplify and automate the administration of the solution.

Additionally, we use Atlassian Companion app. This application allows you to edit files in external applications (MS Office) and return them back to Confluence (check-in).
Application for user workstations (thick client) ALM Works Jira Client https://marketplace.atlassian.com/apps/7070 decided not to use due to poor vendor support and negative reviews.
For integration with MS Project we use a self-written application that allows you to update Issue statuses in MS Project from Jira and vice versa. In the future, for the same purposes, we plan to use a paid plugin Ceptah Bridge - JIRA MS Project Plugin, which is installed as an add-on for MS Project.
Integration with external applications implemented through Application Links. At the same time, integrations for Atlassian applications are preconfigured and work immediately after setup, for example, you can display information about Issues in Jira on a page in Confluence.
The REST API is used to access the Jira and Confluence servers: https://developer.atlassian.com/server/jira/platform/rest-apis.
The SOAP and XML-RPC APIs are deprecated and not available in the new versions for use.

Conclusion

So, we have considered the technical features of implementing a system based on Atlassian products. The proposed solution is one of the possible solutions and is well suited for a corporate environment.

The proposed solution is scalable, fault-tolerant, contains three environments for organizing development and testing, contains all the necessary elements for collaboration in the system and provides a wide range of project management tools.

I'll be happy to answer questions in the comments.

Source: habr.com