What is DevOps automation? (original) (raw)

DevOps automation takes two concepts—DevOps and automation—and uses them to complement the agile software development process.

DevOps incorporates continuous integration, continuous delivery, and continuous deployment (CI/CD) to help developers and IT operations efficiently and effectively build, test, and provide feedback during the process of delivering software solutions. DevOps is important for helping organizations to:

Automation uses technology to perform repetitive or tedious DevOps tasks so that humans don’t have to. Its purpose is to give those humans the ability to focus their time and effort on mission-critical activities. Automation is used in the design and development, deployment, and monitoring phases of the DevOps workflow.

DevOps automation optimizes the software development lifecycle (SDLC) and helps to achieve consistent configurations, improve the speed and quality of releases, and scale to meet changing needs.

There are DevOps tools for:

Adopting DevOps automation empowers teams to stop putting effort into repetitive and time-consuming tasks and instead focus on tasks that add business value. DevOps automation helps organizations to:

How does DevOps automation work?

Automation supports DevOps by streamlining its lifecycle, which consists of planning, coding, building, testing, packaging, releasing, operating, and monitoring.

Circle with text DevOps workflow with segments for planning, coding, building, testing, packaging, releasing, operating, monitoring, and planning

DevOps automation enables developers, IT operations, and security teams to collaborate throughout the DevOps lifecycle to define application and infrastructure requirements and to identify places for automation during the process of delivering software solutions.

For example, an automated software testing tool uses test scripts to validate that an application works as expected before releasing it to production. This type of tool is also capable of testing software beyond its normal operating limits and determining its robustness and error-handling when it encounters unexpected user interactions or invalid input.

DevOps automation is also used to proactively monitor applications after they go live. Performance issues are reported to DevOps teams based on pre-defined thresholds, which helps them to prioritize when and how to respond.

Besides testing and continuous monitoring, DevOps processes that can be automated include provisioning, CI/CD, deployment, and infrastructure management.

There’s no single tool that does it all when it comes to DevOps automation; however, selecting specific tools does enable infrastructure customization. Tools that help with DevOps automation include:

Best practices for DevOps automation

While automation goes a long way in reducing human error throughout the DevOps lifecycle, it may not be possible to automate every aspect. Best practices for DevOps automation include: