You've heard about the Deployment Management practice part of ITIL4 (Information Technology Infrastructure Library version 4) and you would like to learn more about it?
Previous ITIL versions have placed focus on the processes. In contrast, ITIL 4 emphasizes practices while giving the organization the flexibility to implement specific processes. In this blog post, let's deep dive into the ITIL4 Deployment Management practice and understand what best practices can apply to your own context.
What's Deployment Management?
Deployment Management aims to deliver changes to environments in "the BETTER, FASTER, and CHEAPER" way. ITIL 4 Foundation Edition describes the purpose of the Deployment Management practice and its importance between Change and Release Management. 3 practices are linked and necessary to deliver services both fit for use and purpose:
Change Control (sometimes also called "Change Enablement") helps coordinate technical changes to maintain throughput and stability.
Release Management focuses on when and how to make new or updated components available to users.
Deployment Management is the technical vehicle that looks at moving new or changed service components from one environment to another.
Zooming on the Deployment Management practice, there are several deployment techniques available and each company has its own preferences. Depending on their specific services and requirements, some use a combination of these approaches:
Phased delivery focuses on deploying changes gradually across multiple targets.
Continuous delivery leverages DevOps principles, such as rollout in small batch sizes to support Continuous Integration for automated deployments.
Big Bang Deployment
Big bang deployment supports the release of features to all targets simultaneously. It's sometimes necessary to mitigate risks by using blue-green deployments that keep two live targets running (old and new) and facilitate traffic to one or the other, making for easier rollback.
Pull deployment allows targets to pull changes "on demand," such as polling a central system for new changes and self-updating as required. This permits the users to control the timing of updates and enables them to request software updates only when needed.
All the above-mentioned deployment techniques can be combined together depending on your needs and can be used for both on-premise and cloud deployments. Also, refer to our article helping you choose between 8 deployment strategies.
Deployment Management Best Practices
Modern application development creates competitive differentiation by enabling rapid innovation. There are some essential guidelines to achieve success when building and deploying:
How to choose your Deployment tool?
There are plenty of tools available for managing your deployments. To name a few: Jenkins, Octopus Deploy, TeamCity, Bamboo, AWS CodeDeploy, XL Release, Azure DevOps, GitLab CI, etc.
Which key elements should you consider when choosing a deployment tool?
Deployment tools can require very different technical expertise. Make sure to take into consideration your team's expertise and experience when you select a new deployment tool. You want your team to like it so that it can be quickly adopted.
As modern software development projects often use Agile methodologies, there is a strong need to deliver new features frequently.
That's why Continuous Integration (CI) and Continuous Delivery (CD) are key. In order to cut down the time spent on repetitive tasks, you need automation. Look for tools with great automation capabilities.
If you are part of a large organization, you will probably need to support multiple platforms. Make sure your deployment tool is compatible with the main operating systems: Windows, Unix, Linux, Mac OS, Android, and iOS.
Integration & Extensions
Because what you need today can be quite different from what you will need in a year, choose a deployment tool that is actively maintained and that can adapt.
It should have a well-documented Rest API and the ability to trigger Webhooks. Integration capabilities leveraging Zapier or similar automation tools will help as well. Many modern tools like Jenkins also offer the possibility to build and install third-party plugins / shared libs.
There is a huge range of deployment management tools available today. While the best ones usually cost money, many are free. And there are lots of free software development tools that have been used to build many great apps!
There are many good reasons for an organization to use multiple deployment tools. And with many tools, it may be complex to get an overview of all cross-application deployments. That's why we have built the Golive plugin for Jira.
It improves communication by connecting to your deployment tools and aggregating useful deployment information in Jira, a tool often used by the whole organization. It displays your cross-platform deployment history, and also helps you schedule your next deployments!
Transform your Test Environment Management with Apwide Golive:
Leading companies have already Golive as part of their DevOps toolchain:
Free trial / Free forever up to 10 Jira Cloud users!