DevOps Code ClearCase Logo
   HOME

TheInfoList



OR:

DevOps is the integration and automation of the
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
and
information technology operations Data center management is the collection of tasks performed by those responsible for managing ongoing operation of a data center. This includes ''Business service management'' and planning for the future. Historically, "data center management" w ...
. DevOps encompasses necessary tasks of
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
and can lead to shortening development time and improving the development life cycle. According to Neal Ford, DevOps, particularly through
continuous delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software with greater speed ...
, employs the "Bring the pain forward" principle, tackling tough tasks early, fostering automation and swift issue detection.
Software programmer A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming. The professional titles ''software developer'' and ''software engineer'' are used for jobs that require a progr ...
s and
architects An architect is a person who plans, designs, and oversees the construction of buildings. To practice architecture means to provide services in connection with the design of buildings and the space within the site surrounding the buildings that h ...
should use
fitness function A fitness function is a particular type of objective or cost function that is used to summarize, as a single figure of merit, how close a given candidate solution is to achieving the set aims. It is an important component of evolutionary algorit ...
s to keep their software in check. Although debated, DevOps is characterized by key principles: shared ownership, workflow automation, and rapid feedback. From an academic perspective, Len Bass, Ingo Weber, and Liming Zhu—three computer science researchers from the
CSIRO The Commonwealth Scientific and Industrial Research Organisation (CSIRO) is an Australian Government agency that is responsible for scientific research and its commercial and industrial applications. CSIRO works with leading organisations arou ...
and the
Software Engineering Institute Software Engineering Institute (SEI) is a Federally funded research and development centers, federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the Uni ...
—suggested defining DevOps as "a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality". However, the term is used in multiple contexts. At its most successful, DevOps is a combination of specific practices, culture change, and tools.


History

Proposals to combine software development methodologies with deployment and operations concepts began to appear in the late 80s and early 90s. In 2009, the first conference named DevOps Days was held in
Ghent Ghent ( ; ; historically known as ''Gaunt'' in English) is a City status in Belgium, city and a Municipalities of Belgium, municipality in the Flemish Region of Belgium. It is the capital and largest city of the Provinces of Belgium, province ...
, Belgium. The conference was founded by Belgian consultant, project manager and agile practitioner Patrick Debois. The conference has now spread to other countries. In 2012, a report called "State of DevOps" was first published by Alanna Brown at Puppet Labs. As of 2014, the annual State of DevOps report was published by Nicole Forsgren, Gene Kim, Jez Humble and others. They stated that the adoption of DevOps was accelerating. Also in 2014, Lisa Crispin and Janet Gregory wrote the book More Agile Testing, containing a chapter on testing and DevOps. In 2016, the DORA metrics for throughput (deployment frequency, lead time for changes), and stability (mean time to recover, change failure rate) were published in the State of DevOps report. However, the research methodology and metrics were criticized by experts. In response to these criticisms, the 2023 State of DevOps report published changes that updated the stability metric "mean time to recover" to "failed deployment recovery time" acknowledging the confusion the former metric has caused.


Relevant metrics

DevOps Research and Assessment (DORA) has developed a series of metrics which are intended to measure software development efficiency and reliability. These metrics include: * Deployment Frequency: Time between code deployments. * Mean Lead Time for Changes: Time between code commit and deployment. * Change Failure Rate: Percentage of deployments causing production issues. * Failed Deployment Recovery Time (formerly Mean Time To Recover) * Reliability (added in 2021): Measures operational performance, focusing on availability and adherence to user expectations.


Relationship to other approaches

Many of the ideas fundamental to DevOps practices are inspired by, or mirror, other well known practices such as Lean and Deming's Plan-Do-Check-Act cycle, through to
The Toyota Way The Toyota Way is a set of principles defining the organizational culture of Toyota Motor Corporation. The company formalized the Toyota Way in 2001, after decades of academic research into the Toyota Production System and its implications for le ...
and the Agile approach of breaking down components and batch sizes. Contrary to the "top-down" prescriptive approach and rigid framework of
ITIL ITIL (previously and also known as Information Technology Infrastructure Library) is a framework with a set of practices (previously processes) for IT activities such as IT service management (ITSM) and IT asset management (ITAM) that focus ...
in the 1990s, DevOps is "bottom-up" and flexible, having been created by software engineers for their own needs.


Platform engineering

Platform engineering is an emerging discipline within software engineering that supports DevOps by building and maintaining internal developer platforms (IDPs). These platforms provide standardized tools and reusable components—such as CI/CD pipelines, infrastructure provisioning, observability, and security controls—to streamline software delivery and reduce the cognitive load on developers. The goal is to enable self-service capabilities, improve productivity, and ensure consistency across development and operations teams.


Agile

The motivations for what has become modern DevOps and several standard DevOps practices such as automated build and test,
continuous integration Continuous integration (CI) is the practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state. Typically, developers Merge (version control), merge changes to an Branching (revisio ...
, and
continuous delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software with greater speed ...
originated in the Agile world, which dates (informally) to the 1990s, and formally to 2001. Agile development teams using methods such as
extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
couldn't "satisfy the customer through early and continuous delivery of valuable software" unless they took responsibility for operations and infrastructure for their applications, automating much of that work. Because Scrum emerged as the dominant Agile framework in the early 2000s and it omitted the engineering practices that were part of many Agile teams, the movement to automate operations and infrastructure functions splintered from Agile and expanded into what has become modern DevOps. Today, DevOps focuses on the deployment of developed software, whether it is developed using Agile oriented methodologies or other methodologies.


ArchOps

ArchOps presents an extension for DevOps practice, starting from
software architecture Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
artifacts, instead of source code, for operation deployment. ArchOps states that architectural models are first-class entities in software development, deployment, and operations.


Continuous Integration and Delivery (CI/CD)

Automation is a core principle for achieving DevOps success and CI/CD is a critical component. Plus, improved collaboration and communication between and within teams helps achieve faster
time to market In commerce, time to market (TTM) is the length of time it takes from a product being conceived until its being available for sale. The reason that time to market is so important is that being late erodes the addressable market into which produ ...
, with reduced risks.


Mobile DevOps

Mobile DevOps is a set of practices that applies the principles of DevOps specifically to the development of mobile applications. Traditional DevOps focuses on streamlining the
software development process In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or s ...
in general, but mobile development has its own unique challenges that require a tailored approach. Mobile DevOps is not simply as a branch of DevOps specific to mobile app development, instead an extension and reinterpretation of the DevOps philosophy due to very specific requirements of the mobile world.


Site-reliability engineering

In 2003,
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
developed site reliability engineering (SRE), an approach for releasing new features continuously into large-scale high-availability systems while maintaining high-quality end-user experience. While SRE predates the development of DevOps, they are generally viewed as being related to each other. Some of the original authors of the discipline consider SRE as an implementation of DevOps.


Toyota production system, lean thinking, kaizen

Toyota production system, also known under the acronym TPS, was the inspiration for
lean thinking Lean thinking is a management framework made up of a philosophy, practices and principles which aim to help practitioners improve efficiency and the quality of work. Lean thinking encourages whole organisation participation. The goal is to organis ...
with its focus on
continuous improvement A continual improvement process, also often called a continuous improvement process (abbreviated as CIP or CI), is an ongoing effort to improve products, services, or processes. These efforts can seek " incremental" improvement over time or "brea ...
,
kaizen is a Japanese concept in business studies which asserts that significant positive results may be achieved due the cumulative effect of many, often small (and even trivial), improvements to all aspects of a company's operations. Kaizen is put ...
, flow and small batches. The andon cord principle to create fast feedback, swarm and solve problems stems from TPS.


DevSecOps, shifting security left

''DevSecOps'' is an augmentation of DevOps to allow for security practices to be integrated into the DevOps approach. Contrary to a traditional centralized security team model, each delivery team is empowered to factor in the correct security controls into their software delivery. Security practices and testing are performed earlier in the development lifecycle, hence the term " shift left". Security is tested in three main areas: static, software composition, and dynamic. Checking software statically via
static application security testing Static may refer to: Places *Static Nunatak, in Antarctica *Static, Kentucky and Tennessee, U.S. *Static Peak, a mountain in Wyoming, U.S. **Static Peak Divide, a mountain pass near the peak Science and technology Physics *Static electricity, a n ...
(SAST) is
white-box testing White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality ...
with special focus on security. Depending on the programming language, different tools are needed to do such static code analysis. The software composition is analyzed, especially libraries, and the version of each component is checked against vulnerability lists published by CERT and other expert groups. When giving software to clients, library licenses and their match to the license of the software distributed are in focus, especially
copyleft Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, ''freedoms'' refers to the use of the work for any purpose, ...
licenses. In dynamic testing, also called
black-box testing Black-box testing, sometimes referred to as specification-based testing, is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applie ...
, software is tested without knowing its inner functions. In DevSecOps this practice may be referred to as dynamic application security testing (DAST) or penetration testing. The goal is early detection of defects including
cross-site scripting Cross-site scripting (XSS) is a type of security vulnerability that can be found in some web applications. XSS attacks enable attackers to inject client-side scripts into web pages viewed by other users. A cross-site scripting vulnerability may be ...
and
SQL injection In computing, SQL injection is a code injection technique used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker). SQL injec ...
vulnerabilities. Threat types are published by the
open web application security project The Open Worldwide Application Security Project (formerly Open Web Application Security Project) (OWASP) is an online community that produces freely available articles, methodologies, documentation, tools, and technologies in the fields of Io ...
, e.g. its TOP10, and by other bodies. DevSecOps has also been described as a cultural shift involving a holistic approach to producing secure software by integrating security education, security by design, and security automation.


Culture

DevOps initiatives can change how a company's operations, developers, and testers collaborate during the development and delivery processes. DevOps attempts to support consistency, reliability, and efficiency within an organization. This is usually enabled by a shared code repository or version control. Many organizations use
version control Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code t ...
to facilitate DevOps automation technologies like
virtual machines In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
,
containerization Containerization is a system of intermodal freight transport using intermodal containers (also called shipping containers, or International Organization for Standardization, ISO containers). Containerization, also referred as container stuf ...
(or
OS-level virtualization OS-level virtualization is an operating system (OS) virtualization paradigm in which the kernel allows the existence of multiple isolated user space instances, including containers ( LXC, Solaris Containers, AIX WPARs, HP-UX SRP Containers, D ...
), and
CI/CD In software engineering, CI/CD or CICD is the combined practices of continuous integration (CI) and continuous delivery (CD) or, less often, continuous deployment. They are sometimes referred to collectively as continuous development or contin ...
, with the
Git Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
version control system and the
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
platform referenced as examples.


GitOps

GitOps evolved from DevOps. The specific state of deployment configuration is version-controlled. Because the most popular version-control is Git, the GitOps approach has been named after Git. Changes to configuration can be managed using
code review Code review (sometimes referred to as peer review) is a software quality assurance activity in which one or more people examine the source code of a computer program, either after implementation or during the development process. The persons perf ...
practices, and can be rolled back using version-controlling. Essentially, all of the changes to a code are tracked, bookmarked, and making any updates to the history can be made easier. As explained by
Red Hat Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
, "visibility to change means the ability to trace and reproduce issues quickly, improving overall security."


Best practices for cloud systems

The following practices can enhance productivity of DevOps
pipelines A pipeline is a system of pipes for long-distance transportation of a liquid or gas, typically to a market area for consumption. The latest data from 2014 gives a total of slightly less than of pipeline in 120 countries around the world. The Un ...
, especially in systems hosted in the
cloud In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
: * Number of Pipelines: Small teams can be more productive by having one
repository Repository may refer to: Archives and online databases * Content repository, a database with an associated set of data management tools, allowing application-independent access to the content * Disciplinary repository (or subject repository), an ...
and one pipeline. In contrast, larger organizations may have separate repositories and pipelines for each team or even separate repositories and pipelines for each service within a team. * Permissions: In the context of pipeline-related permissions, adhering to the
principle of least privilege In information security, computer science, and other fields, the principle of least privilege (PoLP), also known as the principle of minimal privilege (PoMP) or the principle of least authority (PoLA), requires that in a particular abstraction l ...
can be challenging due to the dynamic nature of
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
. Administrators may opt for more permissive permissions while implementing compensating
security controls Security controls or security measures are safeguards or countermeasures to avoid, detect, counteract, or minimize security risks to physical property, information, computer systems, or other assets. In the field of information security, such co ...
to minimize the blast radius.


See also

* * * * * * * *


Notes


References


Further reading

* * * {{Authority control DevOps