What is DevOps.cleaned
What is DevOps.cleaned
DevOps combines development (Dev) and operations (Ops) to unite people, process,
and technology in application planning, development, delivery, and operations. DevOps
enables coordination and collaboration between formerly siloed roles like development,
IT operations, quality engineering, and security.
Teams adopt DevOps culture, practices, and tools to increase confidence in the
applications they build, respond better to customer needs, and achieve business goals
faster. DevOps helps teams continually provide value to customers by producing better,
more reliable products.
The following diagram illustrates the phases of the DevOps application lifestyle:
DevOps goals and benefits
When a team adopts DevOps culture, practices, and tools, they can achieve amazing
things:
A DevOps culture demands teams have a customer-first focus. By marrying agility, team
collaboration, and focus on the customer experience, teams can continuously deliver
value to their customers and increase their competitiveness in the marketplace.
The mean time to recovery metric indicates how long it takes to to recover from a failure
or breach. To manage software failures, security breaches, and continuous
improvement plans, teams should measure and work to improve this metric.
Adopt a DevOps culture
To fully implement DevOps, you must adopt a DevOps culture. Cultivating a DevOps
culture requires deep changes in the way people work and collaborate. When
organizations commit to a DevOps culture, they create an environment for
high-performing teams to evolve. While adopting DevOps practices automates and
optimizes processes through technology, without a shift to a DevOps culture within the
organization and its people, you won't gain the full benefits of DevOps.
The following image captures key aspects of Microsoft's live site culture.
You implement DevOps by following DevOps practices (described in the sections that
follow) throughout the application lifecycle. Some of these practices help accelerate,
automate, and improve a specific phase. Others span several phases, helping teams
create seamless processes that help improve productivity.
Version Control
Configuration management
Along with infrastructure as code, it's easy to templatize and automate system definition
and configuration, which help teams operate complex environments at scale.
Continuous monitoring
Continuous monitoring means having full, real-time visibility into the performance and
health of the entire application stack. This visibility ranges from the underlying
infrastructure running the application to higher-level software components. Visibility is
accomplished through the collection of telemetry and metadata and setting of alerts for
predefined conditions that warrant attention from an operator. Telemetry comprises
event data and logs collected from various parts of the system, which are stored where
they can be analyzed and queried.
High-performing DevOps teams ensure they set actionable, meaningful alerts and
collect rich telemetry so they can draw insights from vast amounts of data. These
insights help the team mitigate issues in real time and see how to improve the
application in future development cycles.
Planning
In the planning phase, DevOps teams ideate, define, and describe the features and
capabilities of the applications and systems they plan to build. Teams track task
progress at low and high levels of granularity, from single products to multiple product
portfolios. Teams use the following DevOps practices to plan with agility and visibility:
● Create backlogs.
● Track bugs.
● Manage Agile software development with Scrum.
● Use Kanban boards.
● Visualize progress with dashboards.
For an overview of the several lessons learned and practices Microsoft adopted to
support DevOps planning across the company's software teams, see How Microsoft
plans with DevOps.
Development
The development phase includes all aspects of developing software code. In this phase,
DevOps teams do the following tasks:
● Select a development environment.
● Write, test, review, and integrate the code.
● Build the code into artifacts to deploy into various environments.
● Use version control, usually Git, to collaborate on code and work in parallel.
To innovate rapidly without sacrificing quality, stability, and productivity, DevOps teams:
For an overview of the development practices Microsoft adopted to support their shift to
DevOps, see How Microsoft develops with DevOps.
Deliver
Delivery also includes deploying and configuring the delivery environment's foundational
infrastructure. DevOps teams use technologies like infrastructure as code (IaC),
containers, and microservices to deliver fully governed infrastructure environments.
Safe deployment practices can identify issues before they affect the customer
experience. These practices help DevOps teams deliver frequently with ease,
confidence, and peace of mind.
Core DevOps principles and processes Microsoft evolved to provide efficient delivery
systems are described in How Microsoft delivers software with DevOps.
Operations
Automated delivery and safe deployment practices help teams identify and mitigate
issues quickly when they occur. Maintaining vigilance requires rich telemetry, actionable
alerting, and full visibility into applications and underlying systems.
Practices Microsoft uses to operate complex online platforms are described in How
Microsoft operates reliable systems with DevOps.