DevOps automation requires putting repetitive and manual DevOps tasks on autopilot. This automation can be applied to any one of the eight phases of the DevOps infinity loop, or DevOps software development life cycle.
The eight phases of the DevOps infinity loop include software planning, coding, building, and testing as part of the software development side of the loop, while the release, deployment, operation, and monitoring encompass the IT operations side of the loop.
What Is DevOps Automation?
What Is DevOps Automation?
“DevOps and DevOps automation are two sides of the same coin and it’s the evolution of DevOps,” Mithun Dhar, vice president and general manager of Red Hat’s developer programs and tools, told Built In.
DevOps relies on integrating systems. Companies started thinking about how to make it better and the answer was adding automation, Dhar said, pointing to the ways that it can help remove human error.
Today, 74 percent of companies surveyed in Redgate’s State of Database DevOps 2021 report are dabbling in DevOps, which combines software development and IT operations under one team on a per project or per application basis, up from 47 percent five years earlier. And 26 percent of survey respondents have fully adopted DevOps for all of their projects, up from 12 percent over the same time period.
When it comes to DevOps automation for frequent repetitive tasks, teams that are highly evolved tend to do it most, according to Puppet’s 2021 State of DevOps Report. Some of the traits of a highly evolved team include reusing testing and deployment patterns for building applications or services.
Where to Apply DevOps Automation?
Software testing is often one of the first places to receive DevOps automation, Stephen Elliot, group vice president, I&O, cloud operations and DevOps for IDC, told Built In.
Where to Start With Automation in DevOps
- Software testing
- Remediation (e.g. changing passwords, server allocation)
- Development functions (e.g. soliciting stakeholder information, building code)
- Operational functions (e.g. monitoring applications while in production)
- Application release
In other cases, it’s used for remediation to handle recurring problems like changing passwords or allocating more servers at the end of each quarter when thousands of salespeople are simultaneously pinging computer systems, Elliot added.
“Every single one of these eight phases has significant components where it can be automated.”
“There’s a lot of ways where automation as a theme can be applied across different development functions, as well as different operational functions,” Elliot noted.
Application release is also increasingly becoming automated as DevOps teams turn to the practice of continuously delivering (CD) and continuously integrating (CI) their software development lifecycle.
“Every single one of these eight phases has significant components where it can be automated,” Dhar said.
DevOps Automation Best Practices
DevOps automation is especially important during the early phase of software development because it’s easier to fix bugs and tweaks when they’re in the early stage of development versus production, said Elliot.
Best Practices for DevOps Automation
- Accurately configure Continuous Integration (CI) and Continuous Delivery (CD)
- Aim to deploy DevOps automation early in the software development lifecycle
- Infuse security automation into risk management, governance and compliance
- Remember engineers are still required for oversight and intervention, so keep them updated
- Evaluate the frequency of software releases to determine benefits
Accurately configuring your CI and CD can greatly improve the automatic release of your applications, he advised.
Automating infrastructure provisioning can address issues like flagging IT problems, notifying the IT service desk and keeping customers updated on the status of the problem, Elliot said.
Security architecture automation can help remove vulnerabilities in risk management, governance and compliance. These are three big areas companies want to tackle with DevOps automation, said Elliot.
“DevOps is not a one size fits all,” cautioned Parag Dave, a senior manager of product management at Red Hat.
A company may have some applications that don’t need to be automatically released every day or even every month, so it may not be worth the extra work to automate DevOps for applications that are only released intermittently, he added.
However, Elliot has a different view on the need for companies to adopt DevOps automation.
“Automation is a strategy that every IT shop needs to take, regardless of their discipline. If they’re not, they’re falling behind,” Elliot said. “At the end of the day, companies have to think about automation as a key capability because it’s going to drive speed and resilience for their business.”
15 DevOps Automation Tools and Frameworks
- Apache Maven Project
- Buddy
- Flux
- GitLab’s GitOps
- Gradle
- Harness
- HashiCorp’s Vagrant
- Jenkins
- Microsoft Azure Pipeline
- Octopus Deploy
- Opsera
- Perforce’s Puppet
- Progress’ Chef
- Red Hat’s Ansible
- Shoreline
Source: Spiceworks.com, TechRepublic.com, Built In research
DevOps Automation Benefits and Challenges
Automation Increases Speed, Efficiency, and Reliability
DevOps aims to improve communication and collaboration during the lifecycle of software development and with automation, it can greatly increase the speed, efficiency and reliability of software development and deployment, compared to traditional software development where development teams sit in one silo and the IT operations team in another.
Speed is one of the top three benefits of DevOps automation because it can make each of the eight phases of the infinity loop faster, said Red Hat’s Dave.
When processes are faster, that usually means more efficiency which is another benefit, he added.
Reliability kicks in because DevOps automation requires companies to make declarative statements, such as, you have all your automated security scans in the right place or have all of your configurations set up correctly.
“As you automate, you’ll remove manual errors and remove dependency on individuals,” Dhar said. This can be a cost savings, since it allows companies to use automation to handle mundane software development tasks that otherwise call for hiring an IT worker.
Automation Can Be a Tough Transition and Require a Big Budget
Challenges exist in achieving an automated DevOps practice, however, and some companies may find the transition difficult.
DevOps requires a corporate mind shift and cultural change to bring two previously separate groups into one team that has a broad alignment, let alone one that can implement automation.
“These are things a company needs to build an appetite for. It’s gonna get a little worse before it gets better.”
“Companies that have a rigid process in place may say changing one thing means changing 300 things downstream,” Dhar said. “These are things a company needs to build an appetite for. It’s gonna get a little worse before it gets better.”
Companies also need a healthy budget to pay for DevOps automation specialists because resources are scarce in this relatively new field, he added.
There’s also a wide range of DevOps automation technologies to choose from and that can seem daunting to address, Dhar told Built In.