0% found this document useful (0 votes)
4 views

What is DevOps.cleaned

DevOps integrates development and operations to enhance collaboration and efficiency throughout the application lifecycle, enabling teams to deliver reliable products faster. By adopting a DevOps culture and practices such as continuous integration, agile development, and infrastructure as code, organizations can improve market responsiveness, system stability, and recovery times. Key components of DevOps include collaboration, shorter release cycles, and continuous learning, which collectively drive innovation and customer satisfaction.

Uploaded by

kumsamergia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

What is DevOps.cleaned

DevOps integrates development and operations to enhance collaboration and efficiency throughout the application lifecycle, enabling teams to deliver reliable products faster. By adopting a DevOps culture and practices such as continuous integration, agile development, and infrastructure as code, organizations can improve market responsiveness, system stability, and recovery times. Key components of DevOps include collaboration, shorter release cycles, and continuous learning, which collectively drive innovation and customer satisfaction.

Uploaded by

kumsamergia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

What is DevOps?

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.

DevOps and the application lifecycle

DevOps influences the application lifecycle throughout its planning, development,


delivery, and operations phases. Each phase relies on the other phases, and the
phases aren't role-specific. A DevOps culture involves all roles in each phase to some
extent.

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:

Accelerate time to market

Through increased efficiencies, improved team collaboration, automation tools, and


continuous deployment--teams are able to rapidly reduce the time from product
inception to market launch.

Adapt to the market and competition

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.

Maintain system stability and reliability

By adopting continuous improvement practices, teams are able to build in increased


stability and reliability of the products and services they deploy. These practices help
reduce failures and risk.

Improve the mean time to recovery

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.

The following practices are key components of a DevOps culture:

●​ Collaboration, visibility, and alignment: A hallmark of a healthy DevOps


culture is collaboration between teams. Collaboration starts with visibility.
Development, IT, and other teams should share their DevOps processes,
priorities, and concerns with each other. By planning their work together,
they are better positioned to align on goals and measures of success as
they relate to the business.
●​ Shifts in scope and accountability: As teams align, they take ownership and
become involved in other lifecycle phases—not just the ones central to their
roles. For example, developers become accountable not only to the
innovation and quality established in the develop phase, but also to the
performance and stability their changes bring in the operate phase. At the
same time, IT operators are sure to include governance, security, and
compliance in the plan and develop phase.
●​ Shorter release cycles: DevOps teams remain agile by releasing software
in short cycles. Shorter release cycles make planning and risk management
easier since progress is incremental, which also reduces the impact on
system stability. Shortening the release cycle also allows organizations to
adapt and react to evolving customer needs and competitive pressure.
●​ Continuous learning: High-performing DevOps teams establish a growth
mindset. They fail fast and incorporate learnings into their processes. They
strive to continually improve, increase customer satisfaction, and accelerate
innovation and market adaptability.

Implement DevOps practices

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.

Continuous integration and continuous delivery (CI/CD)

Continuous Integration (CI) is the practice used by development teams to automate,


merge, and test code. CI helps to catch bugs early in the development cycle, which
makes them less expensive to fix. Automated tests execute as part of the CI process to
ensure quality. CI systems produce artifacts and feed them to release processes to
drive frequent deployments.
Continuous Delivery (CD) is a process by which code is built, tested, and deployed to
one or more test and production environments. Deploying and testing in multiple
environments increases quality. CD systems produce deployable artifacts, including
infrastructure and apps. Automated release processes consume these artifacts to
release new versions and fixes to existing systems. Systems that monitor and send
alerts run continually to drive visibility into the entire CD process.

Version Control

Version control is the practice of managing code in versions—tracking revisions and


change history to make code easy to review and recover. This practice is usually
implemented using version control systems such as Git, which allow multiple developers
to collaborate in authoring code. These systems provide a clear process to merge code
changes that happen in the same files, handle conflicts, and roll back changes to earlier
states.

The use of version control is a fundamental DevOps practice, helping development


teams work together, divide coding tasks between team members, and store all code for
easy recovery if needed. Version control is also a necessary element in other practices
such as continuous integration and infrastructure as code.

Agile software development

Agile is a software development approach that emphasizes team collaboration,


customer and user feedback, and high adaptability to change through short release
cycles. Teams that practice Agile provide continual changes and improvements to
customers, collect their feedback, then learn and adjust based on customer wants and
needs. Agile is substantially different from other more traditional frameworks such as
waterfall, which includes long release cycles defined by sequential phases. Kanban and
Scrum are two popular frameworks associated with Agile.
Infrastructure as code

Infrastructure as code defines system resources and topologies in a descriptive manner


that allows teams to manage those resources as they would code. Those definitions can
also be stored and versioned in version control systems, where they can be reviewed
and reverted—again like code.

Practicing infrastructure as code helps teams deploy system resources in a reliable,


repeatable, and controlled way. Infrastructure as code also helps automate deployment
and reduces the risk of human error, especially for complex large environments. This
repeatable, reliable solution for environment deployment lets teams maintain
development and testing environments that are identical to production. Duplicating
environments to different data centers and cloud platforms likewise becomes simpler
and more efficient.

Configuration management

Configuration management refers to managing the state of resources in a system


including servers, virtual machines, and databases. Using configuration management
tools, teams can roll out changes in a controlled, systematic way, reducing the risks of
modifying system configuration. Teams use configuration management tools to track
system state and help avoid configuration drift, which is how a system resource’s
configuration deviates over time from the desired state defined for it.

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:

●​ Use highly productive tools.


●​ Automate mundane and manual steps.
●​ Iterate in small increments through automated testing and continuous
integration (CI).

For an overview of the development practices Microsoft adopted to support their shift to
DevOps, see How Microsoft develops with DevOps.

Deliver

Delivery is the process of consistently and reliably deploying applications into


production environments, ideally via continuous delivery (CD).

In the delivery phase, DevOps teams:

●​ Define a release management process with clear manual approval stages.


●​ Set automated gates to move applications between stages until final
release to customers.
●​ Automate delivery processes to make them scalable, repeatable,
controlled, and well-tested.

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

The operations phase involves maintaining, monitoring, and troubleshooting


applications in production environments, including hybrid or public clouds like Azure.
DevOps teams aim for system reliability, high availability, strong security, and zero
downtime.

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.

You might also like