Jira 8 Essentials - Patrick Li - E-Book

Jira 8 Essentials E-Book

Patrick Li

0,0
61,92 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Publisher's note: A new sixth edition, updated with enhanced Jira 8.21 and Data Center features has now been published.

Key Features



  • Work on agile projects in Jira from both the administrator and end user's perspective
  • Explore the improved Scrum and Kanban board and backlog
  • Work through exercises at the end of each chapter to reinforce your skills

Book Description



Atlassian Jira enables effective bug tracking for your software and mobile applications and provides tools to track and manage tasks for your projects. Jira Essentials is a comprehensive guide, now updated to Jira 8 to include enhanced features such as updates to Scrum and Kanban UI, additional search capabilities, and changes to Jira Service Desk.

The book starts by explaining how to plan and set up a new Jira 8 instance from scratch before getting you acquainted with key features such as emails, workflows, business processes, and much more. You'll then understand Jira's data hierarchy and how to design and work with projects.

Since Jira is used for issue management, this book delves into the different issues that can arise in your projects. You'll explore fields, including custom fields, and learn to use them for more effective data collection. You'll create new screens from scratch and customize them to suit your requirements. The book also covers workflows and business processes, and guides you in setting up incoming and outgoing mail servers. Toward the end, you'll study Jira's security model and Jira Service Desk, which allows you to run Jira as a support portal.

By the end of this Jira book, you will be able to implement Jira 8 in your projects with ease.

What you will learn



  • Understand Jira's data hierarchy and how to design and work with projects in Jira
  • Use Jira for agile software projects, business process management, customer service support, and more
  • Understand issues and work with them
  • Design both system and custom fields to behave differently under different contexts
  • Create and design your own screens and apply them to different project and issue types
  • Gain an understanding of the workflow and its various components
  • Set up both incoming and outgoing mail servers to work with e-mails

Who this book is for



This book will be especially useful for project managers but it's also intended for other Jira users, including developers, and any other industry besides software development, who would like to leverage Jira's powerful task management and workflow features to better manage their business processes.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 435

Veröffentlichungsjahr: 2019

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Jira 8 EssentialsFifth Edition

 

 

 

 

Effective issue management and project tracking with the latest Jira features

 

 

 

 

 

 

 

 

 

Patrick Li

 

 

 

 

 

 

 

 

 

 

 

 

 

BIRMINGHAM - MUMBAI

Jira 8 Essentials Fifth Edition

Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Commissioning Editor: Richa TripathiAcquisition Editor: Chaitanya NairContent Development Editor: Rohit Singh Technical Editor: Royce JohnCopy Editor: Safis Editing Project Coordinator: Vaidehi SawantProofreader: Safis EditingIndexer: Priyanka DhadkeGraphics: Alishon MendonsaProduction Coordinator: Nilesh Mohite

First published: May 2011 Second edition: April 2013Third edition: April 2015Fourth edition: November 2016 Fifth edition: February 2019

Production reference: 1270219

Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.

ISBN 978-1-78980-281-8

www.packtpub.com

 
mapt.io

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.

Why subscribe?

Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

Packt.com

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.

At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks. 

Contributors

About the author

Patrick Li is the cofounder of AppFusions and works as a senior engineer there. AppFusions is one of the leading Atlassian experts, specializing in integration solutions with many enterprise applications and platforms, including IBM Connections, Jive, Google Apps, and more. He has worked in the Atlassian ecosystem for over 9 years, developing products and solutions for the Atlassian platform and providing expert consulting services. He has authored many books and video courses covering Jira 4 to 7. He has extensive experience in designing and deploying Atlassian solutions from the ground up and customizing existing deployments for clients across verticals such as healthcare, software engineering, financial services, and government agencies.

About the reviewer

Miroslav Kralik has over 16 years of experience in the IT field and has specialized knowledge in DevOps. He is a result-oriented and detail-oriented person with a passion for doing things in an easier and more effective way. He has also been part of various projects in which he trains divisions to automate IT processes and improve collaboration. He enjoys helping his customers to find solutions to their problems and creates best practices for them.

 

 

 

 

 

Packt is searching for authors like you

If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.

Table of Contents

Title Page

Copyright and Credits

Jira 8 Essentials Fifth Edition

About Packt

Why subscribe?

Packt.com

Contributors

About the author

About the reviewer

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files

Download the color images

Conventions used

Get in touch

Reviews

Section 1: Introduction to Jira 8

Getting Started with Jira

Jira Core, Jira Software, and Jira Service Desk

The Jira architecture

High-level architecture

Web browsers

Application services

Data storage

The Jira installation directory

The Jira home directory

System requirements

Hardware requirements

Software requirements

Operating systems

Java platforms

Databases

Application servers

Installation options

Installing and configuring Jira

Installing Java

Installing MySQL

Preparing MySQL for Jira

Installing Jira

Obtaining and installing Jira

Installing MySQL driver

The Jira setup wizard

Step one

Step two

Step three

Step four

Step five

Step six

Starting and stopping Jira

Post-installation configurations

Increasing Jira's memory

Changing Jira's port number and context path

Configuring HTTPS

Summary

Using Jira for Business Projects

Understanding project types

Business projects

Jira permissions

Creating projects

Changing the project key format

Project user interfaces

Project browser

The Summary tab

The Issues tab

The Versions and Components tabs

The Project Administration interface

The project details tab

The Components tab

Creating components

The component lead and default assignee

The Versions tab

Creating versions

Managing versions

Other tabs

Importing data into Jira

Importing data through CSV

The HR project

Creating a new project

Creating new components

Putting it together

Summary

Using Jira for Agile Projects

Scrum and Kanban

Scrum

Kanban

Running a project with Scrum

Creating a Scrum project

Working with the backlog

Prioritizing and estimating work

Creating a new sprint

Running through a sprint

Running a project with Kanban

Creating a Kanban project

Using the Kanban board

Enabling the backlog for the Kanban board

Configuring agile boards

Configuration columns

Setting up column constraints

Configuring swimlanes

Defining quick filters

Grooming your backlog

Creating a new agile board for your project

Including multiple projects on a board

Summary

Section 2: Jira 8 in Action

Issue Management

Understanding issues

Jira issue summary

Working with issues

Creating an issue

Editing an issue

Deleting an issue

Moving an issue between projects

Casting a vote on an issue

Receiving notifications on an issue

Assigning issues to users

Sharing issues with other users

Issue linking

Linking issues with other issues

Linking issues with remote contents

Issue cloning

Time tracking

Specifying original estimates

Logging work

Issues and comments

Adding comments

Permalinking a comment

Attachments

Attaching files

Issue types and subtasks

Creating issue types

Deleting issue types

Subtasks

Creating subtasks

Issue type schemes

Adding issue types to an issue type scheme

Issue priorities

Creating a priority scheme

The HR project

Adding new issue types

Updating the issue type scheme

Putting it all together

Summary

Field Management

Understanding system fields

Understanding custom fields

Standard fields

Advanced fields

Understanding field searchers

Custom field context

Managing custom fields

Adding a custom field

Editing/deleting a custom field

Configuring a custom field

Adding custom field contexts

Configuring select options

Setting default values

Field configuration

Adding a field configuration

Managing field configurations

Field description

Field requirement

Field visibility

Field rendering

Screens

Field configuration scheme

Managing field configuration schemes

Adding a field configuration scheme

Configuring a field configuration scheme

Associating a field configuration scheme with a project

The HR project

Setting up a custom field

Setting up the field configuration

Setting up a field configuration scheme

Putting it together

Summary

Screen Management

Jira and screens

Working with screens

Adding a new screen

Editing/deleting a screen

Copying a screen

Configuring screens

Adding a field to a screen

Deleting a field from a screen

Using screen tabs

Adding a tab to a screen

Editing/deleting a tab

Working with screen schemes

Adding a screen scheme

Editing/deleting a screen scheme

Copying a screen scheme

Configuring a screen scheme

Associating screens to issue operations

Editing/deleting an association

Issue type screen scheme

Adding an issue type screen scheme

Editing/deleting an issue type screen scheme

Copying an issue type screen scheme

Configuring an issue type screen scheme

Associating issue types to screen schemes

Editing/deleting an association

Associating an issue type screen scheme with a project

Delegating screen management

The HR project

Setting up screens

Setting up screen schemes

Setting up issue type screen schemes

Putting it together

Summary

Workflow and Business Process

Mapping business processes

Understanding workflows

Managing workflows

Issue statuses

Transitions

Triggers

Conditions

Validators

Post functions

Using the workflow designer

Authoring a workflow

Adding a trigger to transitions

Adding a condition to transitions

Adding a validator to transitions

Adding a post function to transitions

Updating an existing workflow

Workflow schemes

Creating a workflow scheme

Configuring a workflow scheme

Assigning an issue type to a workflow

Editing or deleting an association

Applying a workflow scheme to projects

Delegated workflow management

Extending a workflow with workflow add-ons

Suite utilities for Jira

Jira workflow toolbox

Jira Misc workflow extensions

Workflow enhancer for Jira

ScriptRunner for Jira

The HR project

Setting up workflows

Applying the workflow

Putting it together

Summary

Emails and Notifications

Jira and email

Mail servers

Working with outgoing mail

Adding an outgoing mail server

Disabling outgoing mail

Enabling SMTP over SSL

Sending a test email

Mail queues

Viewing the mail queue

Flushing the mail queue

Manually sending emails

Events

Adding a mail template

Adding a custom event

Firing a custom event

Notifications

The notification scheme

Adding a notification scheme

Deleting a notification scheme

Managing a notification scheme

Adding a notification

Deleting a notification

Assigning a notification scheme

Batching email notifications

Troubleshooting notifications

Incoming emails

Adding an incoming mail server

Mail handlers

Creating a new issue or adding a comment to an existing issue

Adding a comment with the entire email body

Adding a comment from the non-quoted email body

Creating a new issue from each email message

Adding a comment before a specified marker or separator in the email body

Adding a mail handler

Editing and deleting a mail handler

Advanced mail handler

The HR project

Setting up mail servers

Updating workflow post functions

Setting up a notification scheme

Setting up notifications

Putting it together

Summary

Section 3: Advanced Jira 8

Securing Jira

User directories

Connecting to LDAP

Users

User browser

Adding a user

Enabling public signup

Enabling CAPTCHA

Groups

Group browser

Adding a group

Editing group memberships

Deleting a group

Project roles

Project role browser

Adding a project role

Managing default members

Assigning project role members

Jira permissions hierarchy

Application access

Global permissions

Jira System Administrator versus Jira Administrator

Configuring global permissions

Granting global permissions

Revoking global permissions

Project permissions

Permission schemes

Adding a permission scheme

Configuring a permission scheme

Granting a permissions

Revoking permissions

Applying a permission scheme

Issue security

Issue security schemes

Adding an issue security scheme

Configuring an issue security scheme

Adding a security level

Assigning users to a security level

Setting a default security level

Applying an issue security scheme

Troubleshooting permissions

Workflow security

Password policy

Whitelists

The HR project

Setting up groups

Setting up user group association

Setting up permission schemes

Setting up permissions

Putting it together

Summary

Searching, Reporting, and Analysis

Search interface and options in Jira

Issue navigator

Basic search

Advanced search with JQL

Quick search

Working with search results

Switching result views

Exporting search results

Customizing the column layout

Sharing search results

Filters

Creating a filter

Managing filters

Sharing a filter

Subscribing to a filter

Deleting a filter

Changing the ownership of a filter

Reports

Generating a report

Dashboards

Managing dashboards

Creating a dashboard

Configuring a dashboard

Setting a layout for the dashboard

Changing the ownership of a dashboard

Gadgets

Placing a gadget on the dashboard

Moving a gadget

Editing a gadget

Deleting a gadget

The HR project

Setting up filters

Setting up dashboards

Setting up gadgets

Putting it together

Summary

Jira Service Desk

Jira Service Desk

Installing Jira Service Desk

Getting started with Jira Service Desk

Creating a new service desk

Branding your customer portal

Service desk user types

Adding an agent to a service desk

Adding a customer to a service desk

Adding a collaborator to a service desk

Request types

Setting up request types

Organizing request types into groups

Setting up fields

Setting up a workflow in Jira Service Desk

Service level agreement

Setting up an SLA

Setting up custom calendars

Queues

Creating a new queue

Creating knowledge base articles

Process automation

Summary

Other Books You May Enjoy

Leave a review - let other readers know what you think

Preface

Over the years, Jira has grown from a simple bug-tracking system designed for engineers to manage their projects to an all-purpose issue-tracking solution. As it has matured over time, Jira has become more than an application—it has transformed into a platform with a suite of other products that are built on top of it, enabling it to adapt and deliver value to a wide variety of use cases.

The term Jira now refers to a suite of products, including Jira Software, Jira Service Desk, and Jira Core. With this change, each product is more focused on what it does and the value it provides. It is now easier than ever for customers to choose the product best suited to their needs, whether they are running an Agile software development project, a customer support portal, or simply a generic task management system.

In this book, we will cover all the basics of Jira and the core capabilities of each product in the family, along with the add-ons that add additional features to the JIRA platform. Packed with real-life examples and step-by-step instructions, this book will help you become a Jira expert.

Who this book is for

This book will be especially useful for project managers, but it's also intended for other Jira users, including developers, and those in any other industry besides software development who would like to leverage Jira's powerful task management and workflow features to better manage their business processes.

What this book covers

Chapter 1, Getting Started with Jira, serves as an overall introduction to Jira by going over its high-level architecture. We will cover both fresh new deployments and how to upgrade from an existing deployment. This will also serve as the starting point of the project that readers will go through.

 Chapter 2, Using Jira for Business Projects, covers using Jira for projects that are not based on software development, for example, a generic task management solution. This chapter focuses on use the basic features of Jira, which are offered through the Jira Core product, which is bundled with Jira Software.

 Chapter 3, Using Jira for Agile Projects, covers features that are specific to Jira Software. This chapter focuses on using JIRA for software development projects, especially using Agile methodologies such as Scrum and Kanban.

Chapter 4, Issue Management, introduces issues, which are the cornerstone of using Jira. The focus is to make sure users understand issues and what they do. You will also learn how to make each of the features available and customize them further beyond the out-of-box settings.

Chapter 5, Field Management, introduces fields, and specifically how to use custom fields to customize Jira for more effective data collection. You will learn how to create different types of custom fields and their usages, and how to control field behaviors such as visibility and rendering options.

Chapter 6, Screen Management, introduces screens. You will learn how to create new screens from scratch and specify which fields (system and custom) will be displayed. We will also cover the complex scheme mappings to apply new screens to projects.

Chapter 7, Workflow and Business Process, explores the most powerful feature offered by Jira, workflows. The concept of issue life cycles is introduced, and various aspects of workflows are explained. This chapter also explores the relationship between workflows and other various Jira aspects that have been previously covered, such as screens. The concept of Jira add-ons is also briefly touched upon in the sample project, using some popular add-ons.

Chapter 8, Emails and Notifications, talks about emails and how Jira can use it to send notifications with end users. We will start by explaining how Jira sends out notifications to users, and then how Jira can process incoming emails to create, comment, and also update issues.

Chapter 9, Securing Jira, explains Jira's security model, starting with how to manage users, groups, and roles. Readers will then learn Jira's security hierarchy of how permissions are managed. Lastly, we will look at integrating JIRA with LDAP, a common requirement with most enterprise organizations.

 Chapter 10, Searching, Reporting, and Analysis, focuses on doing more with data collected by Jira, including searching, reporting, and using dashboards. Readers will also learn how to make this data and reports available outside of Jira, either via email, or by displaying them in other applications.

 Chapter 11, Jira Service Desk, introduces one of the new add-ons, called Jira Service Desk, which allows you to run Jira as a customer support portal. Readers will learn how to use Jira Service Desk to run and manage a support queue internally while at the same time communicating effectively with customers with the add-on.

To get the most out of this book

The installation package used in this book is the Windows Installer standalone distribution, which you can get directly from Atlassian at https:/​/​www.​atlassian.​com/software/​jira/​download for JIRA Software and https:/​/​www.​atlassian.​com/​software/jira/​service-​desk/​download for JIRA Service Desk.

You will also need additional software, including the Java SDK, which you can get from http://​www.​oracle.​com/​technetwork/​java/​javase/​downloads/​index.​html, and MySQL, which you can get from http:/​/​dev.​mysql.​com/​downloads.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

Log in or register at

www.packt.com

.

Select the

SUPPORT

tab.

Click on

Code Downloads & Errata

.

Enter the name of the book in the

Search

box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

WinRAR/7-Zip for Windows

Zipeg/iZip/UnRarX for Mac

7-Zip/PeaZip for Linux

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/9781789802818_ColorImages.pdf.

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "You should see both the New Employee and Termination issue types."

A block of code is set as follows:

<Resource name="mail/JiraMailServer" auth="Container" type="javax.mail.Session"

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

<security-constraint> <web-resource-collection> <web-resource-name>all-except-attachments</web-resource-name>

<url-pattern>*.js</url-pattern>

<url-pattern>*.jsp</url-pattern>

Any command-line input or output is written as follows:

create database jiradb character set utf8;

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "There is a Create another option beside the Create button."

Warnings or important notes appear like this.
Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

Section 1: Introduction to Jira 8

In this section, you will learn how to set up a new Jira 8 instance from scratch, followed by how to use Jira for your business and agile projects.

The following chapters will be covered in this section:

Chapter 1

,

Getting Started with Jira

Chapter 2

,

Using Jira for Business Projects

Chapter 3

,

Using Jira for Agile Projects

Getting Started with Jira

In this chapter, we will start with a high-level view of Jira, going through each of the components that make up the overall application. We will then examine the various deployment options, system requirements for Jira 8, and the platforms/software that are supported. Finally, we will get our hands dirty by installing our very own Jira 8 from scratch with the installation wizard. Finally, we will also cover some post-installation steps, such as setting up SSL to secure our new instance.

By the end of this chapter, you will have learned about the following:

The different offerings from the Jira product family

The overall architecture of Jira

The basic hardware and software requirements to deploy and run Jira

Platforms and applications supported by Jira

Installing Jira and all of the required software

Post-installation configuration options to customize your Jira

Jira Core, Jira Software, and Jira Service Desk

Starting with Jira 7, Jira is split into three different products, and the term Jira now refers to the common platform that all these products are built on. The three products that make up the Jira family are as follows:

Jira Core

: This is similar to the classic Jira (also known as JIRA), with all the field customizations and workflow capabilities. This is perfect for general-purpose task management.

Jira Software

: This is Jira Core with agile capabilities (previously known as JIRA Agile). This is well-suited for software development teams that want to use agile methodologies, such as Scrum and Kanban.

Jira Service Desk

: This is Jira Core with service desk capabilities. This is designed for running Jira as a support ticketing system, with a simplified user interface for the end users, and a focus on customer satisfaction with SLA goals.

As you can see, Jira Core is at the heart, providing all the base functionalities, such as user interface customization, workflows, and email notifications, while Jira Software and Jira Service Desk add specialized features on top of it.

In this book, we will mostly focus on Jira Software. However, since Jira Core provides many of the common features, most of the knowledge is also applicable to Jira Core, and features that are only available to Jira Software will be highlighted. For this reason, the term Jira will be used to cover both Jira Core and Jira Software, unless a distinction is required. We will also cover Jira Service Desk in Chapter 11, Jira Service Desk.

The Jira architecture

Installing Jira is simple and straightforward. However, it is important for you to understand the components that make up the overall architecture of Jira and the installation options that are available. This will help you make an informed decision and be better prepared for future maintenance and troubleshooting, as well as establishing some common terminologies that are often used by the user community and Atlassian support representatives.

High-level architecture

Atlassian provides a comprehensive overview of the Jira architecture at https://developer.atlassian.com/server/jira/platform/architecture-overview. However, with regards to the day-to-day administration and utilization of Jira, we do not need to go into the details of this; the information provided can be overwhelming at first glance. For this reason, we have summarized a high-level overview, which highlights the most important components in the architecture, as shown in the following diagram:

Web browsers

Jira is a web application, so there is no need for users to install anything on their machines. All they need is a web browser that is compatible with Jira. The following table summarizes the browser requirements for Jira:

Browsers

Compatibility

Internet Explorer

11 and Edge

Mozilla Firefox

Latest stable versions

Safari

Latest stable versions on mac OSX

Google Chrome

Latest stable versions

Mobile

Mobile Safari on iOS only

Mobile Chrome

Application services

The application services layer contains all the functions and services provided by Jira. These services include various business functions, such as workflow and notification, which will be discussed in depth in Chapter 7, Workflow and Business Process, and Chapter 8, Emails and Notifications, respectively. Other services, such as REST/Web Service, provide integration points to other applications, and the OSGi service provides the base add-on framework to extend Jira's functionalities.

Data storage

The data storage layer stores persistent data in several places within Jira. Most business data, such as projects and issues, are stored in a relational database. Content such as uploaded attachments and search indexes are stored in the filesystem in the JIRA_HOME directory, which we will talk about in the next section. The underlying relational database that's used is transparent to users, and you can migrate from one database to another with ease, as referenced at https://confluence.atlassian.com/adminjiraserver/switching-databases-938846867.html.

The Jira installation directory

The Jira installation directory is where you install Jira. It contains all the executable and configuration files of the application. Jira neither modifies the contents of the files in this directory during runtime, nor does it store any data files inside the directory. The directory is used primarily for execution. For the remainder of this book, we will refer to this directory as JIRA_INSTALL.

The Jira home directory

The Jira home directory contains key data and configuration files specific to each Jira instance, such as Jira's database connectivity details. As we will see later in this chapter, setting the path to this directory is part of the installation process.

There is a one-to-one relationship between Jira and this directory. This means that each Jira instance must have only one home directory, and each directory can serve only one Jira instance. In the old days, this directory was sometimes called the data directory. It has now been standardized as the Jira Home. It is for this reason that, for the remainder of this book, we will refer to this directory as JIRA_HOME.

The JIRA_HOME directory can be created anywhere on your system, or even on a shared drive, but it cannot be a sub-directory of JIRA_INSTALL. It is recommended to use a fast disk drive with low network latency to get the best performance from Jira.

This separation of data and application makes tasks such as maintenance and future upgrades an easier process. Within JIRA_HOME, there are several subdirectories that contain vital data, as shown in the following table:

Directory

Description

data

This directory contains data that is not stored in the database, for example, uploaded attachment files.

export

This directory contains the automated backup archives created by Jira. This is different from a manual export executed by a user; manual exports require the user to specify where to store the archive.

import

This directory contains the backups that can be imported. Jira will only load backup files from this directory.

log

This directory contains Jira log files, which are useful for tracking down errors. Some of the key log files include the following:

atlassian-jira.log

: Information about Jira Software and the Jira Core application

atlassian-servicedesk.log

: Information about the Jira Service Desk application

atlassian-jira-security.log

: Information about user sessions, logins, and logouts

plugins

This directory is where installed plugins (also known as add-ons) are stored. Add-ons will be discussed further in later chapters.

caches

This directory contains cache data that Jira uses to improve its performance at runtime. For example, search indexes are stored in this directory.

tmp

This directory contains temporary files created at runtime, such as file uploads.

 

When Jira is running, the JIRA_HOME directory is locked. When Jira shuts down, it is unlocked. This locking mechanism prevents multiple Jira instances from reading/writing to the same JIRA_HOME directory and causing data corruption.

Jira locks the JIRA_HOME directory by writing a temporary file called jira-home.lock into the root of the directory. During shutdown, this file will be removed. Occasionally, however, Jira may fail to remove this file, such as during an ungraceful shutdown. In this case, you can manually remove this locked file to unlock the directory so that you can start up Jira again.

You can manually remove the locked file to unlock the JIRA_HOME directory if Jira fails to clean it up during the shutdown.

System requirements

Just like any other software application, a set of base requirements needs to be met before you can install and run Jira. Therefore, it is important for you to be familiar with these requirements so that you can plan out your deployment successfully. Note that these requirements are for a behind-the-firewall deployment, also known as the Jira Server or Jira Data Center. The main difference between the two is that Jira Data Center allows for clustering, so you can have additional benefits such as high availability and better scalability. Atlassian also offers a cloud-based alternative called Jira Cloud, available at https://www.atlassian.com/software#cloud-products.

Hardware requirements

For evaluation purposes, where there will only be a small number of users, Jira will run happily on any server that has a 1.5 GHz processor and 1 GB to 2 GB of RAM. As your Jira usage grows, a typical server will have a quad core 2 GHz+ CPU and 4 GB of RAM dedicated to the Jira application, and at least 10 GB of hard disk space for your database.

For production deployment, as in most applications, it is recommended that you run Jira on its own dedicated server. There are many factors that you should consider when deciding the extent of the resources to allocate to Jira; keep in mind how Jira will scale and grow. When deciding on your hardware needs, you should consider the following:

The number of active (concurrent) users in the system

The number of issues and projects in the system

The number of configuration items, such as custom fields and workflows

The number of concurrent users, especially during peak hours

It can be difficult at times to estimate these figures. As a reference, a server running with over 2.0 quad core CPU and 4 GB of RAM will be sufficient for most instances with around 200 active users. If you start to get into thousands of active users, you will need to have at least 8 GB of RAM allocated to Jira (JVM). Once you have gone beyond a million of issues and thousands of active users for a single Jira instance, simply adding raw system resources (vertical scaling) will start yield diminishing returns. In such cases, it is often better to consider using the data center edition of Jira, which offers better scalability by allowing you to have multiple instances clustered together (horizontal scaling), with the added benefit of providing high availability.

Officially, Jira only supports x86 hardware and 64-bit derivatives of it. When running Jira on a 64-bit system, you will be able to allocate more than 4 GB of memory to Jira, which is the limit if you are using a 32-bit system. If you are planning to deploy a large instance, it is recommended that you use a 64-bit system.

Software requirements

Jira has four requirements when it comes to software. It needs a supported operating system and a Java environment. It also needs an application server to host and serve its contents and a database to store all of its data. In the following sections, we will discuss each of these requirements and the options that you have to install and run Jira. You can find the latest information online at https://confluence.atlassian.com/adminjiraserver/supported-platforms-938846830.html.

Operating systems

Jira supports most of the major operating systems, so the choice of which operating system to run Jira on becomes a matter of expertise, comfort, and, in most cases, the existing organization's IT infrastructure and requirements.

The operating systems supported by Atlassian are Windows and Linux. There is a Jira distribution for mac OSX, but this is mostly for evaluation purposes only. Cloud-based deployment options are also available for Amazon Web Services (AWS) and Microsoft Azure. However, with these cloud options, there are restrictions for components such as database support.

With both Windows and Linux, Atlassian provides an executable installer wizard package, which bundles all the necessary components to simplify the installation process (only available for standalone distribution). There are minimal differences when it comes to installing, configuring, and maintaining Jira on different operating systems. If you do not have any preferences and would like to keep initial costs down, CentOS Linux is a good choice.

Java platforms

Jira is a Java-based web application, so it needs to have a Java environment installed. This can be a Java Development Kit (JDK) or a Java Runtime Environment (JRE). The executable installer that comes with Windows or Linux contains the necessary files and will install and configure the JRE for you. However, if you want to use archive distributions, you will need to make sure that you have the required Java environment installed and configured.

Jira 8 requires Java 8 (also known as 1.8). If you run Jira on an unsupported Java version, including its patch version, you may run into unexpected errors. The following table shows the supported Java versions for JIRA:

Java platforms

Support status

Oracle JDK/JRE

Java 8 (1.8)

 

With the recent licensing changes made to Oracle JDK by Oracle, efforts are currently underway to add support for OpenJDK. However, at the time of writing, OpenJDK is not officially supported.

Databases

Jira stores all its data in a relational database. While you can run Jira with H2 Database, the in-memory database that comes bundled with Jira, it is prone to data corruption. You should only use this to set up a new instance quickly for evaluation purposes, where no important data will be stored. For this reason, it is important that you use a proper database such as MySQL for production systems.

Most relational databases available on the market today are supported by Jira, and there are no differences when you install and configure Jira. Just like operating systems, your choice of database will come down to your IT staff's expertise, experience, and established corporate IT standards. If you run Windows as your operating system, then you probably want to go with the Microsoft SQL Server. On the other hand, if you run Linux, then you should consider Oracle (if you already have a license), MySQL, or PostgreSQL.

The following table summarizes the databases that are currently supported by Jira. It is worth mentioning that both MySQL and PostgreSQL are open source products, so they are excellent options if you are looking to minimize your initial investments.

Database

Support status

MySQL

MySQL 5.6 and newer. Note that neither MariaDB nor PerconaDB are supported.

This requires the latest JDBC driver.

PostgreSQL

PostgreSQL 9.4 and newer.

This requires the latest PostgreSQL JDBC (9.4) driver.

Microsoft SQL Server

SQL Server 2012 and newer.

This requires the latest Microsoft JDBC (6.2.1) driver.

Oracle

Oracle 12c R1.

This requires the latest Oracle driver.

H2

This is bundled with the standalone distribution, for evaluation purposes only.

 

Take special note of the driver requirement on each database, as some drivers that come bundled with the database vendor or Jira itself (for example, PostgreSQL) are not supported and will need to be replaced with the appropriate versions.

Application servers

Jira 8 officially only supports Apache Tomcat as the application server. While it is possible to deploy Jira into other JEE compliant application servers, you will be doing this at your own risk, and it is not recommended.

The following table shows the versions of Tomcat supported by Jira 8:

Application server

Support status

Apache Tomcat

Tomcat 8.5.32 and newer.

You should not deploy other applications or multiple Jira instances into the same Tomcat server.

Installation options

Jira comes in two flavors—an executable installer and a TAR.GZ or ZIP archive. The executable installer provides a wizard-driven interface that will walk you through the entire installation process. It even comes with a Java installer to save you some time. The archive flavor contains everything except for a Java installer, which means you will have to install Java yourself. You will also need to perform some post-installation steps manually, such as configure Jira as a service. However, you do get the advantage of learning what really goes on under the hood.

Installing and configuring Jira

Now that you have a good understanding of the overall architecture of Jira, the basic system requirements, and the various installation options, we are ready to deploy our own Jira instances.

In the following exercise, we will be installing and configuring a fresh Jira instance for a small production team. We will perform our installation on a Windows platform with a MySQL database server. If you are planning to use a different platform or database, refer to the vendor documentation on installing the required software for your platform.

In this exercise, you will do the following:

Install a fresh instance of Jira Software

Connect Jira to a MySQL database

We will continue to use this Jira instance in subsequent chapters and exercises as we build our help desk implementation.

For our deployment, we will use the following:

Jira Software server distribution 8

MySQL 5.7.13

Microsoft Windows 7

Installing Java

Since we will be using the installer package that's bundled with Java, you can skip this section. However, if you are using the archive option, you need to make sure that you have Java installed on your system.

Jira 8 requires JRE version 8 (1.8) to run. You can verify the version of Java you have by running the following command in a Command Prompt:

java -version

The preceding command tells us which version of Java is running on your system, as shown in the following screenshot:

If you do not see a similar output, then chances are you do not have Java installed. You will need to perform the following steps to set up your Java environment. We will start by installing JDK on your system:

Download the latest JDK from 

http://www.oracle.com/technetwork/java/javase/downloads/index.html

.

At the time of writing, the latest version of Java 8 is JDK 8 Update 192.

Double-click on the downloaded installation file to start the installation wizard.

Select where you would like to install Java, or you can simply accept the default values. The location where you install JDK will be referred to as 

JAVA_HOME

for the remainder of this book.

Create a new environment variable named 

JAVA_HOME

with the value set to the full path of the location where you installed Java. You can do this as follows:

1. Open the System Properties window by holding down your Windows key and pressing the Pause key on your keyboard.

2. Select the Advanced system settings option.

3. Click on the Environment Variable button from the new popup:

Edit the 

PATH

environment variable and append the following to the end of its current value:

;%JAVA_HOME%\bin

Test the installation by typing the following command in a new Command Prompt:

java -version

This will display the version of Java installed, provided everything is done correctly. In Windows, you have to start a new Command Prompt after you have added the environment variable to see the change.

Installing MySQL

The next step is to prepare an enterprise database for your Jira installation. Jira requires a fresh database. If, during the installation process, Jira detects that the target database already contains data, it will not proceed. If you already have a database system installed, then you may skip this section.

To install MySQL, simply perform the following steps:

Download MySQL from 

http://dev.mysql.com/downloads

, select

MySQL Community Server

, and then select the

MSI installer

for Windows.

At the time of writing, the latest version of MySQL is 5.7.13.

Double-click on the downloaded installation file to start the installation wizard.

Click on 

Install MySQL Products

on the welcome screen.

Read and accept the license agreement and click on the 

Next

button.

Select the 

Server only

option on the next screen. If you are an experienced database administrator, you can choose to customize your installation. Otherwise, just accept the default values for all subsequent screens.

Configure the MySQL root user password. The username will be 

root

. Do not lose this password, as we will be using it in the next section.

Complete the configuration wizard by accepting the default values.

Preparing MySQL for Jira

Now that you have MySQL installed, you need to create a user for Jira to connect MySQL with as you should never use the default root user, and then create a fresh database for Jira to store all its data:

Start the MySQL Command Line Client by navigating to 

Start

All Programs

MySQL

MySQL Server 5.7

MySQL 5.7 Command Line Client

.

Enter the MySQL root user password you set during installation.

Use the following command to create a database:

create database jiradb character set utf8;

Here, we are creating a database called 

jiradb

. You can name the database anything you like. As you will see later in this chapter, this name will be referenced when you connect JIRA to MySQL. We have also set the database to use

utf8

character encoding, as this is a requirement for JIRA. Using the following command, you need to ensure that the database uses the InnoDB storage engine to avoid data corruption:

grant all on jiradb.* to 'jirauser'@'localhost' identified by 'jirauserpassword';

We are doing several things here. First, we create a user called jirauser and assign the password jirauserpassword to them. You should change the username and password to something else.

We have also granted all the privileges to the user for the jiradb database that we just created so that the user can perform database operations, such as create/drop tables and insert/delete data. If you have named your database something other than jiradb, then make sure that you change the command so that it uses the name of your database.

This allows you to control the fact that only authorized users (specified in the preceding command) are able to access the Jira database to ensure data security and integrity.

To verify your setup, exit the current interactive session by issuing the following command:

quit;

Start a new interactive session with your newly created user:

mysql -u jirauser -p

You will be prompted for a password, which you set up in the preceding command as 

jirauser

.

Use the following command:

show databases;

This will list all the databases that are currently accessible by the logged-in user. You should see jiradb among the list of databases.

Examine the 

jiradb

database by issuing the following commands:

use jiradb;

show tables;

The first command connects you to the jiradb database, so all of your subsequent commands will be executed against the correct database.

The second command lists all the tables that exist in the jiradb database. Right now, the list should be empty, since no tables have been created for JIRA; but don't worry, as soon as we connect to Jira, all the tables will automatically be created.

Installing Jira

With the Java environment and database prepared, you can now move on to installing Jira. Normally, there are only two steps:

Download and install the Jira application

Run through the Jira setup wizard

Obtaining and installing Jira

The first step is to download the latest stable release of Jira. You can download Atlassian Jira from http://www.atlassian.com/software/jira/download.

The Atlassian website will detect the operating system you are using and automatically suggest an installation package for you to download. If you intend to install Jira on a different operating system from the one you are currently on, make sure that you select the correct operating system package.

As we mentioned earlier, with Windows, there is a Windows installer package and a self-extracting archive package. For the purpose of this exercise, we will use the installer package (Windows 64-bit Installer):

Double-click on the downloaded installation file to start the installation wizard and click on the 

Next 

button to continue:

Select the 

Custom Install (recommended for advanced users)

option and click on the 

Next

button to continue. Using the custom installation will let us decide where to install Jira and will also provide numerous configuration options:

Select the directory where Jira will be installed. This will become the 

JIRA_INSTALL

directory. Click on the 

Next

button to continue:

Select where Jira will store its data files, such as attachments and log files. This will become the 

JIRA_HOME

directory. Click on the 

Next

button to continue:

Select where you would like to create shortcuts to the start menu and click on the 

Next

button to continue.

In the 

Configure TCP Ports

step, we need to select the port on which Jira will be listening for incoming connections. By default, Jira will run on port

8080

. If

8080

has already been taken by another application, or if you want Jira to run on a different port such as port

80

, select the 

Set custom value for HTTP and Control ports

option and specify the port numbers you want to use. Click on the 

Next

button to continue:

Select whether you would like Jira to run as a service. If you enable this option, Jira will be installed as a system service and can be configured to start automatically with the server; refer to the 

Starting and stopping Jira

 section for more details:

For the final step, review all the installation options and click on the 

Install

button to start the installation:

Once the installation is complete, check the 

Launch Jira Software in browser

option and click on 

Finish

. This will close the installation wizard and open up your web browser to access Jira. This might take a few minutes to load as Jira starts up for the first time:

Installing MySQL driver

Jira 8 comes bundled with the MySQL database driver, so you can skip this section. However, if you do need to manually install the driver for some reason, such as the driver file got corrupted or accidentally deleted, you can download the required driver from http://dev.mysql.com/downloads/connector/j/. Once downloaded, you can install the driver by copying the driver JAR file into the JIRA_INSTALL/lib directory. After that, you need to restart Jira. If you have installed Jira as a Windows service in step 9, refer to the Starting and stopping Jira section.

Make sure that you select the Platform Independent option and download the JAR or TAR archive.

The Jira setup wizard

Jira comes with an easy-to-use setup wizard that will walk you through the installation and configuration process in six simple steps. You will be able to configure the database connections, default language, and much more. You can access the wizard by opening http://localhost:<port number> in your browser, where the <port number> is the number you have assigned to Jira in step six of the installation process.

The steps are explained in the following sections.

Step one

In the first step of the wizard, we need to select how we want Jira to be set up. Since we are installing Jira for production use, we will select the I'll set it up myself option, as demonstrated in the following screenshot:

Step two

For the second step, we will need to select the database we want to use. This is where we configure Jira to use the MySQL database we created earlier in this chapter. If you select the Built In option, Jira will use its bundled in-memory H2 database, which is good for evaluation purposes. If you want to use a proper database, such as in our case, you should select the My Own Database option:

The Built In option is great for getting Jira up and running quickly for evaluation purposes.

After you have selected the My Own Database option, the wizard will expand for you to provide the database connection details. If you do not have the necessary database driver installed, Jira will prompt you for it.