What Is DevOps?

DevOps is a philosophy that consolidates development teams and IT operations in order to facilitate a collaborative effort throughout the software development lifecycle. DevOps helps organizations maximize productivity and performance while reducing the time from design to deployment. 

Key elements of DevOps practices

Continuous delivery / continuous integration (CI/CD)

CI/CD supports the objective of reducing the time required to update or deliver software while improving quality. 

  • Continuous integration improves efficiency by allowing team members to work on modules independently before integrating components in a common build area.
  • Continuous deployment ensures quality by testing builds in a production environment.

See our continuous delivery solutions


Automating processes

Automation can reduce human error and improve the responsiveness of the development environment. Automation tools:

  • Standardize processes for easy replication
  • Reduce costs on maintenance, upgrades, or capital expenditure 
  • Shorten lifecycle of software development by reducing implementation time
  • Improve reliability and reusability of components

Establishing DevOps
culture

Combining your development and IT operations teams into a powerful DevOps team requires a cultural shift. Start by: 

  • Facilitating increased communication between teams
  • Introducing smaller projects to offer opportunities for collaboration 
  • Identifying key players to become DevOps engineers
  • Identifying tools that serve as a shared source of objective data

Measuring DevOps

Key performance indicators can help measure the success of your DevOps efforts. The following metrics provide valuable insight: 

  • Deployment frequency 
  • Change failure rate
  • Mean Time to Recovery (MTTR)
  • Lead time 
  • Change volume
  • Defect escape rate 
  • Customer tickets

What is the difference between DevOps and Agile?

  • DevOps is an approach that focuses on integration and collaboration between development and IT teams to shorten the development and deployment cycle of products.
  • Agile software development is a technique that focuses on frequent incremental updating and development of elements of software that come together to contribute to the evolution of the product.

What types of tools are used in DevOps?

Build server

A build server is an example of an automation tool, and allows code in the source code repository to be compiled into executable code base. Popular examples include Jenkins, SonarQube, and Artifactory.


Source code repository

A source code repository is a key element of continuous integration, and serves as a place where developers can manage various versions of code and make code changes without affecting each other's work. Options for source code repository tools include Git, Cloudforce, Bitbucket, and Subversion.


Configuration management 

Configuration management establishes and maintains the quality and consistency of the requirements, functional attributes, and properties of IT infrastructure. Puppet, Ansible, and Chef are all examples of configuration management tools that are widely used. 


Virtual infrastructure 

Virtual infrastructures are cloud-based services that offer infrastructure or platform as a service (PaaS), such as Amazon Web Services (AWS) or Microsoft Azure. When used in conjunction with automation tools, virtual infrastructures support DevOps by allowing system administrators to test new code automatically without human interaction. 

AWS monitoring solutions

Microsoft Azure monitoring solutions


Containers 

Linux containers are virtualization components that isolate certain workloads or applications from the host system during the development process. Docker, Kubernetes, ElasticBox and CoreOs are all examples of vendors and tools that serve this purpose. 

Docker monitoring solutions

Kubernetes monitoring solutions