DevOps is a rapidly-growing approach to software management, development, and release. Adoption has nearly doubled year-over-year from 2017 to 2018 and Google searches for “DevOps” has more than quadrupled in the last five years.
As more companies start researching and implementing DevOps, there’s an increasing focus on the software and tools needed to enable the most effective DevOps processes. There are plenty of options available that offer a range of benefits, from reducing manual tasks and limiting errors to speeding up software delivery timeframes and improving visibility. Deciding what software is right for you requires a closer look at what types of software are available and how they play into your business needs.
Major types and categories of DevOps software you could choose from include:
- Functionality-based software with a narrower amount of highly-specialized capabilities, such as a source control management system, artifact repository, or test tool
- Stage-based software, including build software, deployment software, and release software
- Open source and commercial software
- Enterprise-grade DevOps platforms
Factors that Influence the DevOps Software You Need
If things were working perfectly, it’s likely you wouldn’t be shifting to DevOps or looking for a new tool. Your first step, then, is to determine the key issues you’re facing today and what you want to achieve by adopting DevOps.
Your problems and goals often point directly to the type of DevOps software you need. If you’re struggling with errors in development, you may benefit from software that focuses on automation and testing. Such software will reduce manual tasks and limit the potential for human error. If outages are a concern, you may be best served by software that supports containers that better isolates errors, allowing the rest of the system to continue functioning.
Below are a few types of software that align with common problems businesses experience:
Problem: Lengthy software delivery process
Software Solution: Continuous integration and continuous delivery tools
Problem: Time-consuming, manual, repeatable processes
Software Solution: Automation software
Problem: Difficulty diagnosing problems and identifying outage causes
Software Solution: Pipeline management and visibility tools
Problem: Complicated releases and difficulty with release orchestration
Software solution: Release management tools
Many companies experience these and other problems simultaneously. If you’re in the same position, consider looking for DevOps software that incorporates tools to solve multiple problems. Often considered platforms because they provide a foundation you can build processes and toolsets on, DevOps platforms address multiple problems while reducing tool sprawl and the cost of purchasing multiple solutions.
Process Stage Improvements
Many DevOps tools are positioned to help a specific stage of the delivery lifecycle – the three pillar stages being build, deploy and release. You can narrow down your software options by focusing on the stage where your IT team needs to improve the most. For example, Jenkins focuses on the build stage, GoCD helps simplify deployments, whereas Spinnaker focuses on the release phase.
For issues that cut across the development lifecycle, a DevOps platform may be your best bet. Similar to when you have multiple key problems, DevOps platforms span multiple stages of the software delivery lifecycle, helping you improve and integrate each stage into a more cohesive delivery pipeline.
However, even a DevOps platform is unlikely to fulfill all your needs on its own. Writing and compiling code and testing may require separate tools, for instance. It’s also common for IT teams to have favorite tools that they want to continue using regardless of selecting a new DevOps platform. Again, Jenkins is a good example of a tool many DevOps platforms could replace, but that teams may want to continue using. In this case, make sure you select a platform that includes integrations so you can continue to use the tools your team is already comfortable with.
Budgetary Limitations and Support Needs
The shift to DevOps requires a close look at your budget as well as the level of functionality and support you’ll need. The ultimate classification that these considerations lead to is whether you’ll be best served by open source tools or commercial DevOps software.
Open source tools are free options that are developed and supported by a community of volunteers. Commercial software is created, maintained and supported by a company. Commercial tools come with a price tag, but they also typically offer a richer set of features and readily available support. For companies that have a dedicated budget and need a full set of features to solve multiple problems or span several stages of the software delivery lifecycle, a commercial option may be the best choice. Businesses without financial resources, on the other hand, typically opt for open source tools that are specialized for the lifecycle stage they’re struggling with most.
It’s important to note that the choice between open source and commercial isn’t universal or prohibitory. Your budgetary freedom (or limitations) and support requirements can guide your choice in initial investment, but remember that you can build on those choices at any time. You can combine a variety of DevOps tools to best meet your needs.
Software Improves DevOps, But It Doesn’t Enable It
Regardless of the type of DevOps software you choose, remember that the software doesn’t create optimal processes. DevOps itself is a mindset and structure for bringing your teams together to create a more cohesive, effective processes that improves software development and delivery. DevOps software helps solve problems in those processes, enabling them to be more efficient so your team can do more. Choose the type of software that’s most likely to make that a reality.