The Ultimate DevOps Tools Ecosystem Tutorial - Part 1
With the development process “shifting left”, DevOps is becoming a crucial part of any software product or service. Therefore, it’s no surprise that the number of tools for DevOps keeps growing, to answer all of their working needs.
But the existence of so many DevOps tools can be confusing. To assist in organizing and choosing the right tools for the right needs, we’re going to cover the top tools over the upcoming weeks and their pros and cons. The tools will be divided into the five stages of the work cycle: Plan, Develop, Test, Release and Operate. We will cover a different section each time, for a total of six blog posts (including this introductory one).
For your convenience, you can see the complete DevOps Ecosystem infographic here:
What does each stage mean?
Planning is the initial stage, and it covers the first steps of project management. The project and product ideas are presented and analyzed, in groups, alone or on whiteboards. The developer, team and organization decide what they want and how they want it and assign tasks to developers, QA engineers, product managers, etc. This stage requires lots of analysis of problems and solutions, collaboration between team members and the ability to capture and track all that is being planned.
Update: You can read part 2 about the recommended tools for the Plan stage here.
Developing is the stage where the ideas from planning are executed into code, or in other words - the ideas come to life as a product. This stage requires software configuration management, repository management and build tools, as well as automated Continuous Integration (CI) tools for incorporating this stage with the following ones.
Update: You can read part 3 about the recommended tools for the Develop stage here.
A crucial part that examines the product and service and makes sure they work in real time and under different conditions, even extreme ones sometimes. This stage requires many different kinds of tests, mainly functional tests, performance or load tests and service virtualization tests. It’s also important to test compatibility and integrations with 3rd party services.The data from the tests needs to be managed and analyzed in rich reports, for improving the product according to test results.
Update: You can read part 4 about the recommended tools for the Develop stage here.
Once a stage that stood out on its own and caused many a night with no sleep for developers, now the release stage is becoming agile and integrating with the Continuous Delivery process. Therefore, the discussion of this part can’t revolve only around tools, but rather needs to discuss methodologies as well. Regarding tools, this stage requires deployment tools, containers and release tools, as well as configuration management and abilities to work in the Cloud. The cloud provides us the foundation that we all use to achieve scalability.
Update: You can read part 5 about the recommended tools for the Release stage here.
We now have a working product. But how can we maximize the features we’ve planned, developed, tested and released? This is what this stage is for. By implementing the best UX is a big part of this, monitoring infrastructure, APMs and aggregators, and analyzing Business Intelligence (BI), this stage ensures our users get the most out of the product and can use it error-free.
Update: You can read part 6 about the recommended tools for the Operate stage here.
Obviously this work cycle isn’t one-directional. We might use tools from a certain stage, move on to the next, go back a stage, jump ahead two stages and so on. Essentially it all comes down to a feedback loop, you plan > develop > test fails > develop > test pass > release > customer satisfaction through measurement tools like google analytics or A/B testing > re-discuss the same feature to get better satisfaction out of the product > develop etc. etc. But the most important part is that you cover all stages, as we will in the upcoming weeks.
So which tools do you use for each stage? We want to hear from you, so you’re welcome to write your recommendations for tools in the comments section, and we might include your quote in the next posts!