How to Choose the Right DevOps Tools for Your Business
There is a wide range of DevOps tools presented at the market. However, there is no magic tool that will help you solve all problems at the same time. It will be easier to understand how each DevOps tool can help optimize your tasks and processes by breaking the development cycle into phases. Today we will discuss three of these stages: continuous business planning, collaborative development, and continuous monitoring. Below I will explain what tools we use at Hidora and for Hidora’s clients at each stage of the development cycle.
Continuous Business Planning
Breaking down your project into smaller pieces helps you prioritize and focus on the most important issues, get customers’ feedback more quickly and make optimization of your product faster. Iterate everything is the main principle of “the planning stage”. To do this you need to find tools for your development team to plan the iterations. Also, it is considered as good practice to gather user feedback, organize it in tasks and give the priority to each of them to let your development team know the most important things to do. You will need a tool that can provide each member of the team with an opportunity to comment and share their ideas, documents, goals and roadmaps.
Tools we use: Tuleap, YouTrack and Trello.
Reasons we like Tuleap:
- It is an open source solution which combines Project management, Issue tracking and git repository management.
- It helps us get a single view on the entire project and collaborate with managers, developers and DevOps engineers.
- It includes Kanban agile boards that replace sticky paper notes on a desk and saves trees.
- In addition to a SaaS version, it can be installed on Hidora in one click. This means that your data can be securely hosted in Switzerland.
Reasons we love YouTrack:
- This tool is being developed by the JetBrains team, which gave birth to IntelliJ IDEA – the most advanced IDE for developers. That’s why we personally trust this company.
- It has advanced project management and task inheritance features, so you can have tasks with multiple levels of hierarchy. If you used to work with Jira before, you will give your credits to this feature.
- It has a Free-Forever plan, which is limited to 10 users. However, your projects will be publically visible for everyone in this case.
Reasons we love Trello:
- It is a free SaaS tool that helps us to make and track high-level plans, OKRs and collaborate across teams.
- It has a very simple and clear UI, which makes it easy to use for all team members: marketers, C-level managers and developers.
- It has a mobile app, which is useful while travelling.
If you have more than one developer, you should know that the management of development and staging environments can be a pain. There are many reasons for that. First of all, developers tend to break dev environments by overwriting changes of other developers or inappropriate configuration files or scripts. Restoring such environments sometimes takes days, which wastes your money and decreases the motivation of your team. Secondly, developers usually lack in a number of development environments they have available to them due to the complexity of their setup.
Although Puppet and Chef tend to solve this problem, they are used primarily by Operations, but not developers. On the other hand, there are several tools on the market that can help to fix these issues and are liked by developers.
Tools we use: Docker and Hidora
Reasons we love Docker:
Docker, the first tool, provides your team with the ability to provision identical development environments and have a clear path to upgrade and rollback. It blurs lines between development, staging and production environments, providing a unified format of application deployment. So you can launch the same Docker image on your laptop, on bare metal, or on any public cloud. Moreover, this tool is developer-friendly and has integration with a wide variety of IDEs.
Reasons we love Hidora:
Hidora PaaS goes further and provides your team with 60+ middleware and database templates, which are based on Docker and can be used to create development and staging environments using point and click UI. Even more, it automates rolling updates, scaling and environment cloning processes.
Of course, your team should follow a DevOps methodology to be able to benefit from these tools. Proper use of DevOps tools will help you to avoid “it works on my machine syndrome” because the single shared environment will close the loop between development and testing.
It’s crucial to automate application and server performance monitoring.
The ideal solution is a continuous observation that helps your application and environments to be stable 24/7.
Although everybody is familiar with Zabbix, we don’t consider it as a flexible solution for many reasons. First, it requires Zabbix agents to be installed on every monitoring object, which is difficult in some cases. Secondly, its UI is not user-friendly and not convenient for most users. Lastly, it is not cloud native and was originally designed to monitor a rarely changing set of objects. However, we live in the era of microservices and need a better solution.
Tools we use: Prometheus, Grafana, New Relic.
Reasons we love New Relic:
New Relic stands out as a leader on the monitoring market. Compared to Zabbix, it offers good-looking monitoring dashboards that provide a good user experience for everyone. Moreover, it is able to monitor plenty of different parameters, which guarantees that you will never miss an important alert. In addition, to standard monitoring features, it offers application performance monitoring (APM) capabilities, which is crucial for many high loaded websites and applications.
Reasons we love Prometheus and Grafana:
The drawbacks of New Relic are the relatively high price compared to other solutions, and the absence of an on-premise version, which is important for most applications running in private clouds.
Many of our customers use a combination of Prometheus and Grafana to monitor their applications and databases. In contrast to Zabbix and New Relic, Prometheus offers agentless monitoring that implements the “pull” principle. In addition, there are hundreds of metrics exporters created, which, for example, significantly simplifies the monitoring of databases or application servers. Grafana adds a convenient UI panel with different types of dashboards on top of Prometheus. Moreover, Prometheus is a “cloud-native” monitoring solution and was designed to monitor a rapidly changing cloud environment.
In my opinion, this article covers only a short list of meaningful DevOps tools. However, I hope it will help you to choose at least one that will be useful for your team whether you work for a small company or for a large one.
This is not the end and we will uncover more tools soon in our next article. Among them are DevOps tools for such stages like Infrastructure as a code, Automated Testing, Continuous Integration, and Continuous Release & Deployment.