At its core, the DevOps ecosystem is the idea that tools should be helping you in your journey from requirements to production. In order to help you along your DevOps path, we’ve categorized the different classes of tools out there. With each class, we have included a list of examples of popular solutions. This list is intended to be a starting point to help guide you, as opposed to an exhaustive list of everything available. Feel free to save this graphic as a reminder, and share it with your networks!
Below the graphic, you’ll find helpful descriptions of each of the classes.
It’s important to remember that many tools attempt to provide more than one piece of the pie and there is definitely overlap in the defined classes – in these cases, we have tried to categorize the best fits. These tools play well with others, so combining them can help you produce a streamlined production focused ecosystem.
Scripts are the connector pieces that bring the disparate tools and classes together into a more coherent whole. Scripts also help with automated and complicated build, deployment, and automation tasks. Scripting is incredibly flexible and with it, you can do almost anything.
Continuous Integration/Delivery Tools are almost the enterprise level package in the DevOps world. They try to do all of the things. They schedule, gather results, kick-off scripts/processes/tools, integrate with other tools, and report on success. CI/CD tools can often do much of what you need, but as with most generalists, sometimes you have to add another tool that provides specialized capabilities.
Build tools are an essential foundational piece of DevOps. With more developers working on a code-base, checking in code, and moving your product/project forward, it’s essential there be a tool that can automate bringing together the right dependencies and generating an installable compiled package.
Source Code Management Tools (Code Repositories)
With the distributed nature of teams in the DevOps world, powerful, enabling source code management tools are essential. These tools help to manage multiple simultaneous update streams for the codebase and ensure code coherency through branching and merging mechanisms.
Deploy Tools /Configuration as Code
With the levels of automation that are becoming standard in the DevOps ecosystem, it makes sense that there be an automated capability for code to be deployed into your desired environments. It’s necessary for automation to happen, but may also be desired for manual testing or UAT steps. Deployment tools need to be able to integrate with your virtualization solutions as well.
Gone are the days of setting up a single server to run multiple applications/services. With the concept that each application or service you wish to deploy having a different optimal server configuration grew the idea that every application could run in its own independent container. As this concept grew, it greatly empowered testers and developers who worked best in their own walled environment. Being able to tear down, alter, and redeploy these environments at will has added significant flexibility to DevOps.
Reports, Statistics, and Analytics
Many of the tools in these lists have their own integrated reports and reporting capability, but you can add functionality and flexibility by adding your own report engine or plugin. Without a strong capability to monitor the health of your code, servers, interactions, etc the speed and safety that is attainable with DevOps practices will be lost. An integrated monitoring system that can bring you real-time statistics is essential.
Test automation is one of the biggest topics in DevOps with numerous threads, intents, and tool systems. The number of tools and their target is large and deserving of its own article.). Any automation solutions/tools that you decide to include in your solution should be capable of integrating with the other tools in your DevOps ecosphere.
Static Code Analysis Tools
One of the tools that can help you determine code quality and health is static code analysis. By choosing standards for the way your code should be written and then using a tool to assess this adherence, you can automatically remove a plethora of issues before they ever get put in front of a tester or user.
Do you have a favourite combination of tools to get your DevOps up and running? Seeing all these and looking for a little help on getting it up and running? We’re here to help. Reach out and we can put our team of testing experts to work for you.
Check out these other PLATO Testing articles on the world of DevOps:
Will Continuous Integration (CI) and DevOps Mean the End of the Traditional QA Skillset?
An Introduction to Continuous Integration