In this article, Coherent Solutions’ DevOps expert Alexander Simonov helps you navigate through the vast amount of choices to find the best solution for your business.
_“It’s hard to single out a tool or a set of tools that will have the biggest impact on an organization. The great thing about continuous integration is the freedom to use tools interchangeably, depending on your project’s needs. You have the freedom to choose whether your infrastructure will be local (on-premises) or in the cloud, whether you will use a tool that covers the whole CI/CD process or use separate tools for continuous integration and deployment, and so on.” – Alexander.
When talking about the most frequently used tools, Alexander highlights that it’s hard to define the perfect technology stack since there are endless situations in which you can use these tools. Nevertheless, to single out a few most commonly used ones, he names the following:
- Azure DevOps
Jenkins is more often used on Linux, Azure DevOps on Windows, and TeamCity on both. Bamboo and Octopus are continuous deployment tools, yet, Alexander notes they could also be used for continuous integration. Github, GitLab, and Bitbucket are the most popular tools for storing code, but GitLab also has solutions for continuous integration. Finally, Ansible is a provisioning tool that supports configurations in a certain state and allows configuration in the cloud.
As you can see, there is a lot of overlap, even within this small set of DevOps tools. This is why other criteria must be considered before deciding which tools your team will use.
Three criteria to help you choose the best DevOps tools
To help you navigate through this big land of DevOps tools, Alexander advises to focus on the following criteria:
- Experience. When choosing the right tools, you should consider what kind of experience your developers have. The more experience they have with a certain tool, the more likely it is that they’ll know workarounds, optimizations, and common issues that will help this tool bring value to your project. Below is an example of the impact experience can have on your ROI.
Alexander describes a project case where there were about 100 databases. All these databases needed to be consecutively updated, which slowed down the workflow. The solution? Our team suggested integrating TFS (now Azure DevOps) and Octopus deployment. “It worked,” says Alexander. “We moved the project from ‘on-premises’ to the cloud which sped up the processes by 400%, and it was only our first iteration. In the second iteration, we optimized our processes and reduced the workflow from eight hours to two.”
- Money. As a company, you need to determine your budget for tools. It’s also important to determine which tools you will charge for and which will be free. It’s good to note that in many cases, an experienced DevOps team will cut down costs in the long-term and give you an opportunity to reduce the cost of your existing solutions.
Alexander and his team were working on a project with very high costs. They decided to rewrite the scheduler offered by Azure DevOps, whose main function is to monitor machine usage and turn them on/off depending on project necessities.
“You may have a hundred servers in each environment, but not all of them are being used constantly. What happens when your team isn’t using them but they are running anyway? Your money is going down the drain. We rewrote the AWS scheduler in a way that modifying tag settings allowed them to be turned off and on based on team needs.” – Alexander.
For example, when a developer wanted to test something, he would turn on the needed environments for X hours. The program worked alongside the scheduler, monitoring the usage of certain servers with the help of tags.
- Integration Period. Consider the time it will take to implement each continuous integration tool. There are usually standard implementation exercises that will help speed up the implementation process. You should take advantage of them. Also, remember that introducing new tools might result in lessened productivity during the transition period, but the long-term benefits are worth it.
“One time we had a project with the following toolset: Bitbucket, Jenkins, AWS, and Octopus. We decided to remove Jenkins from the equation and move the processes to Bitbucket. This simplification made the deployment process faster and easier. It might sound odd since the Bitbucket pipeline isn’t the most popular one for deploying code. Nevertheless, in that particular situation, it was the best option.” – Alexander.
DevOps tools do more than add effciency
DevOps tools bring value to your project in other, less obvious ways. For example, almost every DevOps tool can create reports. These reports give you an opportunity to monitor changes at every stage of the development life cycle. This new data might help you uncover unknown problems and learn how to solve them. These reports could even benefit unrelated departments like marketing when covering new features of an app in website copy, content, and press releases.
Are you struggling to decide which CI/CD tools are right for you?
Talk to our team today.
We can help you choose the best tools for your project and immediately optimize their use.