Sei sulla pagina 1di 24

Vamshi Pulipati

 What is Devops
 Why Devops
 Advantages fo Devops
 Disadavantages of Devops
 Tools in Devops
 Devops cycle
build,Run,Implementation,Montior..and relevant
tools
 Git
 Chef
 Jenkin
 Docker
 Kubernities
 Monitoring
Devops 2
DevOps is a set of practices which integrates developers and operations teams to improve
collaboration and productivity by automating infrastructure, automating workflows and
continuously measuring application performance..

 The software written in small chunks that were integrated tested,monitored and deployed
rather than writing large chunks of code at once. They have both development and production
environment Identical to each other.

 DevOps aims to include everyone who has a stake in the game by involving them early on in the
collaborative process. Achieving that success with DevOps starts with understanding the key
business benefits. Organisations are able to move faster with less downtime and fewer security
issues.

Devops 3
 Shorter Development Cycles, Faster Innovation :
With joint development and operations efforts, the team's
applications are ready to use more quickly. This is important
because companies succeed on the basis of their ability to
innovate faster than their competitors
Reduce Implementation Failure, Reflections and Recovery
Time : With shorter development cycles, DevOps promotes
frequent code versions. This, in turn, makes it easy to detect
code defects. Therefore, teams can use their time to reduce the
number of implementation failures
Better Communication and Cooperation
Greater Competencies : High efficiency helps accelerate
development and makes it less prone to errors.
Reduce Costs and IT Staff :
All the benefits of DevOps translate into reduced general costs
and requirements of IT staff. DevOps development teams require
IT staff to be 35 percent less and IT costs 30 percent lower.

Devops 4
 IMPROVED CUSTOMER EXPERIENCE AND SATISFACTION:
Ultimately, the primary goal of DevOps is to deliver higher
quality software to end users at a faster pace, driving topline
benefits around improved customer experience and increased
revenue opportunity.
 BREAKING DOWN THE SILOS
The most important strategic advantage is proving that
self-organizational approaches can successfully break down
the silos that result from hierarchical organizational models.
DIGITAL TRANSFORMATION
At the center of the digital services is software. DevOps is
essential to being able to deliver digital services at speed and
with quality, and so the bottom-line advantage of DevOps is
that it's a foundational element of successful digital
transformation

Devops 5
 INNOVATION :
DevOps provides the ability for teams to deliver innovation rapidly If
DevOps is adopted properly by the organization, IT's role changes from
being a business cost center to being that of one that leads the innovation
for the business. Product and service offerings can be introduced, tested,
and rolled out much more quickly to the market place keeping up with the
pace of change in the market place. The principles of DevOps allow IT
teams to produce and deliver value quickly, test out hypotheses with real
users, and roll out actual services and products that bring in revenue to
help grow the business and make an impact to the top line.(multiple times
a day).
 SOFTWARE STABILITY AND QUALITY :
For IT organizations that have embraced DEVOPS, everyone is
accountable for building and running an application that works as expected.
The entire team shares the same goals around quality: performance, user
experience, stability, security and even time to market. The DEVOPS
principles ensure everything is monitored, every change is known and
everyone understands how each release impacts quality.

Devops 6
Software Feature Bloat
One of the key advantages of DevOps is that it promotes continuous
software delivery. That means new features can be rolled out faster.But the
ability to add features more easily also raises the risk that software delivery
teams will add functionality to software just because they can, not because
it’s needed. More features are not always better, even if they can be
implemented efficiently.
Infrastructure Changes
To make the most of DevOps, most organizations will have to upgrade
at least part of their infrastructure to optimize software delivery. Many will
need to migrate apps running on virtual servers to containers, for example.
Half-Baked DevOps
The final major risk of a DevOps migration is not actually a downside of
DevOps, per se. It’s a risk that results from the chance that organizations will
implement DevOps

Devops 7
 Source Code Management tools :

GitLab, GitHub (we can do check in, Checkouts and versioning)

 CI and CD:

Team City ,Jenkins , Octopus Deploy (Which builds the code and deploy)

 Containers :

Docker

 Orchestration:

Kubernets

 Monitoring:

Nagios, Google Stack driver , Application Insights.

Devops 8
Devops 9
Git is a distributed version-control system for tracking changes in source code
during software development. It is designed for coordinating work among
programmers,but it can be used to track changes in anyset of files. Its goals

include speed, data integrity and support for distributed, nolinear workflows.

Key Features:
 Branching and merging

 Small and fast

 Distributed

 Data assurance

 Staging area

 Free and OpenSource.

Devops 10
 git config :This command sets the author name and email address respectively to be
used with your commits.
Usage: git config –global user.name “[name]”
git config –global user.email “[email address]”
 git init :This command is used to start a new repository.
Usage: git init [repository name].
 git clone : This command is used to obtain a repository from an existing URL
Usage: git clone [url]
 git add : This command adds a file to the staging area.
Usage: git add [file]
 git commit : This command records or snapshots the file permanently in the version
history.
Usage: git commit -m “[ Type in the commit message]”

Devops 11
git commit -a This command commits any files you’ve added with the git add
command and also commits any files you’ve changed since then.
 git diff : This command shows the file differences which are not yet staged.
Usage: git diff
git diff –staged This command shows the differences between the files in
the staging area and the latest version present
 git reset : This command unstages the file, but it preserves the file contents.
Usage: git reset [file]
git reset [commit] This command undoes all the commits after the
specified commit and preserves the changes locally.
git reset –hard [commit] This command discards all history and goes
back to the specified commit.
 git status : This command lists all the files that have to be committed.
Usage: git status
 git rm : This command deletes the file from your working directory and stages
the deletion.
Usage: git rm [file]
 git log : This command is used to list the version history for the current branch.
Usage: git log

Devops 12
 Chef offers what it calls Automation for Web-Scale IT, by delivering fast,
scalable, flexible IT automation. Chef is a configuration management platform
that makes use of what it calls “recipes” to automate infrastructure tasks.
Examples of recipes are instructions for configuring web servers, databases
and load balancers. These recipes describe what an infrastructure consists of
and how each part of it should be deployed, configured and managed. Chef
can streamline the configuration and maintenance of a company’s servers, as
well as integrate with cloud-based platforms such as Rackspace, Amazon

Devops 13
 Jenkins is an open source automation tool written in Java with plugins built
for Continuous Integration purpose. Jenkins is used to build and test your
software projects continuously making it easier for developers to integrate
changes to the project, and making it easier for users to obtain a fresh build.
It also allows you to continuously deliver your software by integrating with a
large number of testing and deployment technologie
 With Jenkins, organizations can accelerate the software development process
through automation. Jenkins integrates development life-cycle processes of all
kinds, including build, document, test, package, stage, deploy, static analysis
and much more.

Devops 14
Before Jenkins After Jenkins

The entire source code was built Every commit made in the source
and then tested. Locating and code is built and tested. So,
fixing bugs in the event of build instead of checking the entire
and test failure was difficult and source code developers only need
time consuming, which in turn to focus on a particular commit.
slows the software delivery This leads to frequent new sftware
process. releases.

Developers know the test result of


Developers have to wait for test
every commit made in the source
results
code on the run.

You only need to commit changes


to the source code and Jenkins will
The whole process is manual
automate the rest of the process
for you.

Devops 15
 Continuous Integration With Jenkins:
Let us imagine a scenario where the complete source code of the
application was built and then deployed on test server for testing. It sounds
like a perfect way to develop a software, but, this process has many flaws as
below.
• Developers have to wait till the complete software is developed for the test
results.
• There is a high possibility that the test results might show multiple bugs. It
was tough for developers to locate those bugs because they have to check the
entire source code of the application.
• It slows the software delivery process.
• Continuous feedback pertaining to things like coding or architectural issues,
build failures, test status and file release uploads was missing due to which
the quality of software can go down.
• The whole process was manual which increases the risk of frequent failure.
 It is evident from the above stated problems that not only the
software delivery process became slow but the quality of software also went
down. This leads to customer dissatisfaction. So to overcome such a chaos
there was a dire need for a system to exist where developers can continuously
trigger a build and test for every change made in the source code. This is what
CI is all about. Jenkins is the most mature CI tool available so let us see how
Continuous Integration with Jenkins overcame the above shortcomings.
Devops 16
 Docker is computer software used for Virtualization in order to have multiple
Operating systems running on the same host. Unlike Hypervisors which are used for
creating VM (Virtual machines), virtualization in Docker is performed on system-
level in so-called Docker containers.
 As you can see the difference in the image below, Docker containers run on top of
the host's Operation system. This helps you to improves efficiency. Moreover, we
can run more containers on the same infrastructure than we can run Virtual
machines because containers use fewer resource

Devops 17
 Unlike the VMs which can communicate with the hardware of the host (ex:
Ethernet adapter to create more virtual adapters) Docker containers run in an
isolated environment on top of the host's OS. Even if your host runs Windows
OS, you can have Linux images running in containers with the help of Hyper-V,
which automatically creates small VM to virtualize the system's base image, in
this case, Linux.

 Containerization makes CI/CD seamless. For example:


applications have no system dependencies
updates can be pushed to any part of a distributed application
resource density can be optimized.

Devops 18
 Kubernetes is a container management technology developed in Google lab to
manage containerized applications in different kind of environments such as physical,
virtual, and cloud infrastructure. It is an open source system which helps in creating
and managing containerization of application. This tutorial provides an overview of
different kind of features and functionalities of Kubernetes and teaches how to
manage the containerized infrastructure and application deployment.
 One of the key components of Kubernetes is, it can run application on clusters of
physical and virtual machine infrastructure. It also has the capability to run
applications on cloud. It helps in moving from host-centric infrastructure to
container-centric infrastructure.

DevOps 19
 Etcd: It stores the configuration information which can be used by each of the
nodes in the cluster. It is a high availability key value store that can be
distributed among multiple nodes. It is accessible only by Kubernetes API
server as it may have some sensitive information. It is a distributed key value
Store which is accessible to all.
 API Server: Kubernetes is an API server which provides all the operation on
cluster using the API. API server implements an interface, which means
different tools and libraries can readily communicate with it. Kubeconfig is a
package along with the server side tools that can be used for communication.
It exposes Kubernetes API.
 Controller Manager : This component is responsible for most of the collectors
that regulates the state of cluster and performs a task. In general, it can be
considered as a daemon which runs in nonterminating loop and is responsible
for collecting and sending information to API server. It works toward getting
the shared state of cluster and then make changes to bring the current status
of the server to the desired state. The key controllers are replication
controller, endpoint controller, namespace controller, and service account
controller. The controller manager runs different kind of controllers to handle
nodes, endpoints, etc.
 Scheduler : This is one of the key components of Kubernetes master. It is a
service in master responsible for distributing the workload. It is responsible for
tracking utilization of working load on cluster nodes and then placing the
workload on which resources are available and accept the workload. In other
words, this is the mechanism responsible for allocating pods to available
nodes. The scheduler is responsible for workload utilization and allocating pod
to new node.
Devops 20
Kubernetes ─ Node Components
Following are the key components of Node server which are necessary to
communicate with Kubernetes master.
 Dockerv: The first requirement of each node is Docker which helps in running
the encapsulated application containers in a relatively isolated but lightweight
operating environment.
 Kubelet Service : This is a small service in each node responsible for relaying
information to and from control plane service. It interacts with etcd store to read
configuration details and wright values. This communicates with the master
component to receive commands and work. The kubelet process then assumes
responsibility for maintaining the state of work and the node server. It manages
network rules, port forwarding, etc.
Kubernetes Proxy Service : This is a proxy service which runs on each node and
helps in making services available to the external host. It helps in forwarding the
request to correct containers and is capable of performing primitive load
balancing. It makes sure that the networking environment is predictable and
accessible and at the same time it is isolated as well. It manages pods on node,
volumes, secrets, creating new containers’ health checkup, etc.

Devops 21
 Nagios is a powerful tool that provides you with instant awareness of your
organization’s mission-critical IT infrastructure. Nagios allows you to detect and
repair problems and mitigate future issues before they affect end-users and
customers.
By using Nagios, you can:
 Plan for infrastructure upgrades before outdated systems cause failures
 Respond to issues at the first sign of a problem
 Automatically fix problems when they are detected
 Coordinate technical team responses
 Ensure your organization’s SLAs are being met
 Ensure IT infrastructure outages have a minimal effect on your organization’s
bottom line
 Monitor your entire infrastructure and business processes

Devops 22
How It Works
 Monitoring
IT staff configure Nagios to monitor critical IT infrastructure components,
including system metrics, network protocols, applications, services, servers,
and network infrastructure.
 Alerting
Nagios sends alerts when critical infrastructure components fail and
recover, providing administrators with notice of important events. Alerts can be
delivered via email, SMS, or custom script.
 Response
IT staff can acknowledge alerts and begin resolving outages and
investigating security alerts immediately. Alerts can be escalated to different
groups if alerts are not acknowledged in a timely manner
 Reporting
Reports provide a historical record of outages, events, notifications,
and alert response for later review. Availability reports help ensure your SLAs
are being met.
 Planning
Trending and capacity planning graphs and reports allow you to
identify necessary infrastructure upgrades before failures occur.
 Maintenance
Scheduled downtime prevents alerts during scheduled maintenance and
upgrade windows.
Devops 23
RPA 24

Potrebbero piacerti anche