Sunteți pe pagina 1din 8

INTRODUCTION

Dev Ops is an emerging methodology that advocates a collaborative working


relationship between development and it operations as companies strive to
deploy applications faster and more reliably, more securely. Using both lean
and agile methodologies organizations bring IT operations, development
teams as well as quality assurance people together throughout the software
lifecycle to create a more collaborative process that, in the end, should
deliver software and/or services in a faster and more continuous manner.
Traditionally, elements of IT have been siloed. DevOps aims to break down
those silos to get everyone working towards the same goal.
DevOps a combination of Development & Operations is a software
development methodology which looks to integrate all the software
development functions from development to operations within the same
cycle.
This calls for higher level of coordination within the various stakeholders in
the software development process (namely Development, QA & Operations)
So an ideal DevOps cycle would start from: The dev writing code, Building &
deploying of binaries on a QA environment, Executing test cases and finally,
Deploying on to Production in one smooth integrated flow.
Obviously, this approach places great emphasis on automation of build,
deployment and testing. Use of Continuous Integration (CI) tools, automation
testing tools become a norm in a DevOps cycle .A recent Right Scale
survey has found that 54% of companies have adopted DevOps and the
interest around DevOps is increasing rapidly. In this article we will learn how
this new software development methodology will impact QA and how the QA
function as a whole should evolve to embrace this change.
One side of developers are keen on changing things rapidly but on the other
hand infrastructure operations group who are more concentrated on
maintaining the stability and standardize. The demand of a devops is
increasing constantly as organizations need to develop so many more things
and much more quickly which drives to them to the need of automate
everything, with pushing hundreds of changes into the production globally
and on a continuous basis there is a need to fast responsiveness to business.
But just because production team of the organizations does not have access
to the customer facing team became the only problem. Adapting to the
transformations to devops culture could be difficult in areas such as mobile
app development and e commerce according to Peter buonora. Its all about
automation and being able to quickly move development projects to the
various stages and put them into production without having to do a lot of
manual work and infrastructure tasks.

To accelerate and even enable the benefits of devops is cloud something that
goes hand in hand Devops culture , going to cloud to deploy , it is found 90
to 95% virtualization in operations area which leads to respond more quickly
to the business Cloud is a part of Devops strategy , its completely functional
on cloud computing DevOps is an evolution of agile software development,
which demands frequent releases and iterative feedback so that applications
move steadily toward the business goal, nurtured by collaboration between
developers and users. If youve ever waited months for your IT organization
to deliver an application, only to find that its horribly different from what
was requested, you know why this idea has appeal.
One of the key differences with DevOps is that development and operations
are bound together so that configuration of the infrastructure is part of the
code itself. In other words, instead of doing development on one machine
and deployment somewhere else, the machine becomes part of the
application. You cant do this without virtualization. When infrastructure
scales up and down as the application needs it, you get better reliability and
performance. The Puppet Labs survey found that DevOps practitioners spend
33 percent more time on infrastructure issues, but the time investment is
more than offset by productivity gains.
Major benefits such as the ability to experiment by quickly setting up
infrastructure and also templating infrastructure quickly maturing internally
and externally. With the leading cloud services, gets more ability to templateout entire environments beyond just what typical virtualization will give you.
And also the ability to spin down environments when they are no longer
needed. There are also a wide range of services that are already built into
the environment and ready to turn on such as monitoring, load balancing,
archiving and back up services.
To incorporate in making the Devops real an IT leader have to think about
how to integrate two cultures and it advantageous for both the groups
culturally to be incented to so a series of rapid changes to the size and of the
scope that wont impact your production systems, start with a smaller group
build a test cycle, a release and roll back of necessary, changes in culture
and changes in architecture.
On a more technical level, we again see open source and agile development
practices, but with the addition of cloud computing as the delta of all of
these trends.
Yet another level of devops is the business level, whereby not only
developers and operations folks are getting involved, but the executives and

people representing business and application requirements, needs and


realities are also finding they have a stake in devops. This is something
weve already seen in open source software thanks to vibrant communities of
not only developers, but users too, particularly in specialized fields where
their stake in the development and deployment of the software is more
critical. For example, weve heard from many vendors how their open source
software for the healthcare and government sectors is pulling in new
stakeholders and experts, including doctors and nurses, who are directly
reporting their needs, issues and realities to developers, operations and in
the best case scenario, to devops.
DevOps projects management is becoming a real partner of the software
engineering team and moving into a much more collaborative role. is how
well the business areas have perceived the DevOps approach and look at it
as a way to be able to smaller incremental pieces of delivered more quickly.
In the waterfall approach, it has always been about trying to load up the
boat But with the new approach its been much more accepted that we're
going to get this smaller piece much sooner and the next piece nextand
you can just keep iterating right through. So it's not just the standard project
that is going to end at Phase 1 and may get knocked off by something else.
People who have been here a while expect to call the help desk and
everything will work. But the newer generations coming in are more self-help
people, so we can talk about the concept of operations in this new
arrangement and agree on what needs to have an immediate response and
what doesn't. And a lot more self-help is springing up because of the DevOps
people. They want people to help themselves. So we're getting this Level
Zero help desk, if you will, growing much, much faster and much better
because of DevOps.
Finally the results that have been seeing since the move to the Devops
culture , the number one is speed from the agile team starts a project until
it's in production. We want to be ahead of the business so that if the business
isn't ready, we let them decide how fast they want it to move. See it costs
less overall because we don't take heavy ideas and develop them all the way
because of the prototyping idea, and we get more profit, so reducing overall
costs of development. The other thing we really want to measure is customer
satisfaction. If it doesnt go up we'll figure out what we did wrong.
Companies that incorporate DevOps practices get more done, plain and
simple. They deploy code up to 30 times more frequently than their
competition. And less than 50% of their deployments fail according to Puppet
Labs 2013 State of DevOps survey.

The biggest shift in attitude in a DevOps environment is that there is one


team composed of cross-functional team members including developers, QA,
DBAs, business analysts, operations engineers and so forth. Collaboration
across these different roles delivers many benefits. Technical benefits:
Continuous software delivery, less complex problems to fix, faster resolution
of problems. Business benefits: Faster delivery of features, more stable
operating environments, more time available to add value (rather than
fix/maintain). In a non-DevOps environment, there is often tension between
introducing new features and stability. The development team is measured
on the features they deliver to users while the operations team is measured
on the stability of the system.
In a DevOps environment, a single team is responsible for delivering new
features and stability. The combination of a shared code base, continuous
integration, test-driven techniques and automated deploys, among other
things, expose problems, in application code, infrastructure or configuration,
earlier because the software isnt thrown over the wall to Operations at the
end of coding. Problems tend to be less complex because change sets are
smaller. And resolution times are faster because team members dont need
to wait for a different team to troubleshoot and fix the problem.Continuous
software delivery brings two huge factors of success to an organization. First,
you can go from idea to working software faster in terms of initial project
development. Then you can experiment on many different things for
continuous incremental improvements of whatever your company measures,
be it performance, sales or signups.
First, its important to understand what DevOps is not, so a better contrast
can be made around how to understand its benefits. DevOps is not about one
tool or another. It is, however, about behavior a mindset to leverage and
use the correct tools that shorten and improve software development life
cycles. DevOps doesnt seek to erase the differences between the two
disciplines of software development and IT operations, but instead builds a
bridge to make them work better together while continuing to follow
traditional processes in each discipline independently.
DevOps is about business agility and continuous delivery, a discipline
created through understanding both development and operations. A move to
DevOps engineering culture is relatively easier for a smaller company
(including startups) than one that is large and established. For larger and
well-established companies, it is advisable to take an incremental change
approach, introducing DevOps slowly to change people behavior and
maximize adoption. While measuring and quantifying people behavior, in
regards to DevOps, may be challenging, it does not mean that the benefits of
DevOps cannot be measured. One tangible benefit of DevOps is an observed
decrease in development and operations cost. Other measurable benefits of
DevOps include Shorter Development Cycle Increased Release Velocity,

Improved Defect Detection, Reduced Deployment Failures and Rollbacks,


Reduced Time to Recover upon Failure.
Some of the biggest cons of the Devops could be having developers take on
dev, QA, sys admin and release manager roles potentially makes them the
typical "jack of all trades and master of none." Although it may seem like a
good idea from both a cost and resource perspective, maybe they should just
focus on software development... Some people are being accused of elitism
in the shift to DevOps, particularly in organizations where DevOps means the
management side calls all the shots. After embracing DevOps, if the team
isn't already on board with agile development, progress in developing new
features may slow. Targets may not be met. DevOps may have the exact
reverse effect. Hartveld's concerns aren't without merit, and if the right
mixes of culture, people and technology aren't discovered, and then a shift to
DevOps could be disastrous. But it's that last point that I find interesting,
because in discussions with DevOps professionals, it may be true that
development slows--at least in the eyes of the dev team. To the end users,
though, it appears to that development has gained pace in a big way.
Features are being rolled out regularly instead of all at once every so often.
It's a perception that goes a long way toward making the team look good.
Although there are subtle differences between Agile &DevOps, those working
with Agile will find DevOps a little more familiar to work with (and eventually
adopt). While Agile principles are applied successfully on the development &
QA iterations, it is a different story altogether (and often a bone of
contention) on the operations side. DevOps proposes to rectify this gap.
Now, instead of Continuous Integration, DevOps involves Continuous
Development, whereby, code written and committed to Version Control, will
be built, deployed, tested and installed on the Production environment ready
to be consumed by the end-user.
This process helps everyone in the entire chain since environments and
processes are standardized. Every action in the chain is automated. It also
gives freedom to all stakeholders to concentrate their efforts on designing
and coding a high quality deliverable rather than worrying about the various
building, operations and QA processes.
It brings down the time-to-live drastically to about 3-4 hours, from the time
code is written and committed, to deployment on production for end-user
consumption
Traditionally, QA would get a build which is deployed on their designated
environment and QA would then commence their functional & regression
testing. The build would ideally sit with the QA for a couple of days before
the QA sign-off on the build. All this changes in DevOps.
QA changes for DevOps:
QA are required to align their efforts in the DevOps cycle.

They have to make sure that all their test cases are automated and achieve
near 100% code coverage.
They need to make sure that their environments are standardized and
deployment on their QA boxes is automated.
All their pre-testing tasks, cleanups, post-testing tasks, etc. are automated
and aligned with the Continuous Integration cycle.
As already mentioned, DevOps requires high level of coordination between
various functions of the deliverable chain. What this also means is that
boundaries between the various roles of contributors in the chain become
porous.
DevOps encourages everyone to contribute across the chain. So, amongst
other things, a dev can configure deployments. Deployment engineers can
add test cases to the QA repository. QA Engineers can configure their
automation test cases into the DevOps chain.
To achieve such speed and agility, it is important to automate all the testing
processes and configure them to run automatically when the deployment is
completed on the QA environment. Specialized automation testing tools and
continuous integration tools are used to achieve this integration. This also
necessitates building of a mature automation testing framework through
which one can quickly script new test cases.
Tips for DevOps Success:

The test cases that are required to be executed for a particular build
need to be identified.
The test execution should essentially be lean.
The QA and dev need to sit together and identify the areas affected
due to a particular build and execute those related test cases plus a
sanity test pass.
You also need to configure specialized code analysis and coverage
tools to make sure you achieve near 100% code coverage.
The concept of executing all regression test cases for a test pass is
soon becoming obsolete.
Strategy around testing new features need to be formalized and
interim builds can be supplied to QA who would in turn create test
scripts and run these automation tests on these interim builds till the
code becomes stable enough to be deployed on to Production
environment.
All the environments required for testing need to be standardized and
deployments have to be automated.

Using various automation techniques, QA should be able to fire automation


testing runs across various cross-platform (and cross-browser in case of web
applications) environments.
Parallel execution of tests helps in reducing time-to-live which is the crux of a
successful DevOps implementation. Exit criteria need to be set for each run
so that when the results of the tests are fed back to the chain, a go/no-go
decision to Production is taken.
Blocker or Critical bugs found need to be reported and fixed and passed
through the same chain of events before the code is deployed on to the
Production environment.
QA should also be able to detect problems early and report them proactively.
To achieve this, they need to set up monitoring on the Production
environment to be able to expose bugs before they cause a failure. Setting
up specialized counters like response times, memory & CPU utilization, etc.
can provide a lot of insight into the end-user experience. For example, if the
average response time for login is gradually increasing over the various
builds, QA should proactively report this issue for optimizing the login code,
else future builds might cause end-user frustration due to high response
times.QA can also use a small subset of existing high priority test cases to be
executed periodically on production to actively monitor the environment.
Bugs like, This bug appears sometimes or Cannot Reproduce can be
caught through this strategy which, in the end makes the application more
stable and also gets more satisfied end-users. Again, these monitors need to
be configured to run automatically with rich reporting (like logs &
screenshots of failures, etc.).
In the End Waterfall gave way to V-Model which in turn was replaced by Agile
as the preferred choice for software development. DevOps is the future. Its a
continuous improvement cycle that software development models undergo
from time-to-time. You need to embrace, understand and inculcate it.
You need to master the various automation and continuous integration tools,
so that your automation efforts add value to the chain and are lean enough
to quickly adapt to changes. You may be working on projects that may
involve an alpha, beta and UAT environments before being deployed on the
production environment.
The concept essentially remains the same. Automation, automation and
more automation is the core of a successful DevOps cycle. But, as a QA you
should also be able to draw a line as to how much automation is too much
automation
Despite the common traits, a continuous flow of work into IT Ops is critical to
accelerating time to market, delivery agility and service quality with DevOps,
which is essentially a holistic approach to software development and release

that doesnt work as an improved version of the preceding Agile


methodology implemented within the same cultural fit.
And although Agile and DevOps share similar goals of IT productivity, the
latter approach encourages Devs and Ops to synchronize fast-paced agile
development of production-ready code with Ops processes of testing,
deployment and management to prevent backlogs. Without adequate
synchronization between previously separate Dev and IT Op processes,
DevOps essentially becomes a varied form of Agile methodology with a more
involved Op team that still has to deal with deployment backlogs. The aim of
the DevOps approach is to address the disconnect between Dev and Ops
teams by extending team interactions and service delivery across the value
chain, and incorporating end-user feedback in future DevOps processes to
improve service quality.
In other words, DevOps stresses on effective collaboration and
communication between the two departments within a culture that enables
optimized release cycles of high-quality and thoroughly-tested end-products.
This cultural shift commands strong leadership to address the challenges
associated with thorough transformation from Waterfall to Agile and
ultimately, to DevOps. Implementing DevOps in large enterprises is
particularly challenging considering their fear and resistance to change,
siloed departments marred by lack of communication, unaligned and
misunderstood job roles, concerns surrounding cloud-based solutions that
enable DevOps, and a reluctant buy-in from senior leadership to embrace
enterprise-wide transformation toward a radical new operating model.
Development and IT operations are directly tied to the companys bottom
line, success and profits, and organizations resisting the true DevOps
movement and functions only risk being left behind in the race to deliver
high value products to the customer.

S-ar putea să vă placă și