0% found this document useful (0 votes)
38 views14 pages

5.chap 1

The document discusses DevOps, including its definition as a culture that promotes collaboration between development and operations. It outlines the origins and need for DevOps, comparing traditional IT processes to the DevOps approach. Key aspects like the DevOps lifecycle and benefits of Agile methodology are also examined.

Uploaded by

akshataharage
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)
38 views14 pages

5.chap 1

The document discusses DevOps, including its definition as a culture that promotes collaboration between development and operations. It outlines the origins and need for DevOps, comparing traditional IT processes to the DevOps approach. Key aspects like the DevOps lifecycle and benefits of Agile methodology are also examined.

Uploaded by

akshataharage
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
You are on page 1/ 14

Chap 1

DevOps

DevOps word in itself is a combination of two words one is “Development,” and the other is
“Operations.” It is neither an application nor a tool; instead, it is just a culture that
collaboratively promotes development and operation. As a result of DevOps implementation,
the speed to deliver applications and services has increased.

DevOps enables organizations to serve their customers powerfully and better in the market.
In other words, we can say that DevOps is the process of alignment of IT and development
operations with better and improved communication

Where did DevOps come from?

There are many stories about the DevOps origins, but it is not created out of the whole cloth.
Its seeds were planted many years ago and recently nurtured by expert IT professionals in
several disciplines. Two primary ancestors of DevOps are given below:

1. ESM (Enterprise Systems Management): People involved in the initial phases of


DevOps are system administrators. These experts brought the critical ESM practices
to DevOps like configuration management, automated provisioning, system
monitoring, the toolchain approach, etc.
2. Agile Development: DevOps can be considered as an outgrowth of agile. It is simply
extending the Agile principles beyond the boundaries of the code to the entire
delivered services.

What is the need for DevOps?

DevOps implementation has increased the rate of software delivery and revenue for business
stakeholders. The following listed reasons are the most considerable ones that led to the
creation of DevOps.
 Before DevOps, operation and development teams worked in an isolated environment.
 Testing and Deployment activities were primarily performed, isolated after the
design-build step, which took more time than the actual project completion time.
 Team members usually spend a significant amount of time in deploying, testing,
designing, and building the projects
 Human production errors were deployed during manual code conduction.
 Operations and coding teams generally had different timelines and did not have
proper synchronization, which resulted in further delay.

To avoid the hassles mentioned above and non-collaborative performance measures, there
was an urgent need for robust IT technology like DevOps to satisfy business owners and
stakeholders.

How is DevOps different from Traditional IT?

Let us compare the waterfall model with DevOps to see what changes DevOps brings to IT.
Take a few assumptions for this comparison, like the application has to make live in the next
two weeks, and more than 80% of the coding is complete. We assume that the application has
been launched recently, and the process of buying servers to ship the code has just begun.

Traditional IT DevOps

Once the order for new


servers is placed, the
development team
starts working on
testing. The Once the order for new servers is placed, the development team and operations team
development team start the paperwork to set up new servers, resulting in better infrastructure equipment
must continue with visibility.
heavy paperwork as
enterprises are required
to deploy the
infrastructure.

Projections about Projections about failover, data center locations, redundancy, and storage requirements
failover, data center are 100% clear because of accurate inputs given by the development team.
locations, redundancy,
and storage
requirements are not
precise as no inputs are
available from the
development team,
even if they have in-
depth knowledge of the
application.

In old software
development
processes, the
operations team has no
In DevOps, the operations team has a complete idea of the development progress.
idea of the
The operations and development teams work together to develop a monitoring plan
development team's
that caters to the current business, and IT needs.
progress. The operation
team has to prepare a
monitoring plan as per
their understanding.

Before going live, the


load testing may crash
the application, and the
release may get Before going live, the load testing makes the application a little slow.
delayed. It affects the The development team quickly fixes bottlenecks and releases the application on time.
overall cost of the
project and the project
delivery deadline.

DevOps Lifecycle Phases and Measures

DevOps is basically an integration of development and operation processes. One cannot


implement DevOps without understanding its lifecycle. The following steps are included in
the DevOps lifecycle:
i). Development

This is the first stage of the DevOps lifecycle in which applications' development occurs
constantly. The entire development process is broken down into small steps or development
cycles. As a result of this, the speed of software development and delivery is increased.

ii). Testing

Selenium-like testing tools are used to speed up the overall testing process by quickly
identifying errors and fixing bugs.

iii). Integration

New functionalities are integrated with the prevailing code, and new code tes

iv). Deployment

Continuous deployment is part of the DevOps lifecycle. When it is performed in the right
way, then it can affect the overall functioning of a high-traffic website.

v). Monitoring

Inappropriate system behaviour is managed by monitoring. Through proper monitoring, the


bugs are found and fixed in a hassle-free way.

These are the building blocks for any DevOps application. As per DevOps culture, a group of
Engineers is responsible for each stage of DevOps application development, including the
developer, system admin, testing, and others.
Agile

Agile is an iterative approach to project management and software development that helps
teams deliver value to their customers faster and with fewer headaches. Instead of betting
everything on a "big bang" launch, an agile team delivers work in small, but consumable,
increments. Requirements, plans, and results are evaluated continuously so teams have a
natural mechanism for responding to change quickly.
Benefits of Agile Methodology

 Faster. Speed is one of the biggest benefits of Agile Methodology. A faster software
development life cycle means less time between paying and getting paid. That, in turn, means
a more profitable business.
 Increased customer satisfaction. With Agile, customers don’t wait for months or years, only
to get exactly what they didn’t want. Instead, they get iterations of something very close to
what they want, very fast. The system adjusts quickly to refine the successful customer
solution, adapting as it goes to changes in the overall environment.
 Values employees. Employees whose ideas are valued are vastly more productive than those
who are ordered to follow a set of rules. The Agile Methodology respects employees by
giving them the goal, then trusting them to reach it. Since they’re the ones with their hands on
the controls and the ones who see the obstacles that crop up every day, employees are in the
best position to respond to challenges and meet the goals at hand.
 Eliminates rework. By involving the customer at more than just the phases of requirements
and delivery, the project remains on-task and in-tune with customer needs at every step. This
means less backtracking and less “out on a limb” time between the time we do the work and
the time the customer suggests revisions.

Examples of Agile Methodology

The most popular and common examples are Scrum, eXtreme Programming (XP), Feature
Driven Development (FDD), Dynamic Systems Development Method (DSDM), Adaptive
Software Development (ASD), Crystal, and Lean Software Development (LSD).

History of Devops
DevOps was the brainchild of Patrick Debois. Patrick wanted to learn IT from every
perspective possible. In 2007, while he was working in charge of testing a large data centre
migration project, he had to encounter the tedious process of going back and forth with the
development and testing silos. It was too time-consuming and the divide between the two
departments was huge.

Later in 2009, Patrick stumbled upon a talk entitled "10+ Deploys a day: Dev and Ops
cooperation at Flickr" and instantly came to the realization that it was what he was
searching for. As a result, he decided to band together a group of developers and
administrators to further discuss the topic. Naming the event DevOpsDays, it garnered the
attention of people all over the internet and soon after, numerous enterprises started to
embrace the idea of DevOps resulting from the conference.
Since the inception of DevOps in 2007-2008, it has multiplied while being adopted by
companies like Amazon, Netflix, and Adobe to name a few.

It is important to know where DevOps comes from so that we can know how DevOps is still
standing strong even after a decade after Patricks’s conference. The idea was born from the
mind of developers, testers, and operation leaders who wanted to discuss the concerns about
their industry and propose solutions on how to best get work accomplished. It was made
possible by the people whom it intended to help.

If you think DevOps is a good solution for your organization and want it implemented right
on the first try itself, 4Labs Technologies is the IT solution partner you need. With a proven
track record and impeccable results, we are confident enough in finding the right solution for
you.

Install Ubuntu desktop


https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview

Linux OS
Linux® is an open source operating system (OS). An operating system is the software that
directly manages a system’s hardware and resources, like CPU, memory, and storage. The
OS sits between applications and hardware and makes the connections between all of your
software and the physical resources that do the work.

Every version of the Linux OS manages hardware resources, launches and handles
applications, and provides some form of user interface. The enormous community
for developers and wide range of distributions means that a Linux version is
available for almost any task, and Linux has penetrated many areas of computing.
For example, Linux has emerged as a popular OS for web servers such as Apache,
as well as for network operations, scientific computing tasks that require huge
compute clusters, running databases, desktop and endpoint computing, and running
mobile devices with OS versions like Android.

The Linux OS can be found in many different settings, supporting many different
use cases. Linux is used in the following ways:

 Server OS for web servers, database servers, file servers, email servers and any
other type of shared server. Designed to support high-volume and
multithreading applications, Linux is well-suited for all types of server
applications.

 Desktop OS for personal productivity computing. Linux is an open source and


freely available desktop environment for users who prefer it to commercial
OSes.

 Headless server OS for systems that do not require a graphical user interface
(GUI) or directly connected terminal and keyboard. Headless systems are often
used for remotely managed networking server and other devices.

 Embedded device or appliance OS for systems that require limited computing


function. Linux is used as an embedded OS for a variety of applications,
including household appliances, automotive entertainment systems and network
file system appliances.

 Network OS for routers, switches, domain name system servers, home


networking devices and more. For example, Cisco offers a version of the Cisco
Internetwork Operating System (IOS) that uses the Linux kernel.

 Software development OS for enterprise software development. Although


many development tools have been ported to Windows or other OSes, Linux is
home to some of the most widely used open source software development tools.
For example, git for distributed source control; vim and emacs for source code
editing; and compilers and interpreters for almost every programming language.
 Cloud OS for cloud instances. Major cloud computing providers offer access to
cloud computing instances running Linux for cloud servers, desktops and other
services.
stakeholders for DevOps:

Dev Includes all people involved in developing software products and


services including but not exclusive to:

 Architects, business representatives, customers, product owners,


project managers, quality assurance (QA), testers and analysts,
suppliers …

Ops Includes all people involved in delivering and managing software


products and services including but not exclusive to:

 ·Information security professionals, systems engineers, system


administrators, IT operations engineers, release engineers, database
administrators (DBAs), network engineers, support professionals,
third party vendors and suppliers…
Goals of DevOps

The fast-paced growth of the IT industry and continuous advancements in


technology make it critical to set DevOps goals that are experimental and
challenging for companies to compete and thrive in the market. Here are
the key goals and principles that every successful DevOps program has in
common.

1. Ensures effective collaboration between teams


Effective collaboration in any process relies on shared ownership. During
the development process, all those involved should embrace the fact that
everyone is equally responsible for the entire development process.
Whether it is development, testing, or deployment, each team member
should be involved. They should understand that they have an equal stake
in the final outcome.
2. Creates scalable infrastructure platforms
The primary focus of DevOps is to create a sustainable infrastructure for
applications that make them highly scalable. According to the demands of
the modern-day business world, scalable apps have become an absolute
necessity. In an ideal situation, the process of scaling should be reliable
and fully automated. As a result, the app will have the ability to adapt to
any situation when a marketing effort goes viral. With the app being
scalable, it can adjust itself to large traffic volumes and provide an
immaculate user experience.

3. Builds on-demand release capabilities

Companies must focus on keeping their software in a ‘releasable’ state.


Continuous delivery will allow the software to add new features and go
live at any stage. DevOps aims to automate the process of release
management because it has a plethora of advantages. Automated release
management is predictable, fast, and very consistent. Moreover, through
automation, companies can release new versions as per their requirements.
Automated release management also has complete and thorough audit
trials, as these are essential for compliance purposes.

4. Provides faster feedback

Automating monotonous tasks such as testing and reporting will accelerate


the process of rapid feedback. Since the development team will know what
has to change, it can roll out the updated version faster. In addition, the
team can better understand the impact of the changes that it has done in the
software lifecycle. A concrete understanding of changes will assist team
members in working efficiently in tandem. With rapid feedback, the
operations team and developers can make better decisions collectively and
enhance the app’s performance.

DevOps Tools

DevOps is the next evolution of agile methodologies. A cultural shift that brings development
and operations teams together. DevOps is a practice that involves a cultural change, new
management principles, and technology tools that help to implement best practices.
When it comes to a DevOps toolchain, organizations should look for tools that improve
collaboration, reduce context-switching, introduce automation, and leverage observability
and monitoring to ship better software, faster.

Regardless of the type of DevOps toolchain an organization uses, a DevOps process needs to
use the right tools to address the key phases of the DevOps lifecycle:
 Discover
 Plan
 Build
 Test
 Monitor
 Operate
 Continuous feedback

With an open DevOps toolchain, the selected tools touch multiple phases of the DevOps
lifecycle. The following sections showcase some of the most popular tools for DevOps, but
given the nature of the market, this list changes frequently. Providers add new capabilities
that enable them to span more phases of the DevOps lifecycle, new integrations are
announced each quarter, and in some cases, providers consolidate their offerings to focus on a
specific problem for their users.
Discover

In the Discover phase, a DevOps team researches and defines the scope of a project. In
particular, it involves activities such as user research, establishing goals, and defining
success.

Tools like Mural and Miro empower the entire software team to gather ideas and conduct
research. Jira Product Discovery organizes this information into actionable inputs and
prioritizes actions for development teams. As you’re prioritizing, you’ll also need to keep
your backlog of user feedback in mind.
Plan

Taking a page out of the agile handbook, we recommend tools that allow development and
operations teams to break work down into smaller, manageable chunks for quicker
deployments. This allows you to learn from users sooner and helps with optimizing a product
based on the feedback. Look for tools that provide sprint planning, issue tracking, and allow
collaboration, such as Jira.

And don’t forget about integrations and feature flags. Wherever you decide to scope your
feature or project, it should be converted into user stories in your development backlog.
Feature flags are if-statements in the code base that enable teams to turn features on and off.
Build

Production-identical environments for development

While Puppet and Chef primarily benefit operations, developers use open source tools like
Kubernetes and Docker to provision individual development environments. Coding against
virtual, disposable replicas of production helps you get more work done.

When every team member works from identically-provisioned environments, “Works on my


machine!” stops being funny because it’s true (now it’s just funny).

Infrastructure as code

Developers create modular applications because they’re more reliable and maintainable. So
why not extend that thinking to IT infrastructure? This can be difficult to apply to systems
because they are always changing. So we get around that by using code for provisioning.
Infrastructure as code means re-provisioning is faster than repairing – and more consistent
and reproducible. It also means you can easily spin up variations of your development
environment with similar configuration as production. Provisioning code can be applied and
reapplied to put a server into a known baseline. It can be stored in version control. It can be
tested, incorporated into CI (continuous integration), and peer-reviewed.
When institutional knowledge is, well, codified in code, the need for run books and internal
documentation fades. What emerges are repeatable processes, and reliable systems.

Source control and collaborative coding

It’s important to have source control of your code. Source control tools help store the code in
different chains so you can see every change and collaborate more easily by sharing those
changes. Rather than waiting on change approval boards before deploying to production, you
can improve code quality and throughput with peer reviews done via pull requests.

Continuous Delivery

Continuous integration is the practice of checking in code to a shared repository several times
a day, and testing it each time. That way, you automatically detect problems early, fix them
when they’re easiest to fix, and roll out new features to your users as early as possible.

Code review by pull-requests requires branching and is all the rage. The DevOps North Star
is a workflow that results in fewer and faster branches and maintains testing rigor without
sacrificing development speed.
Test

Testing tools span many needs and capabilities, including exploratory testing, test
management, and orchestration. However, for the DevOps toolchain, automation is an
essential function. Automated testing pays off over time by speeding up your development
and testing cycles in the long run. And in a DevOps environment, it’s important for another
reason: awareness.
Test automation can increase software quality and reduce risk by doing it early and often.
Development teams can execute automated tests repeatedly, covering several areas such as
UI testing, security scanning, or load testing. They also yield reports and trend graphs that
help identify risky areas.

Risk is a fact of life in software development, but you can’t mitigate what you can’t
anticipate. Do your operations team a favor and let them peek under the hood with you. Look
for tools that support wallboards, and let everyone involved in the project comment on
specific build or deployment results. Extra points for tools that make it easy to get Operations
involved in blitz testing and exploratory testing.
Deploy

One of the most stressful parts of shipping software is getting all the
change, test, and deployment information for an upcoming release into one place. The last thing
anyone needs before a release is a long meeting to report on status. This is where release dashboards
come in.

Look for tools with a single dashboard integrated with your code repository and deployment
tools. Find something that gives you full visibility on branches, builds, pull requests, and
deployment warnings in one place.

Operate

Incident, change and problem tracking


The keys to unlocking collaboration between DevOps teams is making sure
they’re viewing the same work. What happens when incidents are reported?
Are they linked and traceable to software problems? When changes are made,
are they linked to releases?
Nothing blocks Dev’s collaboration with Ops more than having incidents and software
development projects tracked in different systems. Look for tools that
keep incidents, changes, problems, and software projects on one platform so you can identify
and fix problems faster.
Observe

Application and server performance monitoring

There are two types of monitoring that should be automated: server monitoring and
application performance monitoring.

Manually “topping” a box or hitting your API with a test is fine for spot-checking. But to
understand trends and the overall health of your application (and environments), you need
software that is listening and recording data 24/7. Ongoing observability is a key capability
for successful DevOps teams.

Look for tools that integrate with your group chat client so alerts go straight to your team’s
room, or a dedicated room for incidents.
Continuous Feedback

Customers are already telling you whether you’ve built the right thing – you just have to
listen. Continuous feedback includes both the culture and processes to collect feedback
regularly, and tools to drive insights from the feedback. Continuous feedback practices
include collecting and reviewing NPS data, churn surveys, bug reports, support tickets, and
even tweets. In a DevOps culture, everyone on the product team has access to user comments
because they help guide everything from release planning to exploratory testing sessions.

You might also like