Anyone who understands DevOps at all will tell you that this approach requires much more than merely buying a new set of tools. Being successful with DevOps requires a true cultural transformation, and that takes a lot more work than just deploying some new applications.
However, if you’re going to be successful with DevOps, you probably also need to invest in some new software.
If your organization is currently in the midst of a DevOps initiative, you’re not alone. The Interop 2018 State of DevOps report found that 33% of the enterprises surveyed had already implemented DevOps and another 35% planned to do so within a year. Only 9% said they had no plans to adopt the approach.
The benefits of DevOps are clear. A Frost & Sullivan report titled "How Software is Helping Business Executives Achieve Their KPIs," which was sponsored by CA Technologies, found, "Three out of four executives interviewed believe DevOps practices help them get new apps to market faster and improve the quality and security of their applications."
At its heart, DevOps is about encouraging closer cooperation between developers and operations staff. It’s about applying the principles of agile and lean development to infrastructure management. It’s about speeding up IT to help the business win. And it relies on automation to help make IT more efficient and responsive to customers.
Achieving all those goals requires some significant changes within IT department. And implementing those changes becomes far easier when organizations have the right tooling in place.
Exactly what kinds of tooling do DevOps teams need? The following slides highlight nine types of software that enable DevOps teams to transform their culture and processes to help their organizations win.
Containerization and Container Orchestration
Similar to virtualization, container technology improves application portability by packaging an application together with all of its dependencies. Containers make it easier for developers to deploy applications or to move them from development and test environments into production or from one cloud computing environment to another.
According to the DORA 2018 Accelerate: State of DevOps Report, 36% of DevOps teams surveyed were using containers in development, and 31% were using them in production. However, elite performers were 1.3 times more likely than other DevOps teams to use containers.
Similarly, in the Frost & Sullivan survey, 99% of high-performing application development teams were using containers. In addition, 77% of those surveyed said containers helped them get new apps to market more quickly, and 78% agreed that containers make it easier to quickly build apps more consistently and with lower costs.
While containers aren't necessary for DevOps, high-performing teams tend to use them because they help speed up development and deployment.
For some time, the open source Docker project has been the leader in containerization, and the Kubernetes container orchestration tool is becoming increasingly popular. Other container tools include Rancher, CoreOS and Mesosphere DC/OS.
Continuous integration (CI) and continuous delivery (CD) are core elements of the DevOps approach. Continuous integration means that developers are constantly (usually several times a day) uploading their code into the mainline and then running a build to check for errors. It helps to find bugs early in the development process and improve code quality.
Continuous delivery means that an organization’s code is always ready to be released to customers. The CD acronym can also refer to continuous deployment, which means that code is automatically released as soon as it passes through testing.
CI/CD tools manage the software development pipeline, making it easier to achieve continuous integration, continuous delivery and, ultimately, continuous deployment. Some are also integrated with source code management tools. Popular CI and/or CD tools include Jenkins, GitLab, Circle CI, BitBucket Pipelines, Bamboo, Codeship, JFrog and Travis CI.
Configuration management tools automate the process of deploying, tracking and controlling changes to an organization's servers. These are some of the most commonly used tools for automating the Ops half of DevOps, and like containers, they are particularly popular among the most successful DevOps teams. In fact, according to the Puppet 2018 State of DevOps Report, 53% of "highly evolved" DevOps teams use configuration management software. However, it should also be noted that Puppet, which sponsored the survey, offers configuration management tools. Other popular configuration management products include Chef, Ansible, SaltStack and CFEngine.
Build automation tools are an integral part of continuous integration. Typically, after uploading their code to the main branch of their source code repository, developers will run an automated build to compile their code and test it. Many CI/CD servers include build automation capabilities, but there are also many standalone build automation tools available. Some of the most popular include Maven, Gradle, Ant, Cake and Grunt.
Source Code Management
Most development teams use a source code management system, also known as version control or revision control software, as a repository for the code they are currently writing or editing. For DevOps teams, these tools are an essential part of collaboration and continuous integration.
When it comes to source code management, organizations can choose to host their own repositories or use a hosted service. Currently, the most popular source code management system is Git, which is used by the hosting services GitHub and GitLab. Other popular source code management systems and services include Subversion, Microsoft Team Foundation Server, Mercurial, CollabNET VersionOne and IBM Rational ClearCase.
Operations teams typically use a variety of monitoring tools to keep tabs on the performance of hardware and applications. DevOps teams often find that a unified monitoring solution can help them improve their uptime and mean time to resolution. In fact, the DORA report “found that a comprehensive monitoring and observability solution positively contributes to continuous delivery and that those who have one were 1.3 times more likely to be in the elite-performing group.”
Collaboration platforms are particularly helpful for geographically dispersed DevOps teams. These tools generally include messaging/chat, work sharing, project tracking and scheduling capabilities, and some also include features specifically designed for agile development or DevOps environments. Some of the most popular collaboration tools for DevOps teams include Slack, JIRA, Confluence, Microsoft Teams, Pivotal Tracker and Basecamp.
Along with continuous integration, continuous delivery and continuous deployment, DevOps also embraces continuous testing, the practice of automating software tests as part of the application delivery pipeline. To that end, many DevOps teams deploy testing automation platforms and/or test management solutions, or they use CI/CD solutions with integrated testing capabilities. Some of the most popular DevOps testing tools include Zephyr, Selenium, QMetry Automation Studio, IBM Rational Functional Tester, UFT, Tricentis Tosca, TestComplete and Sauce Labs.
Many organizations that have already embraced DevOps are now expanding into DevSecOps. This approach encourages cooperation among development, operations and the cybersecurity team, and it makes everyone in the organization responsible for security. The Frost & Sullivan survey found that 80% of enterprise executives surveyed said continuous app security testing and DevSecOps are critical to modern application architecture. DevSecOps is particularly popular among high-performing teams. The Puppet report stated, “Highly evolved organizations are 24 times more likely to always automate security policy configurations compared to the least evolved organizations.”Cynthia Harvey is a freelance writer and editor based in the Detroit area. She has been covering the technology industry for more than fifteen years. View Full Bio