Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 21:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×Microservices architecture is not a new technology on the market. No doubt you have already heard about it, or perhaps, your company even has already adopted it. Such a massive migration from monolithic architecture to microservices is based on the clear and powerful advantages of microservices:
Of course, microservices architecture is not a silver bullet. As with everything in the world, it has its share of disadvantages and limitations. In this article I skip technical aspects and focus only on the challenges related to release and project management. From the management perspective I would like to outline the following challenges:
Jira has built-in versions and its progress tracking functionality. But, taking into account the abovementioned challenges, there are exposed areas to build an efficient microservices release process:
One can see that Jira has great flexibility and allows us to address these limitations in a number of different and effective ways: using embedded capabilities or by extending them with third-party apps.
You can refer to this helpful article on how to configure release management workflow using standard functionality: https://www.atlassian.com/blog/jira-software/jira-release-management-steps
An alternative way to organize microservices release management is offered by the Release management app.
Let's imagine an organization with 5 teams who are working on their own microservices:
Each microservice has its own release cycle which is not synchronized with other microservices release cycles. Usually, each particular business feature delivery requires some changes in a few microservices.
Let's review how the Release management app can simplify release management orchestration.
One of the Kanban rules says "Visualize the flow". This rule is a very important concept as the majority of people on the Earth are visual learners so they can better interpret the visual representation of information. In the Release Management app it is possible to import versions from multiple projects and visualize them on the board. Out of the box, Jira has two version statuses: Releases and Unreleased. Releases Management app extends that by custom version workflow. The workflow is seamlessly integrated with embedded version statuses.
One particular advantage I would like to outline is the option to drag and drop versions from one column to another, so the release or project manager doesn’t need to jump between projects in order to update several distributed versions.
While it is good to have all versions, from multiple projects, visualized on a single board, it remains an overhead to remember (or store in some other place) which particular versions have to be released in order to deliver a business feature.
In order to solve this problem, Release entity was introduced in the app. The release can consist of several versions. At the same time, each version can belong to none, one or several releases.
In our example, we can aggregate all versions to be delivered for Chinese market expansion into one Release and track them together.
Moreover, the Release entity can have its own custom workflow to visualize the activities that surround business feature delivery e.g. integration testing, performance or acceptance testing.
Managing releases is not only about the statuses, but also about knowing precisely when some particular item will be ready. Timeline view is the perfect solution for this purpose. Also, it is well-suited to reporting.
Continuous delivery is all about automation. In the perfect world, the release management tool has to be integrated with a continuous integration server in order to automatically update version statuses after each deployment.
The Release Management app has a powerful REST API that enables seamless integration with the CI server by using webhooks. This would dramatically decrease the amount of manual work and managerial overhead.
Microservices architecture is a powerful software development technique that fits the modern market needs. It offers solutions to address scalability, reliability and quality issues, while dramatically decreasing time to market, which is crucial for highly competitive markets.
In order to fully exploit the advantages of microservices architecture, we need to decrease managerial overheads that tend to appear in a more granular and distributed setup.
The Release Management app helps to eliminate the overhead, automate routine operations and create a single workspace for RM/PM. Also, it brings better visibility and makes management of complicated, multicomponent releases simple and straightforward.
Yuri Kudin
3 comments