Dev + Ops |
What is DevOps Technology?
DevOps technology
is a set of practices that combines software development (Dev) and
information-technology operations (Ops) which aims to shorten the systems
development life cycle and provide continuous delivery with high software
quality. Academics and practitioners have not developed a unique definition for
the term "DevOps." The term DevOps, however, has been used in
multiple contexts.
DevOps as a job title
DevOps job
is describing as an approach to work rather than a distinct role (like system
administrator), job advertisements are increasingly using terms like
"DevOps Engineer". While DevOps reflects complex topics, the DevOps
community uses analogies to communicate important concepts, much like "The
Cathedral and the Bazaar" from the open-source community.
Building a DevOps culture
Organizational
culture is a strong predictor of IT and organizational performance. Cultural
practices such as information flow, collaboration, shared responsibilities,
learning from failures and new ideas are central to DevOps. Team-building and
other employee engagement activities are often used to create an environment
that fosters this communication and cultural change within an organization.
Team-building activities can include board games, trust activities, and employee
engagement seminars.
The 2015
State of DevOps Report discovered that the top seven measures with the
strongest correlation to organizational culture are:
1.
Organizational investment in DevOps
2. Team
leaders' experience and effectiveness.
3.
Continuous delivery.
4. The
ability of different disciplines to achieve win-win outcomes.
5.
Organizational performance.
6.
Deployment pain.
7. Lean
management practices.
What is DevOps?
DevOps has
become an overloaded buzzword that means a lot of different things to a lot of
people. That's a challenge when you are trying to understand what DevOps is or
define DevOps. Instead of trying to define DevOps, we are going to describe the
foundational concepts that different people associate with DevOps and the
history of how the DevOps movement evolved to help you get a holistic view:
1. Where
Did DevOps Come From?
DevOps is
the offspring of agile software development – born from the need to keep up
with the increased software velocity and throughput agile methods have
achieved. Advancements in agile culture and methods over the last decade
exposed the need for a more holistic approach to the end-to-end software delivery
lifecycle.
2.What is
Agile Software Development?
Agile
Development is an umbrella term for several iterative and incremental software
development methodologies. The most popular agile methodologies include Scrum,
Kanban, Scaled Agile Framework, Lean Development and Extreme Programming (XP).
While each
of the agile methodologies is unique in its specific approach, they all share a
common vision and core values (see the Agile Manifesto). They all fundamentally
incorporate iteration and the continuous feedback that it provides to
successively refine and deliver a software system. They all involve continuous
planning, continuous testing, continuous integration, and other forms of
continuous evolution of both the project and the software. They are all
lightweight, especially compared to traditional waterfall-style processes, and
inherently adaptable. And what is most important about agile methods is that
they all focus on empowering people to collaborate and make decisions together
quickly and effectively.
3. What
Are the Challenges DevOps Solves?
Prior to
DevOps application development, teams were in charge of gathering business
requirements for a software program and writing code. Then a separate QA team
tests the program in an isolated development environment, if requirements were
met, and releases the code for operations to deploy. The deployment teams are
further fragmented into siloed groups like networking and database. Each time a
software program is “thrown over the wall” to an independent team it adds
bottlenecks. The problem with this paradigm is that when the teams work
separately:
The Dev team
that has a goal to ship as many features as possible, kicks a new release “over
the wall” to QA. Then the tester’s goal is to find as many bugs as possible.
When the testers bring their findings to Dev, the developers become defensive
and blame the testers that are testing the environment for the bugs. The
testers respond that it isn’t their testing environment, but the developer’s
code that is the problem.
4. What
Is the Goal of DevOps?
Improve
collaboration between all stakeholders from planning through delivery and
automation of the delivery process in order to:
Improve
deployment frequency
Achieve
faster time to market
Lower
failure rate of new releases
Shorten lead
time between fixes
Improve mean
time to recovery
According to
the 2015 State of DevOps Report, “high-performing IT organizations deploy 30x
more frequently with 200x shorter lead times; they have 60x fewer failures and
recover 168x faster.”
4.Where
Are You on the DevOps Continuum?
The DevOps
continuum is a helpful way to look at the different aspects of DevOps. The
bottom horizontal axis represents what people perceive DevOps to fundamentally
be focused on. Some people adamantly feel that DevOps should focus on culture
more than tools, while on the other people tend to value tools over culture.
The vertical
axis depicts the three levels of the DevOps delivery chain: continuous
integration, continuous delivery and continuous deployment. The DevOps
community refers to organizations in the top right of the DevOps continuum as
pink unicorns because there are currently so few of them that you don’t see
them in the wild very often. Popular examples of these unicorns are companies
like Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU and Google. In a recent
poll participants indicated where their organizations fit on the DevOps
continuum:
55% Bottom
Left
26% Bottom
Right
14% Top Left
5% Top Right
Thought
leaders, coaches and bloggers often portray a vision of DevOps in the
upper-right corner and they will often have a strong bias towards either DevOps
culture or automation tools. While it is ok to have esoteric debates about
whether DevOps culture or tools are more important, the reality is that you
can’t have DevOps without tools and all the tools in the world won’t help if
you don’t have a strong supporting culture.
5. What
Are the Phases of DevOps Maturity?
There are
several phases to DevOps maturity; here are a few of the key phases you need to
know.
Waterfall
Development:
Before
continuous integration, development teams would write a bunch of code for three
to four months. Then those teams would merge their code in order to release it.
The different versions of code would be so different and have so many changes
that the actual integration step could take months. This process was very
unproductive.
6. What
Are the Values of DevOps?
DevOps
focuses heavily on establishing a collaborative culture and improving
efficiency through automation with DevOps tools. While some organizations and
people tend to value one more than the other, the reality is it takes a
combination of both culture and tools to be successful. Here’s what you need to
know about these two DevOps values.
DevOps
Culture
DevOps
culture is characterized by increased collaboration, decreasing silos, shared
responsibility, autonomous teams, improving quality, valuing feedback and
increasing automation. Many of the DevOps values are agile values as DevOps is
an extension of agile.
7. What
Tools Are Used in DevOps?
Earlier we
briefly discussed some of the tools used in DevOps; here are some of the key
tools and practices you need to know.
Source Code
Repository
A source
code repository is a place where developers check in and change code. The
source code repository manages the various versions of code that are checked
in, so developers don’t write over each other’s work.
Configuration
Management
Configuration
management defines the configuration of a server or an environment. Popular
configuration management tools are Puppet and Chef.
DevOps Model Defined:
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.
How DevOps Works
Under a
DevOps model, development and operations teams are no longer “siloed.”
Sometimes, these two teams are merged into a single team where the engineers
work across the entire application lifecycle, from development and test to
deployment to operations, and develop a range of skills not limited to a single
function.
In some
DevOps models, quality assurance and security teams may also become more
tightly integrated with development and operations and throughout the
application lifecycle. When security is the focus of everyone on a DevOps team,
this is sometimes referred to as DevSecOps.
These teams
use practices to automate processes that historically have been manual and
slow. They use a technology stack and tooling which help them operate and evolve
applications quickly and reliably. These tools also help engineers
independently accomplish tasks (for example, deploying code or provisioning
infrastructure) that normally would have required help from other teams, and
this further increases a team’s velocity.
Benefits
of DevOps
Speed
Move at high velocity so you can innovate for
customers faster, adapt to changing markets better, and grow more efficient at
driving business results. The DevOps model enables your developers and
operations teams to achieve these results. For example, micro-services and continuous delivery let teams take ownership of services and
then release updates to them quicker.
Rapid Delivery
Increase the frequency and pace of releases so
you can innovate and improve your product faster. The quicker you can release
new features and fix bugs, the faster you can respond to your customers’ needs
and build competitive advantage. Continuous Integration and continuous delivery are practices that automate the software
release process, from build to deploy.
Raliability
Raliability
Ensure the quality of application updates and
infrastructure changes so you can reliably deliver at a more rapid pace while
maintaining a positive experience for end users. Use practices like continuous integration and continuous delivery to test that each change is functional
and safe. Monitoring and logging practices help you stay informed of
performance in real-time.
Scale
Scale
Operate and manage your infrastructure and
development processes at scale. Automation and consistency help you manage
complex or changing systems efficiently and with reduced risk. For
example, infrastructure as code helps you manage your development,
testing, and production environments in a repeatable and more efficient manner.
Improved Collabration
Improved Collabration
Build more effective teams under a DevOps
cultural model, which emphasizes values such as ownership and accountability.
Developers and operations teams collaborate closely, share many responsibilities, and
combine their workflows. This reduces inefficiencies and saves time (e.g.
reduced handover periods between developers and operations, writing code that
takes into account the environment in which it is run).
Security
Security
Move quickly while retaining control and
preserving compliance. You can adopt a DevOps model without sacrificing
security by using automated compliance policies, fine-grained controls, and
configuration management techniques. For example, using infrastructure as code
and policy as code, you can define and then track compliance at
scale.
Why DevOps Matters?
Why DevOps Matters?
Software and the Internet have transformed the
world and its industries, from shopping to entertainment to banking. Software
no longer merely supports a business; rather it becomes an integral component
of every part of a business. Companies interact with their customers through
software delivered as online services or applications and on all sorts of
devices. They also use software to increase operational efficiencies by
transforming every part of the value chain, such as logistics, communications,
and operations. In a similar way that physical goods companies transformed how
they design, build, and deliver products using industrial automation throughout
the 20th century, companies in today’s world must transform how they build and
deliver software.
Best book For DevOps Technology:
https://amzn.to/2yr6zXT
0 Comments