Automation and orchestration are key in any infrastructure setup. DevOps professionals need tools that can help them do their jobs more accurately and efficiently, but there isn’t one key to open all doors. According to a recent report from The New Stack, for example, more than 40 percent of survey respondents said an orchestration platform was the primary way they managed containers in their organization. However, “the actual products being used or planned for use were strongly influenced by a respondent’s stage of container adoption.”
Different organizations have different needs, and they use different DevOps tools to get the job done. I talked to some companies to learn more about various DevOps tools they use or recommend.
The Right Tool for the Task
There are many different software engineering approaches, and Amar Kapadia Senior Director, Product Marketing at Mirantis, breaks them down into the following four stages: continuous development, continuous integration and testing, continuous deployment, and continuous monitoring.
Different tools exist for these specific tasks, said Kapadia. For continuous development, there’s Git and Eclipse; for continuous Integration – Jenkins; and for continuous monitoring — a new class of application lifecycle management tools (ALM), such as New Relic.
Anything that provides automation of infrastructure setup is a great starting point, said Mike Fiedler, Director of Technical Operations at Datadog. Projects like Chef, Puppet, Ansible all provide the ability to treat “infrastructure as code,” bootstrapping hosts – whether they be cloud-based or hardware — in a repeatable, predictable fashion.
For monitoring, Fiedler said open source tools like Ganglia and Graphite are good, general purpose starter tools that can get any organization off the ground. In terms of build automation, he pointed at Jenkins, TeamCity, Travis CI, and CircleCI. And, as far as deployment is concerned, he said there are some good wrappers around executing remote commands, like Fabric, Capistrano, RunDeck. These also follow the model of automating some of the repeatable parts of a deployment pipeline with snippets of code.
Sam Guckenheimer, product owner and group product planner at Microsoft mentioned Spinnaker. This tool is hosted on GitHub and was originally developed by Netflix. According to the GitHub page, Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. Guckenheimer described Spinnaker as a very promising multi-cloud delivery platform.
Thomas Hatch, the creator of Salt and CTO of SaltStack suggested SaltStack (no surprises there). He added, however, that there are many great tools that can assist DevOps pros in doing their jobs more accurately and efficiently. Each team needs to find the tools that work best for their own use case.
Amit Nayar, Vice President of Engineering at Media Temple, agreed that the DevOps tools that a company or a team will choose will depend on the problems they are trying to solve.
He identified three important factors in choosing the right tools:
The tech stack largely determines the tools, as the tools a LAMP stack team chooses may vary greatly from those of a Windows/.NET-based team, for example.
The budget will determine whether or not a company will go with open source self-service tools vs. proprietary hosted-SaaS based tools, for example.
The deployment target is also a large factor in choosing DevOps tools in relation to whether a team is deploying applications to their own bare-metal/virtualized infrastructure vs. deploying to public cloud infrastructures such as AWS and Azure.
Nayar also provided a list of some of the DevOps tools they like at Media Temple:
Source code repositories with Git and GitHub
Continuous integration and deployment with Jenkins and RunDeck
Container technology with Docker
Infrastructure automation with tools like Puppet, Ansible, AWS CloudFormation/CodeDeploy, etc.
Monitoring with Nagios, Prometheus, Graphite, ELK logfile analysis stack, etc.
Almost all VictorOps users are practitioners and heavy users of DevOps tools, said Jason Hand, DevOps Evangelist & Incident & Alerting specialist at VictorOps. He shared the following list of popular tools used by their customers: Icinga, Nagios, Jira, Trello, Hubot, Slack, Jenkins, Graphite, RayGun, Takipi, New Relic, Puppet, Chef, GitHub, Cassandra, Ansible, Grafana, ElasticSearch, Logstash, and Kibana.
Application provisioning is where most people are right now, according to Greg Bruno, VP Engineering, Co-Founder at StackIQ. Puppet, Chef, Ansible, and Salt are very popular because they fit the majority of use cases. Automated server provisioning is the next logical step: Get the machines deployed and preconfigured to use Puppet and Chef, and then complete your application provisioning through those tools.
Nothing’s better than getting a list of DevOps tools used by some of the major player themselves. Which of these do you use, or which ones do you suggest?
Sign up to receive one free Linux tutorial each week for 22 weeks from Linux Foundation Training. Sign Up Now »