0% found this document useful (0 votes)
5 views6 pages

DevOps Principles and Practices Explained

Uploaded by

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

DevOps Principles and Practices Explained

Uploaded by

pr14042013
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Unit – 9 Development

Overview of Devops
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the
processes between software development and IT teams. It emphasizes team empowerment,
cross-team communication and collaboration, and technology automation.

This closer relationship between “Dev” and “Ops” permeates every phase of the DevOps
lifecycle: from initial software planning to code, build, test, and release phases and on to
deployment, operations, and ongoing monitoring. This relationship propels a continuous
customer feedback loop of further improvement, development, testing, and deployment. One
result of these efforts can be the more rapid, continual release of necessary feature changes or
additions.

Working Principles of DevOps


To realize the full potential of DevOps, teams should follow key DevOps principles
DevOps is more than just development and operations teams working together. It’s more than
tools and practices. DevOps is a mindset, a cultural shift, where teams adopt new ways of
working.

Collaboration

The key premise behind DevOps is collaboration. Development and


operations teams coalesce into a functional team that communicates, shares
feedback, and collaborates throughout the entire development and
deployment cycle. Often, this means development and operations teams
merge into a single team that works across the entire application lifecycle.

The members of a DevOps team are responsible for ensuring quality


deliverables across each facet of the product. This leads to more ‘full stack’
development, where teams own the complete backend-to-frontend
responsibilities of a feature or product. Teams will own a feature or project
throughout the complete lifecycle from idea to delivery. This enhanced level
of investment and attachment from the team leads to higher quality output.

Automation

An essential practice of DevOps is to automate as much of the software


development lifecycle as possible. This gives developers more time to write
code and develop new features. Automation is a key element of a CI/CD
pipeline and helps to reduce human errors and increase team productivity.
With automated processes, teams achieve continuous improvement with
short iteration times, which allows them to quickly respond to customer
feedback.

Continuous Improvement

Continuous improvement was established as a staple of agile practices, as


well as lean manufacturing and Improvement Kata. It’s the practice of
focusing on experimentation, minimizing waste, and optimizing for speed,
cost, and ease of delivery. Continuous improvement is also tied
to continuous delivery, allowing DevOps teams to continuously push updates
that improve the efficiency of software systems. The constant pipeline of
new releases means teams consistently push code changes that eliminate
waste, improve development efficiency, and bring more customer value.

Customer-centric action

DevOps teams use short feedback loops with customers and end users to
develop products and services centered around user needs. DevOps
practices enable rapid collection and response to user feedback through use
of real-time live monitoring and rapid deployment. Teams get immediate
visibility into how live users interact with a software system and use that
insight to develop further improvements.

Create with the end in mind

This principle involves understanding the needs of customers and creating


products or services that solve real problems. Teams shouldn’t ‘build in a
bubble’, or create software based on assumptions about how consumers will
use the software. Rather, DevOps teams should have a holistic
understanding of the product, from creation to implementa

Benefits of DevOps

 Renews focus on the customers. A key reason for the move to DevOps is that it gets the team
back in the mindset of the customer. ...
 Unites teams for faster product shipments. ...
 Simplifies development focus. ...
 Introduces automation to the development process. ...
 Supports end-to-end responsibility

DevOps culture

Practice communicating, collaborating, and brainstorming with colleagues


from other areas of the company.
Roles and Responsibilities

Now that development and operations are collaborating closely, it's time to
clarify who does what, plus identify any skill gaps. Run this play early in your
DevOps journey, as well as any time your team's membership changes.

Working Agreements

Whether you're a united DevOps team, or a cross-team working group, you'll


work better together if you explicitly define howyou'll work together. Run this
play to set or refresh your social contract every 6-12 months.
Pre-mortem

What's better than doing root cause analysis on an incident? Anticipating


risks so you can solve for them while there's still time! Run this play in the
early phases of a project and before big releases.

Retrospectives

This classic agile technique is critical for creating a culture of continuous


improvement and learning. Retrospectives provide a safe space to discuss
what's working, what's not, and what needs to change. Run them regularly
(we recommend bi-weekly or monthly).
DevOps practices
DevOps practices reflect the idea of continuous improvement and automation. Many practices
focus on one or more development cycle phases. These practices include:

 Continuous development. This practice spans the planning and coding phases of the
DevOps lifecycle. Version-control mechanisms might be involved.
 Continuous testing. This practice incorporates automated, prescheduled, continued code
tests as application code is being written or updated. Such tests can speed the delivery of
code to production.
 Continuous integration (CI). This practice brings configuration management (CM) tools
together with other test and development tools to track how much of the code being
developed is ready for production. It involves rapid feedback between testing and
development to quickly identify and resolve code issues.
 Continuous delivery. This practice automates the delivery of code changes, after testing,
to a preproduction or staging environment. An staff member might then decide to
promote such code changes into production.
 Continuous deployment (CD). Similar to continuous delivery, this practice automates the
release of new or changed code into production. A company doing continuous deployment
might release code or feature changes several times per day. The use
of container technologies, such as Docker and Kubernetes, can enable continuous
deployment by helping to maintain consistency of the code across different deployment
platforms and environments.
 Continuous monitoring. This practice involves ongoing monitoring of both the code in
operation and the underlying infrastructure that supports it. A feedback loop that reports
on bugs or issues then makes its way back to development.
 Infrastructure as code. This practice can be used during various DevOps phases to
automate the provisioning of infrastructure required for a software release. Developers
add infrastructure “code” from within their existing development tools. For example,
developers might create a storage volume on demand from Docker, Kubernetes, or
OpenShift. This practice also allows operations teams to monitor environment
configurations, track changes, and simplify the rollback of configurations.

You might also like