In this page
Why should I use it?
What can I automate with it?
What is GitOps?
SubversionOps, MercurialOps and AnyVcsOps
Dependencies
What is the Better Devops Automation app?
Better DevOps Automation is a no-code, low-code automation tool that allows implementing automatic DevOps processes on the Jira Data Center and Jira Server platforms.
It is the DevOps pipeline component that bridges the gap between the version control system (Git, Subversion, Mercurial, etc.) and the DevOps tools (Jira, Slack, Zoom, Bamboo, Jenkins, other CI/CD systems, custom scripts, code analysis tools, etc.) with zero or little code.
The Better DevOps Automation app extends the super-popular Automation for Jira app with additional triggers and actions:
- It offers DevOps automation triggers for accepted/rejected changesets, commits, branches and tags.
- It adds a DevOps automation action to run Groovy scripts in Jira.
- It also introduces the concept of Genius Commits! Genius Commits are a more powerful and Version Control System independent implementation of the original Smart Commits concept that may be familiar from Bitbucket.
Why should I use it?
Benefits:
- It improves productivity by saving manual work and human errors.
- It produces more consistent, more standardized and higher quality results than manual work does.
- It enhances the developer experience by eliminating repetitive steps from their workflows.
- It requires zero or little technical know-how for most automations, but also allows effectively using deeper technical experise for complex ones.
- It relies on open standards (documented version control systems, public REST APIs, standard programming languages).
- It is Enterprise-ready (it scales to large workloads, its security is integrated with Jira user management, it offers an audit trail).
- It can be introduced gradually, one automation at a time.
What can I automate with it?
You can automate nearly any process that should be started by a change in the version control system, like creating a commit, starting a new branch, adding a new tag or merging a pull request.
For inspiration and automation ideas, check out the following step-by-step guides:
- You can update, assign, transition, comment issues or log work on those.
- You can send team notifications in email, Slack, Zoom or SMS messages.
- You can start CI/CD builds to build, package, test or deploy your code.
- You can run scripts and programs written in various languages.
- You can scan your code for compliance checks and security breaches.
- You can make REST API calls to external systems.
Even if these don't precisely match your use case, you can freely adapt these or combine these to your needs.
It's a good idea to introduce automations gradually, in multiple smaller steps instead of a single drastic change. When you are new to the app, you can absolutely start with a single or just a few simpler automation rules, like sending notifications. Then, as you get more experienced, you can add further rules and refine the existing ones. Later, you can start building a full continuous integration, continuous delivery or continuous deployment pipeline. Or, you can even fully adapt GitOps practices!
What is GitOps?
GitOps is a relatively new concept in software engineering. It is a set of practices that make Git the single source of truth and the central control mechanism in a software project.
It promotes the following principles:
-
"Everything as code" (also known "X as code").
You should be able to fully reproduce the software system only from the Git repository. It means that the Git repository should store not only the actual code, but also the required infrastructure, configuration and security policy in a declarative way. -
Automatic processes triggered by repository changes.
Changes made to the code should automatically bring the software system to the state described in the Git repository. If you want to update the system, you only need to update the Git repository, then automatic processes handle everything else. At the end:- If you use continuous deployment, the working system should be automatically updated from the latest code.
- If you don't use continous deployment, the system should be automatically delivered as an artifact built and packaged from the latest code (continuous delivery).
-
"Git push" all the things.
In addition to the software system, Git changes should also update:- the linked user stories or work items (e.g. by transitioning a Jira issue to a new status)
- the team members (e.g. by sending an email, Slack message, SMS)
- the documentation (e.g. by re-building the customer-facing website)
SubversionOps, MercurialOps and AnyVcsOps
Although the concept of GitOps was primarily invented in the context of Git, these principles bring the same benefits to the teams using other version control systems, too.
Not only Better DevOps Automation fully supports Git, Bitbucket, GitHub and GitLab, Better DevOps Automation unlocks these possibilities for any Version Control System!
How? Better DevOps Automation relies on another Jira app, Better Commit Policy, to listen for changes in the code and to guarantee that only high-quality commits and pull requests are created. As Better Commit Policy supports Git, Subversion, Mercurial, all those are also supported by Better DevOps Automation. Even better, as Better Commit Policy allows implementing custom hook scripts, any version control system can become the starting point for the DevOps pipelines!
Dependencies
It is important to understand that the Better DevOps Automation app requires two additional apps being installed to your Jira instance for implementing DevOps automations. Those three apps together form the "central part" of the pipeline:
More precisely, you need to install the following apps (left to right in the diagram), each with a well-defined responsibility:
-
Better Commit Policy for Jira
(paid app developed by Midori)
This app integrates your Version Control System, be it Git, Subversion, Mercurial, or others, to automations. It offers commit verification functionality (that can be used even without automations) and it is also the first component for automations.
It verifies if the commits are compliant with your commit policy, it either accepts or rejects them, then it passes them to the next component. In this sense, it is the gateway that accepts "correctly formed" commits only. -
Better DevOps Automation for Jira (this app)
(paid app developed by Midori)
This app starts the execution of the automation rules based on the commits received.
It offers configurable DevOps automation triggers and immensely powerful Genius Commits to decide which automations rules to start. Additionally, it offers a Run Groovy script automation action for those use cases where you want full control over the automation logic. (Tip: the Run Groovy script action is super-useful as it can be used with non-DevOps triggers, too!) -
Automation for Jira
(paid app developed by Atlassian)
This app is the framework that executes the automation rules.
It offers a bunch of configurable actions to work with issues, work with external systems, work with HTTP requests, etc.
(Note that this app has a free Lite edition, but that is not sufficient, because that does not support custom triggers.)
As you see, you can build automations by leveraging the synergies between these apps like between "Lego bricks".
See the installation guide for the instructions.
Questions?
Ask us any time.