How to choose the right tools for DevOps?

How to choose the right tools for DevOps?

Nov. 18, 2021 Anders Innovations Tech

Implementing the comprehensive DevOps operations model provides you with the great opportunity to improve your software’s development cycle through a wide range of automations. This is why many companies now consider switching to DevOps or supplementing their current DevOps with new processes and tools.

However, there are many technical and administrative challenges related to planning and maintaining an entire DevOps platform. There are dozens if not hundreds of tools and programs related to DevOps in the market. According to research, 39 percent of companies face challenges when trying to select the right tools.

This text will examine more closely the first problem many faces when they decide to implement DevOps on a comprehensive scale.

Which tools serve our needs the best?

For each stage of DevOps, there is an impressive amount of different tools available, both free and subject to a charge. It is a wonderful thing that there are so many options. In practice, this means that for every need there is a suitable service solution with which the company’s needs are met. However, the abundance of tools is a double-edged sword. You have to be adequately familiar with the options before you can make your choice confidently.

Evaluating an individual tool is not an easy task. Depending on the complexity of the component selected, making even a preliminary assessment might take up a person’s entire workweek.

Every DevOps stage also usually has at least two big names as service providers and they should always be included in the assessment. When you combine this with how many stages there are in DevOps, the number of components to be assessed can easily grow quite high.

This means that there is a lot to assess. Not to mention the fact that the compatibility of the components selected must also be checked.

DevOps toolingThis picture demonstrates how many different components there are in the different stages of DevOps. Selecting the right tools is not an easy task. Picture source

Therefore, starting the implementation of an entire DevOps environment from zero might fail just because there simply is not enough time or resources for the evaluation and planning. Fortunately, this rarely is the starting situation. A company is likely to already have systems (version management, testing, etc.) in use that control and outline the planning of the overall solution.

What are the selection criteria for tools?

It is crucial that the services are compatible with one another. Your systems should have built-in integration for the other services already selected so that there is no need to manage significant changes when updating the systems.

The services selected should also have a well-documented API with which the services can be connected to an external reporting or ticketing system.

The price of the overall solution should not be forgotten. Many services, especially SaaS services, contain concealed costs that may become apparent after years have passed since the implementation and as the number of users has increased.

A good example of concealed costs is the integration of SSO or AD/LDAP for user management which is as a feature often connected to a more expensive user-specific license. Another example could be the running of CI/CD pipelines. The start is often free, but as the program team grows, X number of runs a day is no longer enough or the runs should be in parallel.

Or maybe your project includes the customer’s requirements related to data security or auditing. The original price of €10/user/month may grow tenfold when you have to move to Enterprise class.

All is well that ends well?

Not necessarily! As I already stated, the evaluation and implementation of a comprehensive DevOps system can be a challenging task. It includes many parts and use cases that are not always taken into account before moving on to production. 

Implementing an entire DevOps exercise can be such a long and difficult process that if one of the components selected does not suit the production as well as expected, it might be too late to start the process again. Schedules and costs are often considered to be more important. This leads to a situation where the company has to move on to production with a non-optimal solution. 

Unfortunately, getting competent and experienced people for an overall solution as extensive as this is difficult, especially at a short notice. The internet is a good source for finding out what other people have to say about their own implementation processes. You can use the stories to avoid the worst pitfalls in your processes. However, the internet rarely offers a solution or overall architecture for your specific needs. This is the moment when you should lean on a partner that has a lot of experience in building DevOps systems and with which you can start planning architecture suitable for your organization. 

Which criteria to use when selecting our tools? 

Our company has worked in program development for over ten years. In that time we have tried dozens of different services, products and overall solutions.  

We originally built DevOps solutions for ourselves to enhance our own service production. However, in the background, we always had the idea of offering our expertise in DevOps to others. Since we have benefitted from the work so much internally, there must also be outside parties that could be interested in our competence! 

Our development environment has been built around a few basic services whose reliability we have learned to trust. 

GOOGLE CLOUD 

Good and approachable tools for capacity management. Google provides the capacity, even from computer rooms located in Finland, which is often important to our customers. May even have the best hosted Kubernetes platform GKE? :) 

KUBERNETES 

A natural addition to the management of containerized services. There are other good orchestration solutions and they may even be faster or better suited for a particular purpose. For us it is important that we can use one tool for as many things as possible. 

GITLAB 

Version management, CI/CD, Docker register, metrics, and many other features under one roof. Additionally, the service is being developed very actively and there is competent technical support available. 

TERRAFORM 

The most popular IaC platform, which makes capacity management in a multi-cloud environment considerably easier. 

Granted, there are many other services available, but they vary depending on the nature of the development project. 

Finally 

We believe that there is interest in DevOps skills and services, which is why we established a separate DevOps team. We have distilled our best competence from years of DevOps projects. The key task of our team is to continue the development of our own DevOps tools and processes so that we remain at the leading edge of technology and the solutions we produce can always be implemented for others as easily as possible. 

We offer trainings related to DevOps tools and methods. With our training, the customer can obtain new skills or improve their professional competence even further. We have also compiled a ready starter pack with which you can implement your own DevOps environment easily and quickly. It is largely similar to the environment we use daily. Our experts are available for the further development of already existing environments or, alternatively, full-time maintenance. 

We are happy to help you get started with your DevOps journey through consultation or training. If you became interested in our starter pack, do not hesitate to contact us. 

Paul Nylund
Writer:

Paul Nylund
CIO
paul.nylund@anders.com