30 Open Source DevOps Tools IT Svit Uses
Throughout 5 years of experience in DevOps and Big Data projects we had to build an integral and all-around usable toolkit for our team.
These DevOps tools help us provide continuous software delivery and cloud migrations to enable seamless updates and uninterrupted customer experience of highly loaded products. Of course, there are many alternatives, so you can find the solutions that fit you better, yet these tools form a sufficient and efficient ecosystem for each DevOps team to work with.
We will list the stages of the software delivery pipeline using the DevOps methodology and the tools used on these stages:
- Configuration Management workflow to ensure ease and reliability of deploying new environments and building infrastructure as code. The development environments are packaged in Docker containers and can be easily provisioned using great automation tools like Chef, Puppet, Salt or Ansible. When all developers follow common approaches to configuration management, processes like transferring the project to another team or onboarding of a new team member go smoothly.
- Version Control Management to enable safe restoration of previous configuration should the need arise. Git is at the core of modern software development and the version control management tools like Github, Gitlab or BitBucket. We do not need to explain why this is essential for distributed software development or why an ability to roll back to the previous stable version of the code is invaluable.
- Code review process to ensure the new code is functional, complies with common conventions and does not break any of the already working functionality. We use Github and Gitlab for this purpose, as there is no need to reinvent the wheel.
- Continuous Integration and automated testing to exclude manual approvals and other bottlenecks in submitting, testing and building the code. The developers do not have the luxury of manually pushing their code commit through the testing. If the testing is successful, the new software version is built and pushed to production automatically. The tools like Jenkins, Gitlab CI and CircleCI make this happen.
- Continuous Delivery is the method of smooth delivery of new software builds to the customer, either by downloadable in-app updates or providing convenient installer packages. Once the new software release is successfully built, it should be seamlessly pushed to the end customers. The same Jenkins, Gitlab CI and CircleCI tools help us with this task.
- Monitoring of the ongoing processes and performance, as well as security. We do this using tools like Grafana, Prometheus, Nagios, Icinga, Carbon, Graphite, Zabbix, Amazon CloudWatch, Google StackDriver.
- Logging the information to provide easy audit, compliance checking and the ability to trace back the root of any problem. Elastic Stack (ElasticSearch, Logstash, Kibana) is the tool of the trade here, though some customers prefer FluentD.
- Smart alerting to ensure every issue is escalated to the most appropriate expert currently available and dealt with in a timely and efficient manner. For this purpose we use good old Nagios, Icinga, Zabbix, Google StackDriver, Amazon SNS, Nodeping or Elast Alert.
- Analytics to gain insights on the software performance, customer experience and the most preferable way of improvement. Discovering patterns and detecting anomalies helps locate the areas of impact and optimize the processes. Tools like Splunk, Sumo Logic or Sensu are of great helps with this.
- Messaging. The last but not the least important component of a convenient DevOps toolkit is RabbitMQ message broker. It accepts, stores and delivers multiple exchange types and cross-language messages from various ecosystem components, providing distributed deployment.
Using this toolkit allows us choosing the best configuration for each project and building an immutable infrastructure, minimizing the possible configuration drift and security breaches.
What DevOps tools do you consider must-have? Did we miss your favorite one? Please let us know in the comments below or share and let your friends join the discussion!