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

Planning on introducing Atlassian software (Jira, Confluence)? Do you want to make severe design mistakes that you will have to solve at the last moment?


Then here you are - we are considering the introduction of Atlassian Jira + Confluence in a corporation taking into account various technical aspects.
Hello, I am the head of the Atlassian Product Competence Center at the Russian Agricultural Bank (Rosselkhozbank) and am responsible for the development of the Life Cycle Management System (SLC) based on Jira and Confluence software products.

In this article I will describe the technical aspects of building an LMS. The article will be useful to anyone planning to implement or developing systems based on Atlassian software in a corporate environment. The article does not require special knowledge and is designed for the initial level of acquaintance with Atlassian products. The article will be useful to administrators, product owners, project managers, architects, 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 (LMS) in a corporate environment. Let's first determine what that means.

What does a corporate decision mean?


This means a solution:

  1. Scalable. In case of increased 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 increases, with horizontal scaling, the number of servers for the system to work increases.
  2. . . , . .
  3. . . .
  4. Self-managed (On-premise). Self-managed β€” , . , SaaS. Self-managed.
  5. Possibility of independent development and testing. To organize predictable changes in the system, a separate system for development (changes in the system), a testing system (Staging) and a productive system for users to work are required.
  6. Other It supports various authentication scenarios, supports audit logs, has a custom role model, etc.

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

And what is a Life Cycle Management System (LMS)?


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” the rules for organizing work, but provides a variety of tools for work, such as Scrum, Kanban boards, a waterfall model, and a scalable Scrum, etc.
The name of the LCMS is not an industry term or a common term, it is simply the name of the system in our Bank. For us, SLC is not a bug tracking system, it is not an Incident Management system or Change Management system.
In the system, of course, there is functionality for bug tracking, and for recording incidents, and for managing changes. And for certain tasks this functionality is used. But it cannot be said that all bugs or all incidents or all changes are recorded in our system. In each case, its own specifics. If a unit uses Jira and makes a change there, then for this change, this team may decide to keep there all bugs, all changes, all incidents. But this is a local solution to one separate team, for one specific task.

What does implementation include?


Implementation of the solution consists of many technical and organizational issues:

  • Allocation of technical capacities.
  • Software purchase.
  • 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.
  • Change company processes.
  • Creation of a support team. SLA development.
  • User training.
  • Other

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

Atlassian Features


Atlassian is a leader in many segments:


Atlassian products have all the essential corporate features. I will note the following features:

  1. Atlassian - Java Tomcat. Apache Tomcat Atlassian, , - Apache Tomcat, Atlassian, . , , β€” Atlassian . , Atlassian, Apache Tomcat. , , Jira Apache Tomcat 8.5.42, Confluence Apache Tomcat 9.0.33 ( , Tomcat ).
    ( Max Max Atlassian User Group Moscow, Tomcat.)
  2. , .
  3. . .
  4. . : https://partnerdirectory.atlassian.com, 16 . Atlassian, , . .
  5. (): https://marketplace.atlassian.com. Atlassian. Atlassian , . , .
    , Data Center approved apps. .
    , , .
  6. : https://www.atlassian.com/university
  7. SSO, SAML 2.0.
  8. Data Center. 2014 (Jira 6.3). Data Center (, single node installation 2020 ). Data Center, 2018 Data Center approved apps.
  9. . , . .
  10. Long Term . Enterprise , , , 2 . , Enterprise , .
  11. ( ). https://www.atlassian.com/enterprise/support-services
  12. Several DBMS options are supported. Atlassian software comes with a free H2 DBMS; this DBMS is not recommended for productive use. The following DBMSs 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 old versions are supported, but for each DBMS there is a version with vendor support:
    Jira supported platforms ,
    Confluence supported platforms .

Technical architecture




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.
  • DBMS fault tolerance is implemented by DBMS tools.
  • Changes between environments are transferred using the Configuration Manager for Jira plugin.
  • AppSrv in the diagram is its own application server for reporting; it does not use Atlassian software.
  • 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 allocated to a separate installation and is launched 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 we met were licensing issues for Data Center editions. Licensing features for Server and Data Center editions:

  1. Server . .
  2. 'JIRA Users' global permission. , β€” , . , 'JIRA Users' .
  3. Data Center . . , .
  4. . , , , . , .
  5. tier (, 1001-2000 ). tier, .
  6. , ('JIRA Users' global permission).
  7. , .
  8. Licensing requires only productive installations, 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, you need to purchase Renew Software maintenance - the cost is approximately 50% of the cost of the initial software. This feature is not available for Data Center and does not apply to plugins - to support them you will have to pay the full cost annually.
    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 minus of the Atlassian business model.

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

  1. Server Data Center . https://www.atlassian.com/licensing/data-center.
  2. Server Data Center β€” Server . Data Center.
  3. , Data Center. , , .
  4. Data Center . Server - .
  5. Data Center Server , .
  6. Server Data Center. 5% ( ). .


The basic delivery of Atlassian software includes a huge number of features, but often the capabilities provided by the system are severely lacking. Sometimes even the simplest functions are not available in the basic distribution, so plug-ins can not be dispensed with with almost any implementation. It’s important to understand that Jira is a platform, here you can program any functionality and plugins - this is a paid implementation of additional functionality. For the Jira system, we use the following plugins (the picture is clickable): For the Confluence system we use the following plugins (the picture is clickable): Comments on tables with plugins:







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

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 projects according to the waterfall model;
  • Added tools for scalable Scrum, for organizing the work of large project teams;
  • Added functionality for time tracking;
  • Added tools for automating operations and configuring solutions;
  • Added functionality to simplify and automate the administration of the solution.

Additionally, we use a plug-in of our own design.
We plan to install Atlassian Companion app on user workstations . This application allows you to edit files in external applications (MS Office) and return them back to Confluence (check-in).
The application for user workstations (thick client) ALM Works Jira Client https://marketplace.atlassian.com/apps/7070 decided not to use because of 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 plug-inCeptah Bridge - JIRA MS Project Plugin , which is installed as an add-on on MS Project.
Integration with external applications is implemented through Application Links. At the same time, for Atlassian applications, integrations are pre-configured and work immediately after configuration, for example, you can display information about Issues in Jira on the Confluence page.
To access the Jira and Confluence servers, the REST API is used: https://developer.atlassian.com/server/jira/platform/rest-apis .
SOAP and the XML-RPC API are deprecated and are not available in new versions for use.

Conclusion


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

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

I will be happy to answer questions in the comments.

All Articles