What is DevOps? What are the emergence benefits of DevOps?
DevOps is more than just Automation.
This is an approach that is changing the attitude of Development and Operations.
DevOps is the core of Development & Operations working together well.
There are a lot of misconceptions about the areas of DevOps
If we ask senior executives whether
they are doing DevOps? lot of them say I don’t know what DevOps is. But if we
ask them are they are trying to faster, better collaboration and communication
between the Development and Operations then the answer will be yes.
Let’s understand what is DevOps?
DevOps is an abbreviation of
Development and Operations and it is a methodology that unified Software
Development and Software Operation. The core of DevOps is strongly fabricated
automation and monitoring at all steps of Software construction from INTEGRATION, TESTING,
RELEASING, DEPLOYMENT
& INFRASTRUCTURE MANAGEMENT.
- DevOps insures software Development Cycle
- Increase Deployment Frequency
- Increase Dependability and Releases while
- Ensuring close alignment with Business Objective
It's more than just a tool or process
change it also requires an Organizational and Cultural shift. This change is especially
difficult because of the conflicting nature of development roles.
- Operations seek organizational stability
- Developers seek change
- Testers seek production
Getting these groups to work parallel
is a serious dispute in an organization DevOps implementation.
Overall practice of DevOps with any
architecture style
The micro-services are protectorate specifically
following the standard for building constantly deployed system. Because the
size of each service is small it allows the architecture of the individual
service to appear through constant refactoring. Thus reducing the need for a
big upfront design and allows for releasing the software quickly and continuously.
There are Technical Benefits:
- Continuous software delivery
- Less complexity to manage
- Faster resolution of problems
- More productive teams
- Higher employee engagement
- Better professional development options
And there are Business Benefits:
- Faster delivery of features
- More stable operating environment
- Improved communication and collaboration
- More time to innovate (rather than fix/maintain)
Other Benefits:
- Speed of deployments
- Improved processes
- Lower costs
- Better collaboration between Teams
- Continuous feedback
Then, What’s the difference between Agile and DevOps
Both are rapid development
methodologies but Agile bridges the
gap between Customer and Developer Communication whereas DevOps bridges the gap between Developer and IT Operations Communication. Agile
helps in simplifying and accelerate complex projects whereas DevOps handle end to end engineering
processes.
Adopting DevOps
It’s an approach to how to get an
enhancement request a bug fix and a new feature request or an entire product
out to production rapidly in small batches. So you can get new functionality or
new enhancement in the hands of customers. So they can use it and provide you
feedback as rapidly as possible. And based on that feedback you can improve product
delivery, the efficiency of the environment and the process by which you are
delivering.
The main role of the DevOps is to make things
more efficient,
reduce overhead, and reduce rework.
Most organization suffers through
overhead and it might take practitioners time to reduce the burden.
Let’s
understand where do, these requirements or requests basically come from. It may
come from a Customer, a line of business, or from an incident ticket while
finishing in the production, and based on that you are going to make a change
in your software. Based on the request you require making changes in the product.
All these requirements go let's say to
the PMO(Project Management Officer) and concerned department. They decide and
prioritize the task make other decision like build Vs Buy and allocate
resources to get that done.
Then you might involve some
requirement engineers, designers, architects, Analysts and many other resources
as per the need. Who designs and defines the architecture of this capability or
feature. Later it goes to the Developers,
Testers, and engineers from the product development team, infrastructure team
all of them work in the same concert in collaboration to deliver this new
capability or functionality of the product.
What DevOps Does? It reduces the bottleneck of these efforts,
and help to transition the fact from one stage or environment to the next. Code
goes from the development environment to the QA environment and after being
built it needs to be deployed.
Let’s look for all the artifacts and
the task where all these team members are working to deliver this
functionality. Artifacts are what they create or modify these are changed
states as they move from left to right to the change life cycle. If you have
adopted an Agile framework there will be a series of cycle or iterations in a single
pipeline.
These artifacts when change state
requirement gets transform to Design, Design get transform to code, Code gets
transform to binaries, Test scripts get transform to Test Results, Test results
get transform to defects and so on. The task which people do to carry out these
transitions and this transformation are artifacts.
There are two kinds of artifacts
The actual core artifact which you are
developing, and these people are responsible for these are the artifacts which
bring the business value. Like your code, design document, test scripts,
binaries, actual deployable.
There are supporting artifacts these
are things like requirement documents may be the core in beginning but later
become a supportive artifact. All the documentation which needs to create is a supportive
artifact, like status reports. In order to make your team sufficient one way is
to reduce the time people are spending on creating these supportive artifacts
or updating them rather than real work.
Well, what is the real work? It means
if you have a developer or team, you are paying them to write code not to
update the spreadsheet with status information. So why not have a tool which
captures the status of progress and let the Developer do their actual work.
That will make your Developers
efficient and reduce their extra overhead.
Another reason for overhead is Over
Production. They may do not need the thing right now but they are working if in
case it required in future.
Rework is another issue, many
organization spends time in finding out issues in integration which was found much
later because integrations testing is done so much later in the development
life cycle. Why not do it little earlier so you can find those integration
issues sooner and reduce that rework.
Practitioners having to wait for
infrastructure team to provisioning an environment, that can be very easily
addressed by giving the developers self-service.QA practitioners having to wait
to test environment to be available because the test environments are being
shared. Once the environment it ready they might be waiting for test data to be
refresh because there is no automation there.
There are cases where customers have
challenges with integration testing because all the different services and
applications they need to be working with are not available when they need them
to be available. Simple virtualization or stubbing of those applications can
help you with that.
There are several capabilities which make up
them like
- Continuous delivery
- Infrastructure escort
- Continuous business planning
- Collaborated Development
Which one applies to you is the most
important part for you to understand and figure out. So you can focus on what
matters. Like producing software’s, producing business value for your
organization.
Comments
Post a Comment