A BEGINNER’S GUIDE TO DevOps
An illustration
something similar to this
Bright colors to
be used
What is DevOps?
The word
“DevOps” was coined in 2009 by Patrick Debois. DevOps is a set of practices
that works to automate and integrate the processes between software development
and IT teams, so they can build, test, and release software faster and more
reliably. This term was formed by combining software “development” and IT “operations,”
which provides a starting point for understanding exactly what people typically
mean when they say “DevOps.” This signifies a cultural shift---that bridges the
gap between development and operation teams, which historically functioned in
siloes.
At its essence, DevOps is a culture, a movement, a philosophy.
Communication, Collaboration and Integration are the three main
principles of the ever-growing, modern approach to software delivery known as
“DevOps”. It unites agile, git, continuous delivery, automation, and much more,
to help development and operations teams be more efficient, innovate faster, and
deliv.er higher value to businesses and customers.
The meaning of DevOps has significantly
broadened to be an umbrella term for the processes, culture, and mindset used
to shorten the software development life cycle, using fast feedback loops to
deliver features, fixes, and updates more frequently.
There are three primary practice areas that are usually discussed in
context of DevOps.
·
Infrastructure Automation – create your systems, OS
configs, and app deployments as code.
·
Continuous Delivery – build, test, deploy your apps
in a fast and automated manner.
·
Site Reliability Engineering – operate your systems;
monitoring and orchestration, sure, but also designing for operability in the
first place.
Not
sure whether to add these last highlighted points??
How DevOps Emerged as the New Ray of Hope?
The history of
DevOps is simple, yet revolutionary. The concept of DevOps emerged out of a
discussion between Andrew Clay and Patrick Debois in 2008. They were concerned
about the drawbacks of Agile and wanted to come up with something better. The
idea slowly began to spread and after the DevOpsDays event held in Belgium in
2009, it became quite a buzzword.
What is best about DevOps is that there is
more to it than it seems. It’s not just an attempt at efficiency, it is a step
towards cultural change. We can call it a blend of agile philosophy with
lean thinking. DevOps unites the efforts of every team involved in the
project and that too with tighter integration. This cross-department
integration between developers, QA engineers, and system admins is more amazing
than it sounds.
Why is DevOps used?
DevOps allows
Agile Development Teams to implement Continuous Integration and Continuous
Delivery. This helps them to launch products faster into the market.
Other Important reasons are:
1. Predictability: DevOps offers
significantly lower failure rate of new releases
2. Reproducibility: Version
everything so that earlier version can be restored anytime.
3. Maintainability: Effortless
process of recovery in the event of a new release crashing or disabling the
current system.
4. Time to market: DevOps reduces
the time to market up to 50% through streamlined software delivery. This is
particularly the case for digital and mobile applications.
5. Greater Quality: DevOps helps the
team to provide improved quality of application development as it incorporates
infrastructure issues.
6. Reduced Risk: DevOps incorporates
security aspects in the software delivery lifecycle. It helps in reduction of
defects across the lifecycle.
7. Resiliency: The Operational state
of the software system is more stable, secure, and changes are auditable.
8. Cost Efficiency: DevOps offers
cost efficiency in the software development process which is always an
aspiration of IT companies' management.
9. Breaks larger code base into small
pieces: DevOps is based on the agile programming method. Therefore, it
allows breaking larger code bases into smaller and manageable chunks
When to adopt DevOps?
DevOps should be used for large distributed applications such as
eCommerce sites or applications hosted on a cloud platform.
When not to adopt DevOps?
It should not be used in a mission-critical application like bank,
power and other sensitive data sites. Such applications need strict access
controls on the production environment, a detailed change management policy,
access control policy to the data centers.
An illustration like
this but with 7 points mentioned below in the
above or below
illustration as another option
or
What is DevOps Lifecycle?
To understand the DevOps, it is essential
to understand the stages of the DevOps lifecycle. The continuous DevOps
lifecycle incorporates seven stages as discussed below:
1). Continuous
Development - (Plan application objectives and Code the requirements)
In the first
phase of DevOps lifecycle, the development of software happens continually. The
entire development procedure is isolated into little development cycles. In
this way, it becomes easier for a DevOps team to accelerate software
development and distribution procedure.
2). Continuous Integration - (Plan Tests and Build the
product)
The continuous integration process automatically starts after
development and demands a working connection between development and
operational teams. In order to accomplish this, integration must be performed
right on time and all developments understandable to every member of the teams.
It includes several steps like the planning of tests that will be carried out
in the next phase, understanding the code to produce the desired outcome as
needed in the initial project documentation. Continuous integration is the
seamless process in DevOps that leads to the next phase in an efficient manner.
3). Continuous Testing - (Verify the product for actual usage
in a live environment)
The testing procedure analyzes the actual utilization of an
application within the DevOps. Beta analyzers generate outcomes. The testing procedure gives additional
information about various aspects of an application that is directed to the
development procedure to improve the application.
4). Continuous Monitoring - (Monitor the product output and
find the problem areas)
The monitoring phase is the operational phase in DevOps where key
information about application usage is recorded and carefully processed to find
out trends and identify the problem areas. It enhances the operational
efficiencies of a software product that may occur in the form of documents or
produce massive data about application parameters when the application is in a
continuous use position.
5). Continuous Feedback - (Improvise the current product and
helps to release new versions quickly)
The application performance is improved consistently by analyzing
the outcome of the product. The continuous feedback is an important phase of
the software application where client’s feedback is a big asset to improve the
working of the current software product and release new versions quickly based
on the response.
6). Continuous Deployment - (Ensures product is deployed with
maximum accuracy)
The deployment procedure is accomplished so that any changes made in
the code should not affect the functioning of high traffic website.
7). Continuous operations - (Automate release process with
shorter development cycles)
All DevOps operations depend on consistency and delivery procedure
is completely computerized. It enables organizations
to quicken the general time of advertising.
It is now clear
that continuity is the critical factor in DevOps which removes the overflowing
steps. These abundant steps resist the
development, take it longer to identify problems and create a superior version
of the item.
What are the six benefits of DevOps?
1.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, microservices and continuous delivery let teams take ownership of
services and then release updates to them quicker.
2.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.
3.Reliability
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.
4.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.
5.Improved
Collaboration
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 considers the environment in which it is
run).
6.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.
What is the CALMS Framework for DevOps? (Culture, Automation, Lean,
Measurement, Sharing)
Created by Jez Humble, co-author of The
DevOps Handbook and Accelerate, the CALMS framework is used as a means of
assessing whether an organization is ready to adopt DevOps processes, or how an
organization is progressing in their DevOps transformation. It is based on the
following five pillars:
·
Culture. Before silos can be torn down, there needs to be a culture of
shared responsibility, or at least a group of people devoted to establishing
that culture in a grassroots type of way, with management approval and support.
·
Automation. Similar to the technical practices centered around continuous
delivery mentioned above, teams undertaking a DevOps transformation should be
devoted to automating as many manual tasks as possible, especially with respect
to continuous integration and test automation.
·
Lean. Development teams are making use of lean principles to eliminate
waste and optimize the value stream, such as minimizing WIP, making work
visible, and reducing hand-off complexity and wait times.
·
Measurement. The organization is devoted to collecting data on their processes,
deployments, etc., in order to understand their current capabilities and where
improvements could be achieved.
·
Sharing. A culture of openness and sharing within and between teams (and
enabled with the proper tools) keeps everyone working toward the same goals and
eases friction with hand-offs when issues arise.