Jira for DevOps
Still in their fledgling state, DevOps and cloud computing have already seen a lot of growth in the recent times. The main points of consideration when it comes to their application are ‘how’ and ‘in which’ computing environment they perform. Jira offers fluid workflow by identifying development issues at the earliest stage. This makes it easier for the enterprises to make informed decisions leading to faster shipping and higher quality of release. Tracking bugs and troubleshooting also get a lot easier for various software solutions and mobile apps.
Schematic of workflow using DevOps
To get a sense of what all Jira can be used for, here is a brief overview:
- Project Management
- Bugs/Change Requests Tracking
- Tasks Tracking
- Workflow & Process Management
- Help-Desk/Support Management
- Jira Cloud and Enterprise version
Enterprise-level Jira benefits
Jira is well-acknowledged for its high configurability and flexibility. It allows for usage in a wide range of processes and environment. The workflows, types of issues, and screens in Jira enable customization for any scenario and can be easily altered via the administration GUI. Following are the most important enterprise-level benefits of Jira:
- Create issue via web application or through pre-configured email address
- Delivers real time, relevant information to multiple stakeholders
- Enables you to know outstanding, scheduled and resolved tasks
- Configurable email alerts on pending, overdue tasks
- Periodic reports, configurable, automatically delivered to multiple stakeholders
- Search for issues you look often, save them as filters
Jira supports the use of both Scrum and Kanban methodologies with each having its specific requirements and benefits. With Scrum, you get better results for timelines. It goes through the priority list in certain sprint. With Kanban, on the other hand, you get a better outcome for service and support teams. It goes through a priority list as fast as possible with no plan modes and no sprints.
How we enhanced user experience using Jira and DevOps: A short case study
At Loves Cloud, we constantly aim to provide top-notch problem-solving services to our customers using DevOps, cloud and related technologies. We optimize, automate and scale our customers’ workloads using open source software solutions. Our services include planning, executing, maintaining and optimizing everything related to cloud and DevOps along with converting our customers’ infrastructure to code.
DevOps Toolchain used in Case study
Following set of tools were used in the case study:
- Jira -Used for Project Management and getting statuses from various tools.
- GitHub-Served as Code Repository Tool
- Jenkins-Used for creating CICD pipeline
- Sonarqube-Used for code analysis and generated Analysis Report
- Docker-used for Containering the application
- Nexus Repository Manager-Published the Docker Images to
- Kubernetes-deployed application on its cluster
While using Jira, we took a note of certain practices and worked on them to enhance the overall user experience. The best practices include:
- Recording all the tasks in Jira
- Assigning story points for effort estimation
- Timeline setting for a single task: Between 1 hour to 3 days
- Breaking tasks that take more than 3 days into smaller pieces. For e.g.
- Complete task
- Review task
- Rework task
Team assignment during the workshop
The workshop started with the entire project management team getting divided into three sub-teams. A team assignment was created to be carried out in Jira. Three people from the team were assigned with three key roles of that of the Developer, Tech Lead, and Project Manager. An account on GitHub (www.github.com) was created for the Developer and each of the Tech Leads
Phase I: Setting up Jira
We created 2 epics for our respective projects and 15 different user stories. We made 2 sprints of one-week duration each and added 5 user stories to each sprint. This allowed the product backlog to have 5 left over user stories. The Project Manager and Tech Lead added all the information to Jira. There was a list of key metrics we had to keep an eye on including the overdue tasks. The key factors to be checked regularly included:
- Team velocity
- Overdue tasks
- Sprint burndown
- Epic or release burndown
- Task distribution
- Time spent on features
- Time spent on bugs
The first phase of the project ended with the Jira setup being completed along with the software ready to use. A few important lessons learned in the process include:
- Each task must be broken into smaller tasks by following agile
- Every task and work must have a record in Jira
- Each task must use either Scrum or Kanban methodology to manage the projects
Phase II: Running the projects using DevOps pipeline
The second phase II of the workshop involved running the projects using DevOps pipeline. The set of activities performed in it included:
- Assigning stories in Jira to developers
- Commitment of code in GitHub by the developers
- Tech Lead merging code in Master branch in GitHub
- Triggering Jenkins Job by GitHub
- Running the Pipeline with all DevOps tools
- Deployment of application on Kubernetes cluster
- Repeating the same with multiple scenarios
- Reviewing data from tools in each story in Jira
This is the Architecture Diagram of the DevOps Pipeline: –
Multiple DevOps tools are used to create a CI/CD pipeline. We automated the entire process and architect the pipeline as shown in below architecture diagram:-
The following flow diagram will help in understanding the above architecture diagram: –
From the following schematic, it is evident that the process starts with the creation of feature branches through Jira and then committing code in those branches in GitHub. After viewing the commit status in Jira, a Pull request is created from jira and Branches are merged from GitHub. As soon as branches are merged, Jenkins Job is triggered. As a result of Jenkins Pipeline, SonarQube is updated, Docker image is created, Docker image is published to Nexus repository and the application is deployed on K8 Cluster. Finally, the Jenkins Job status is updated in Jira.
Jira has it all that it takes to be a versatile project management tool. It is easy to learn, keeps up to date with the latest Agile trends and certainly, much less-expensive as a bug tracking and project management tool. By adopting Jira for business projects, enterprises can get an opportunity to become agile, if they are not so already. We at LoveClouds run comprehensive training courses for our clients to get them started with Jira. You can accelerate your learning curve by attending these in-depth demo sessions and benefit from it in the long run.
We at Love Clouds aim to provide top notch services to solve our customer’s problems using DevOps, cloud and related technologies. Our services include planning, executing, maintaining and optimizing everything related to cloud and DevOps. What sets us apart is our cost optimization, agility, continuous improvement and certified professionals.