DevOps is a term for a group of concepts that, while not all new, have catalyzed into a movement and are rapidly spreading throughout the technical community.  Like any new and popular term, people may have confused and sometimes contradictory impressions of what it is.  Here’s my take on how DevOps can be usefully defined; I propose this definition as a standard framework to more clearly discuss the various areas DevOps covers. Like “Quality” or “Agile,” DevOps is a large enough concept that it requires some nuance to fully understand.

Benefits of DevOps

Speed. DevOps practices let you move at the velocity you need to innovate faster, adapt to changing markets better, and become more efficient at driving business results.

Rapid delivery. When you increase the pace of releases, you can improve your product faster and build competitive advantage.

Reliability. DevOps practices like continuous integration and continuous delivery can ensure the quality of application updates and infrastructure changes so you can reliably deliver at a more rapid pace while maintaining an optimum experience for end users.

Improved collaboration. Under a DevOps model, developers and operations teams collaborate closely, share responsibilities, and combine their workflows. This reduces inefficiencies and saves time.

Security. You can adopt a DevOps model without sacrificing security by using automated, integrated security testing tools.

How to find the right DevOps tools

DevOps practices rely on effective tools to help teams rapidly and reliably deploy and innovate for their customers. These tools should automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high-velocity pace that is DevOps.

The DevOps workflow consists of phases:

Planning the next iteration of the product’s development

Building the code

Testing and deploying to the production environment

Delivering product updates

Monitoring and logging software performance

Gathering customer feedback

DevOps skills

DevOps is often said to be more of a philosophy or collaborative IT culture, rather than a strictly defined job description or skill set. Because the area is so broad, DevOps positions suit IT generalists better than specialists.

Many DevOps job listings call for container, cloud and CI/CD knowledge, as well as soft skills. A DevOps engineer might also need to change processes and solve organizational problems to achieve business outcomes.

DevOps and the application lifecycle

DevOps influences the application lifecycle throughout its plan, develop, deliver, and operate phases. Each phase relies on the others, and the phases are not role-specific. In a true DevOps culture, each role is involved in each phase to some extent.


Continuous integration and continuous delivery

DevOps practices such as CI/CD let DevOps teams deliver rapidly, safely, and reliably. CI is a software development practice where developers regularly merge their code changes into a central repository, followed by automated builds and tests. The key goals of CI are to find and fix bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates. CD expands on CI by deploying all code changes to a testing or production environment after the build stage.

Monitoring and logging

By capturing and analyzing logs generated by applications, DevOps teams can better understand how software changes or updates may affect users. 

Comments

Popular posts from this blog