This presentation about DevOps will help you understand what is DevOps, how is DevOps different from traditional IT, benefits of DevOps, the lifecycle of DevOps and tools used in DevOps processes. DevOps is one of the most trending IT jobs. It is a collaboration between development and operation teams which enables continuous delivery of applications and services to our end users. However, if you want to become a DevOps engineer, you must have knowledge of various DevOps tools (like Git, Maven, Selenium, Jenkins, Docker, Ansible, Nagios etc.) to achieve automation at each stage which helps in gaining Continuous Development, Continuous Integration, Continuous Testing and Continuous Monitoring in order to deliver a quality product to the client at a very fast pace. Now, let us get started and understand DevOps and does the various DevOps tools work.
Below are the topics explained in this DevOps presentation:
1. What is DevOps?
2. Benefits of DevOps
3. Lifecycle of DevOps
4. Tools in DevOps
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery, and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet, and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
1 of 106
More Related Content
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Training | Simplilearn
2. Before DevOps – Waterfall model
Waterfall model - Traditional development models
This model is similar to a waterfall
When the water flows off from the cliff, it
cannot go back to its previous state
3. Before DevOps – Waterfall model
Requirements
Design
Implementation
Verification
Maintenance
Waterfall model is the basic SDLC model
4. Before DevOps – Waterfall model
• It’s difficult to make changes to the previous
stage
• Not recommended for large-sized projects
• Developers and testers doesn't work together
(which can result in a lot of bugs at the end)
• Not recommended for projects where
requirements have a high risk of getting
changed
Requirements
Design
Implementation
Verification
Maintenance
5. Before DevOps – Waterfall model
Waterfall Model
Developer
Takes a very long
time for deploying
code
It’s difficult to identify and
give feedback on the
product
Operation
6. Before DevOps – Agile model
• Agile is an approach in software development where each project
is split into multiple iterations
• As a result, at the end of each iteration a software product is
delivered
DesignRequirements DesignRequirements DesignRequirements
…..
Iteration 1
Iteration 2
Iteration N
7. Before DevOps – Agile model
Agile Model
Developer
The code is working
on my system!
But, the same software
(code) isn’t working on
my system!
Operation
Agile
8. What’s in it for you?
What is DevOps?
Benefits of DevOps
Lifecycle of DevOps
Tools in DevOps
Git
Maven
Selenium
Jenkins
Docker
Ansible
Nagios
Let’s see how DevOps can solve these problems?
9. DevOps over waterfall model
DevOps Model
Developer
Takes a very long
time for deploying
code
It’s difficult to identify and
give feedback on the
product
Operation
Better monitoring and
quick feedback can be
done through DevOps
continuous monitoring
tool
Continuous integration
results in quick
deployment of code
10. DevOps over Agile model
DevOps Model
Developer
The code is working
on my system!
But, the same
software (code) isn’t
working on my
system!
Operation
Agile
Iteration
Code works on my
system too!
Both developer and
operation team work
together
11. DevOps over Agile model
Planning A New
Website
Website ManagDevelopment Operation
Agile:
Problem Solution
Development Operation
DevOps:
12. DevOps over Agile model
Planning A New
Website
Website ManagDevelopment Operation
Agile:
Problem Solution
Development Operation
DevOps:
13. What’s in it for you?
What is DevOps?
Benefits of DevOps
Lifecycle of DevOps
Tools in DevOps
Git
Maven
Selenium
Jenkins
Docker
Ansible
Nagios
14. What is DevOps?
DevOps is a collaboration between development and operation teams which enables continuous delivery of
applications and services to our end users
Development Operation
20. Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability
21. Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability Errors can be fixed at
initial stage
22. Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability Errors can be fixed at
initial stage
Better security
23. Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability Errors can be fixed at
initial stage
Better security
Less Manual
intervention (which
means less chances of
error)
27. Tools in DevOps
Continuous build and
test
Continuous
monitoring
Source code
management
Continuous
deployment
Continuous integration
Software
released
29. Why Git?
Before
Task 1 Task 2 Task 3 Task 4
Developers:
Challenges
• No collaboration
• Versions are not maintained
properly
• Time consuming
• In case the server crashes, there is
no chance of recovery
• No backup
30. Why Git?
After
Developers:
Solution
• Team collaboration
• Versions of software are
documented and maintained
accurately
• Saves time
• Easy to use
• Automatic backups
Task 2
Task 3 Task 4
Task 1
31. What is Git?
GitHub Remote Server
Developer 1 Developer 3Developer 2
Git is a distributed version control tool which is used for managing source code
32. What is Git?
Git is a distributed version control tool which is used for managing source code
It is used to track
changes in the source
code
It’s a software tool Multiple
developers can
work together
Supports non-linear
development
34. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
Local Remote
add files to the
staging area
35. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
git commit
Local Remote
add files to the
staging area
commit those files to the
local repository
36. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
git commit
git push
Local Remote
add files to the
staging area
commit those files to the
local repository
push the committed files to
the remote repository
37. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
git commit
git push
git pull
Local Remote
add files to the
staging area
commit those files to the
local repository
push the committed files to
the remote repository
fetches all the changes from a
remote repository to a local
repository
38. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
git commit
git push
git pull
git checkout
Local Remote
add files to the
staging area
create new branches and
switch to them when required
commit those files to the
local repository
push the committed files to
the remote repository
fetches all the changes from a
remote repository to a local
repository
39. Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
git commit
git push
git pull
git checkout
git merge
Local Remote
After you are done with the changes, you can merge
the new branches to the master branch
add files to the
staging area
create new branches and
switch to them when required
commit those files to the
local repository
push the committed files to
the remote repository
fetches all the changes from a
remote repository to a local
repository
42. Why Maven?
Before Maven
Task: Create a football game using Java
Challenges
• For each project you need to keep adding a
set of Jars
• Even a minor mistake in the structure of
servlet doesn’t give the right output
• Building and deploying a project takes up a
lot of time
43. Why Maven?
After Maven
Task: Create a football game using Java
Solution
Maven has live templates in its central
repository. So, a user has to declare only the
dependencies that he requires
Maven will download and deploy the
dependencies with the application
44. What is Maven?
Maven is an automation tool which helps to build and manage software projects within a short period of time
45. What is Maven?
Maven is an automation tool which helps to build and manage software projects within a short period of time
Easy build processEasy to use Instant access to new
features with no
additional
configurations
Supports parallel
builds
47. Architecture of Maven
Maven
commands are
executed in
pom file
POM (project object model) is
a XML file which consists
details of the project and
configuration in order to build
software
Pom file
48. Architecture of Maven
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Maven
local
repository
Fetches from
49. Architecture of Maven
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Builds plugins
50. Architecture of Maven
Builds profile
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Builds plugins
Software is built
53. Why Selenium?
After Selenium Parallel testing
That was so fast!
Total Time = 2 Minutes
50 Sec
2 Min
40 Sec
1 Min
Test 1
Test 2
Test 3
Test 4
54. What is Selenium?
Selenium is an open source automation tool which is used for testing web applications. It is mainly used for regression
and functional testing
55. What is Selenium?
Selenium is an open source automation tool which is used for testing web applications. It is mainly used for regression
and functional testing
Supports parallel
test execution
High accuracy Allows scripting in
several languages
Fast execution
56. Architecture of Selenium
Browser drivers
HTTP
request
Web driver
API
Web driver
SPI
JSON wire protocol
HTTP
request
Web browsers
Selenium client
library
C#
57. Architecture of Selenium
Browser drivers
HTTP
request
Web driver
API
Web driver
SPI
JSON wire protocol
HTTP
request
Web browsers
Selenium client
library
C#
Selenium WebDriver
codes are build using
these client libraries
58. Selenium client
library
C#
Architecture of Selenium
Browser drivers
Web driver
SPI
JSON wire protocol
HTTP
request
Web browsers
WebDriver application
programming interface (API) is
used to automate web
application testing in a easier
way
HTTP
request
Web driver
API
Note: The commands are sent to SPI
59. HTTP
request
Web driver
API
Selenium client
library
C#
Architecture of Selenium
Browser drivers Web browsers
WebDriver service provider interface
(SPI) is immutable and stateless. It
sends the command to browser
drivers using JSON wire protocol
Web driver
SPI
JSON wire protocol
HTTP
request
60. Web driver
SPI
JSON wire protocol
HTTP
request
HTTP
request
Web driver
API
Selenium client
library
C#
Architecture of Selenium
Web browsers
The drivers manages the
communication between the
browsers and the JSON wire
protocol
Browser drivers
Note: Each web browser has its own driver on
61. Browser drivers
Web driver
SPI
JSON wire protocol
HTTP
request
HTTP
request
Web driver
API
Selenium client
library
C#
Architecture of Selenium
As soon the command is
received from the WebDriver,
the browser driver will execute
it on the respective web
browser
Web browsers
64. Why Jenkins?
Before Jenkins:
Source code
repository
Issues in
integration
Delay in
testing
Notify developer
Error
detected
Software
delivered
No error
But what are the challenges here?
Developers had to wait till the
software was built for test
results
Developer
Developer
65. Developer
Developer
Why Jenkins?
Before Jenkins:
Source code
repository
Notify developer
Error
detected
Software
delivered
No error
But what are the challenges here?
Lack of continuous feedback
resulted in a lot time
consumption
Issues in
integration
Delay in
testing
68. What is Jenkins?
Jenkins is an open source continuous integration tool. It helps to automate continuous development, testing and
deployment of newly created codes
69. What is Jenkins?
Jenkins is an open source continuous integration tool. It helps to automate continuous development, testing and
deployment of newly created codes
It is easily distributed
across multiple
machines
Has multiple pluginsEasy installation and
configuration
Jenkins can be
extended via plugins
71. Architecture of Jenkins
Remote source code
repository
Jenkins server master
Jenkins master pulls the code every time there
is a commit
72. Architecture of Jenkins
Jenkins slave Jenkins slave Jenkins slave
TCP/IPTCP/IPTCP/IP
Jenkins master distributes its
workload to all the slaves
Remote source code
repository
Jenkins server master
Jenkins master pulls the code every time there
is a commit
73. Architecture of Jenkins
Remote source code
repository
Jenkins slave Jenkins slave Jenkins slave
TCP/IPTCP/IPTCP/IP
Jenkins master pulls the code every time there
is a commit
Jenkins server master
On request from Jenkins
master, the slaves accept
tasks and produce test
reports
Test reports
75. Why Docker?
Before
Occupied memory
Wasted memory
5 GB
3 GB 2 GB
2 GB
1 GB
3 GB
Memory
8 GB
4 GB 4 GB
App 1 App 2 App 3
Lorem ipsum
In a virtual machine, only 10 GB of
memory is consumed whereas the
remaining 6 GB of unused memory
cannot be utilized again
76. Why Docker?
After
Occupied memory
Can be reused
memory
5 GB
3 GB 2 GB
2 GB
1 GB
3 GB
Memory
8 GB
4 GB 4 GB
App 1 App 2 App 3
With Docker, when 10 GB of memory is
used, the remaining 6 GB of memory can
be reused for a new container
Lorem ipsum
77. What is Docker?
Docker is an OS-level virtualization software platform that enables developers and IT administrators to create, deploy
and run applications in a Docker Container with all their dependencies
Docker Engine
Host OS
Infrastructure
App A
Bins/Libs
App C
Bins/Libs
Docker Container
1
App B
Bins/Libs
Docker Container
2
Docker Container
3
Note: Docker Container is an executable package of application and its dependencies together
78. What is Docker?
Docker is an OS-level virtualization software platform that enables developers and IT administrators to create, deploy
and run applications in a Docker Container with all their dependencies
Isolated applicationsShort boot-up uptimeHigh scalability
and efficiency
Reusable data
volumes
79. Architecture of Docker
Docker Client
Docker Host
Docker Daemon
Docker Registry
ImagesContainer
Container
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
80. Architecture of Docker
Docker Host
Docker Daemon
Docker Registry
ImagesContainer
Container
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
Docker Client issues
commands to the Docker
Daemon
Docker Client
81. Architecture of Docker
Docker Host
Docker Registry
ImagesContainer
Container
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
Docker Client
Docker Daemon
Docker Daemon is a server
which interacts with the
operating system and
performs all kind of tasks
given by Docker client
82. Architecture of Docker
Docker Host
Docker Registry
Container
Container
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
Docker Client
Docker DaemonDocker Images is a set of
instructions that is used for
creating Docker containers
Images
83. Architecture of Docker
Docker Host
Docker Registry
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
Docker Client
Docker Daemon
Images
Docker container is a
lightweight software package
that includes all the
dependencies to run an
application Container
Container
84. Architecture of Docker
Docker Host
REST API
Server
Client
Docker CLI
Docker Daemon
REST API
Docker Engine
Docker Toolbox
Docker Client
Docker Daemon
ImagesContainer
Container
Docker Registry
Docker Registry is a service
to host and distribute Docker
Images among users
86. Why Ansible?
Task: Install Tomcat on all the 3 web servers and Redis on the 2 database servers
This work is a piece of
cake for me!
Before Ansible:
87. Why Ansible?
This process will take a
lot of time for me!!
Task: Install Tomcat on all the 33 web servers and Redis on the 22 database servers
…..
…
Before Ansible:
88. Why Ansible?
With Ansible, a code is written
once for the installation and
deployed multiple times
Task: Install Tomcat on all the 33 web servers and Redis on the 22 database servers
…..
…
After Ansible:
89. What is Ansible?
Ansible is a configuration management tool where applications are deployed automatically on a variety of environments
90. What is Ansible?
Ansible is a configuration management tool where applications are deployed automatically on a variety of environments
Uses SSH for secure
connections
Agentless
tool
Push based
configuration tool
Maintains consistency
of a product’s
performance
X
92. Architecture of Ansible
Ansible Management
Node
Inventory
Playbooks
SSH
SSH
SSH
Node 1
Node 2
Node 3
Module
Module is a collection of
configuration code files
93. Architecture of Ansible
Ansible Management
Node
InventoryModule
SSH
SSH
SSH
Node 1
Node 2
Node 3
Playbooks
Playbooks are used for
configuration of multiple
servers
94. Architecture of Ansible
Ansible Management
Node
Module
Playbooks
SSH
SSH
SSH
Node 1
Node 2
Node 3
Inventory is a document that
groups the nodes
Inventory
95. Architecture of Ansible
Ansible Management
Node
InventoryModule
Playbooks
Node 1
Node 2
Node 3
SSH
SSH
SSH
For secure connection, Ansible
node connects to other nodes
through SSH
99. Why Nagios?
Before Nagios
I wish someone could have notified
me about these problems
beforehand
Challenges
100%
94%
SERVER
USAGE
MEMORY
USAGE
percentage
100. Why Nagios?
After Nagios
This helps a lot!
Solution
Email notification:
Your memory is
almost full. Free
up some space
101. What is Nagios?
Nagios is an open source tool which is used to monitor systems, servers, networks and infrastructure
102. What is Nagios?
Nagios is an open source tool which is used to monitor systems, servers, networks and infrastructure
Problem remediationComprehensive
monitoring
High availabilityEasy to use
Regression testing is the process to make sure that the older programming still works with the new changes.
Functional testing ensures that the requirements are properly satisfied by the application.
Regression testing is the process to make sure that the older programming still works with the new changes.
Functional testing ensures that the requirements are properly satisfied by the application.
WEB driver API will help a users to make their tests easier to maintain
WEB driver API will help a users to make their tests easier to maintain
WEB driver API will help a users to make their tests easier to maintain
Stateless: So if you call a function twice you will always have exactly the same result. Everything is immutable and any function only depends on it’s input
WEB driver API will help a users to make their tests easier to maintain
WEB driver API will help a users to make their tests easier to maintain
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
This increases the frequency of new software releases
Push based archi for quick configurations
Push based archi for quick configurations
Push based archi for quick configurations
Push based archi for quick configurations
Push based archi for quick configurations
Push based archi for quick configurations
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
Style - 01
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
Push based archi for quick configurations
Push based archi for quick configurations
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.youtube.com/watch?v=4nKW2eF-nIw
https://www.javatpoint.com/maven-tutorial
https://www.javatpoint.com/maven-tutorial
https://www.javatpoint.com/maven-tutorial
https://www.javatpoint.com/maven-tutorial
Problkem remidation- allow automatic restart of failed applications and services
Problkem remidation- allow automatic restart of failed applications and services
Problkem remidation- allow automatic restart of failed applications and services
Problkem remidation- allow automatic restart of failed applications and services
Problkem remidation- allow automatic restart of failed applications and services