Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Training | Simplilearn
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
Before DevOps – Waterfall model
Requirements
Design
Implementation
Verification
Maintenance
Waterfall model is the basic SDLC model
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
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
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
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
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?
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
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
DevOps over Agile model
Planning A New
Website
Website ManagDevelopment Operation
Agile:
Problem Solution
Development Operation
DevOps:
DevOps over Agile model
Planning A New
Website
Website ManagDevelopment Operation
Agile:
Problem Solution
Development Operation
DevOps:
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
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
Did you know?
Breaking news
Benefits of DevOps
Benefits of DevOps
Continuous delivery of
software
Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability
Benefits of DevOps
Continuous delivery of
software
Better collaboration
between teams
Easy deployment
Better efficiency and
scalability Errors can be fixed at
initial stage
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
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)
Lifecycle of DevOps
Lifecycle in DevOps
Continuous
monitoring
Source code
management
Continuous
deployment
Software
released
Continuous build and
test
Continuous integration
Tools in DevOps
Tools in DevOps
Continuous build and
test
Continuous
monitoring
Source code
management
Continuous
deployment
Continuous integration
Software
released
Git
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
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
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
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
Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
Local Remote
Architecture of Git
Working Directory Local RepositoryStaging Area Remote Repository
git add
Local Remote
add files to the
staging area
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
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
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
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
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
Maven
Why Maven?
Before Maven
Task: Create a football game using Java
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
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
What is Maven?
Maven is an automation tool which helps to build and manage software projects within a short period of time
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
Architecture of Maven
Pom file
Maven
commands are
executed in
pom file
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
Architecture of Maven
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Maven
local
repository
Fetches from
Architecture of Maven
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Builds plugins
Architecture of Maven
Builds profile
Pom file
Maven
commands are
executed in
pom file
Checks the dependencies
Builds plugins
Software is built
Selenium
Why Selenium?
Before Selenium
Sequential testing
This takes a lot of time!
Test 1 Test 2 Test 3 Test 4
Total Time = 4 Min 10 Seconds
50 Sec 2 Min40 Sec 1 Min
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
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
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
Architecture of Selenium
Browser drivers
HTTP
request
Web driver
API
Web driver
SPI
JSON wire protocol
HTTP
request
Web browsers
Selenium client
library
C#
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
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
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
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
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
Jenkins
Why Jenkins?
Before Jenkins:
Developer
Developer
Source code
repository
Issues in
integration
Delay in
testing
Notify developer
Error
detected
Software
delivered
No error
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
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
Issues in
integration
Delay in
testing
Developer
Developer
Why Jenkins?
Before Jenkins:
Source code
repository
Notify developer
Error
detected
No error
But what are the challenges here?Delivery of software was
delayed
Software
delivered
Why Jenkins?
After Jenkins:
Developer
Developer
Source code
repository
Build Deploy
Error
detected
Test
Fetches
changes
Notify developer
Software
delivered
No error
What is Jenkins?
Jenkins is an open source continuous integration tool. It helps to automate continuous development, testing and
deployment of newly created codes
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
Architecture of Jenkins
Remote source code
repository
Architecture of Jenkins
Remote source code
repository
Jenkins server master
Jenkins master pulls the code every time there
is a commit
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
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
Docker
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
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
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
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
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
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
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
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
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
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
Ansible
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:
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:
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:
What is Ansible?
Ansible is a configuration management tool where applications are deployed automatically on a variety of environments
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
Architecture of Ansible
Ansible Management
Node
InventoryModule
Playbooks
SSH
SSH
SSH
Node 1
Node 2
Node 3
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
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
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
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
Nagios
Why Nagios?
Why is the service not working?
Before Nagios
Why Nagios?
Before Nagios
Why is the service not working!!
Challenges
100%
94%
SERVER
USAGE
MEMORY
USAGE
percentage
Why Nagios?
Before Nagios
I wish someone could have notified
me about these problems
beforehand
Challenges
100%
94%
SERVER
USAGE
MEMORY
USAGE
percentage
Why Nagios?
After Nagios
This helps a lot!
Solution
Email notification:
Your memory is
almost full. Free
up some space
What is Nagios?
Nagios is an open source tool which is used to monitor systems, servers, networks and infrastructure
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
What is Nagios?
Server Storage
Nagios
System
Checks for the status
What is Nagios?
Server Storage
Nagios
Visualization
System
Stores the data
What is Nagios?
Server Storage
Nagios
Visualization
System
Alerts
Or creates
alerts
Stores the data
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Training | Simplilearn

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
  • 17. Benefits of DevOps Continuous delivery of software
  • 18. Benefits of DevOps Continuous delivery of software Better collaboration between teams
  • 19. Benefits of DevOps Continuous delivery of software Better collaboration between teams Easy deployment
  • 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)
  • 25. Lifecycle in DevOps Continuous monitoring Source code management Continuous deployment Software released Continuous build and test Continuous integration
  • 27. Tools in DevOps Continuous build and test Continuous monitoring Source code management Continuous deployment Continuous integration Software released
  • 28. Git
  • 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
  • 33. Architecture of Git Working Directory Local RepositoryStaging Area Remote Repository Local Remote
  • 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
  • 40. Maven
  • 41. Why Maven? Before Maven Task: Create a football game using Java
  • 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
  • 46. Architecture of Maven Pom file Maven commands are executed in pom file
  • 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
  • 52. Why Selenium? Before Selenium Sequential testing This takes a lot of time! Test 1 Test 2 Test 3 Test 4 Total Time = 4 Min 10 Seconds 50 Sec 2 Min40 Sec 1 Min
  • 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
  • 63. Why Jenkins? Before Jenkins: Developer Developer Source code repository Issues in integration Delay in testing Notify developer Error detected Software delivered No error
  • 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
  • 66. Issues in integration Delay in testing Developer Developer Why Jenkins? Before Jenkins: Source code repository Notify developer Error detected No error But what are the challenges here?Delivery of software was delayed Software delivered
  • 67. Why Jenkins? After Jenkins: Developer Developer Source code repository Build Deploy Error detected Test Fetches changes Notify developer Software delivered No error
  • 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
  • 70. Architecture of Jenkins Remote source code repository
  • 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
  • 91. Architecture of Ansible Ansible Management Node InventoryModule Playbooks SSH SSH SSH Node 1 Node 2 Node 3
  • 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
  • 97. Why Nagios? Why is the service not working? Before Nagios
  • 98. Why Nagios? Before Nagios Why is the service not working!! Challenges 100% 94% SERVER USAGE MEMORY USAGE percentage
  • 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
  • 103. What is Nagios? Server Storage Nagios System Checks for the status
  • 104. What is Nagios? Server Storage Nagios Visualization System Stores the data
  • 105. What is Nagios? Server Storage Nagios Visualization System Alerts Or creates alerts Stores the data

Editor's Notes

  1. Style - 01
  2. Style - 01
  3. Style - 01
  4. http://techgenix.com/in-demand-tech-jobs/ https://www.cloudcomputing-news.net/news/2018/oct/18/devops-skills-demand-continues-soar-salaries-going-it/
  5. Style - 01
  6. Style - 01
  7. Style - 01
  8. Style - 01
  9. Style - 01
  10. Style - 01
  11. Style - 01
  12. Style - 01
  13. Style - 01
  14. Style - 01
  15. Style - 01
  16. Style - 01
  17. Style - 01
  18. Style - 01
  19. Style - 01
  20. Style - 01
  21. Style - 01
  22. Style - 01
  23. Style - 01
  24. Style - 01
  25. https://www.javatpoint.com/maven-tutorial
  26. https://www.javatpoint.com/maven-tutorial
  27. https://www.javatpoint.com/maven-tutorial
  28. Push based archi for quick configurations
  29. Push based archi for quick configurations
  30. Push based archi for quick configurations
  31. https://www.javatpoint.com/maven-tutorial
  32. https://www.javatpoint.com/maven-tutorial
  33. 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.
  34. 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.
  35. WEB driver API will help a users to make their tests easier to maintain
  36. WEB driver API will help a users to make their tests easier to maintain
  37. WEB driver API will help a users to make their tests easier to maintain
  38. 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
  39. WEB driver API will help a users to make their tests easier to maintain
  40. WEB driver API will help a users to make their tests easier to maintain
  41. https://www.youtube.com/watch?v=4nKW2eF-nIw
  42. https://www.youtube.com/watch?v=4nKW2eF-nIw
  43. https://www.youtube.com/watch?v=4nKW2eF-nIw
  44. https://www.youtube.com/watch?v=4nKW2eF-nIw
  45. This increases the frequency of new software releases
  46. Push based archi for quick configurations
  47. Push based archi for quick configurations
  48. Push based archi for quick configurations
  49. Push based archi for quick configurations
  50. Push based archi for quick configurations
  51. Push based archi for quick configurations
  52. Style - 01
  53. Style - 01
  54. Style - 01
  55. Style - 01
  56. Style - 01
  57. Style - 01
  58. Style - 01
  59. Style - 01
  60. Style - 01
  61. Style - 01
  62. https://www.youtube.com/watch?v=4nKW2eF-nIw
  63. https://www.youtube.com/watch?v=4nKW2eF-nIw
  64. https://www.youtube.com/watch?v=4nKW2eF-nIw
  65. Push based archi for quick configurations
  66. Push based archi for quick configurations
  67. https://www.youtube.com/watch?v=4nKW2eF-nIw
  68. https://www.youtube.com/watch?v=4nKW2eF-nIw
  69. https://www.youtube.com/watch?v=4nKW2eF-nIw
  70. https://www.youtube.com/watch?v=4nKW2eF-nIw
  71. https://www.youtube.com/watch?v=4nKW2eF-nIw
  72. https://www.javatpoint.com/maven-tutorial
  73. https://www.javatpoint.com/maven-tutorial
  74. https://www.javatpoint.com/maven-tutorial
  75. https://www.javatpoint.com/maven-tutorial
  76. Problkem remidation- allow automatic restart of failed applications and services
  77. Problkem remidation- allow automatic restart of failed applications and services
  78. Problkem remidation- allow automatic restart of failed applications and services
  79. Problkem remidation- allow automatic restart of failed applications and services
  80. Problkem remidation- allow automatic restart of failed applications and services