What Do You Know About Devops?: It Industry
What Do You Know About Devops?: It Industry
Your answer must be simple and straightforward. Begin by explaining the growing
importance of DevOps in the IT industry. Discuss how such an approach aims to synergize
the efforts of the development and operations teams to accelerate the delivery of software
DevOps is a culture that allows the development and the operations team to work
and rapid releases of software, along with customer feedback. It addresses gaps and
DevOps addresses gaps and conflicts between the Developers and IT Operations.
1. Selenium
2. Puppet
3. Chef
4. Git
5. Jenkins
6. Ansible
7. Docker
● Plan: Initially, there should be a plan for the type of application that needs to be
idea.
● Build: Build the application by integrating various codes formed in the previous
steps.
● Test: This is the most crucial step of the application development. Test the
● Integrate: Multiple codes from different programmers are integrated into one.
ensured that any new changes do not affect the functioning of a high traffic
website.
end-user requirements.
The above figure indicates the DevOps lifecycle.
Technical benefits
Business benefits
The following standard approaches can be used to implement DevOps in a specific project:
Stage 1
An assessment of the existing process and implementation for about two to three weeks to
identify areas of improvement so that the team can create a road map for the
implementation.
Stage 2
Create a proof of concept (PoC). Once it is accepted and approved, the team can start on
Stage 3
By following the proper steps for version control, integration, testing, deployment, delivery,
production automatically
a developed culture of
monitoring
9. How does continuous monitoring help you maintain the entire architecture of the
system?
● Ensures that all services, applications, and resources are running on the servers
properly.
correctly or not.
● Built for scale: You can manage a single instance or scale to thousands using AWS
services.
● Automation: AWS lets you automate tasks and processes, giving you more time
to innovate
● Secure: Using AWS Identity and Access Management (IAM), you can set user
● Meantime to failure recovery: This is the average time taken to recover from a
failure.
● Ensuring all your servers and other infrastructure components are provisioned
service (IaaS).
Start by talking about the age-old mechanisms of writing commands onto script files and
testing them in a separate environment before deployment and how this approach is being
replaced by IaC. Similar to the codes written for other services, with the help of AWS, IaC
manner, using formats such as JSON or YAML. This enables easier development and faster
14. Why Has DevOps Gained Prominence over the Last Few Years?
Before talking about the growing popularity of DevOps, discuss the current industry
scenario. Begin with some examples of how big players such as Netflix and Facebook are
investing in DevOps to automate and accelerate application deployment and how this has
helped them grow their business. Using Facebook as an example, you would point to
Facebook’s continuous deployment and code ownership models and how these have
helped it scale up but ensure the quality of experience at the same time. Hundreds of lines
Your next use case should be Netflix. This streaming and on-demand video company follow
similar practices with fully automated processes and systems. Mention the user base of
these two organizations: Facebook has 2 billion users while Netflix streams online content
rates for releases, reduce the lead time between bug fixes, streamline and continuous
We will now look into the next set of DevOps Interview Questions that includes - Git,
Selenium, Jenkins.
15. What are the fundamental differences between DevOps & Agile?
The main differences between Agile and DevOps are summarized below:
Agility
Focus Area Main priority is Time and Quality and Time management
Feedback Source The main source of feedback - The main source of feedback -
cycles feedback.
followed.
Patterns are common practices that are usually followed by organizations. An anti-pattern
is formed when an organization continues to blindly follow a pattern adopted by others but
does not work for them. Some of the myths about DevOps include:
● DevOps == Agile
● All team members are free to work on any file at any time with the Version
Control System (VCS). Later on, VCS will allow the team to integrate all of the
● The VCS asks to provide a brief summary of what was changed every time we
save a new version of the project. We also get to examine exactly what was
modified in the content of the file. As a result, we will be able to see who made
● Inside the VCS, all the previous variants and versions are properly stored. We will
be able to request any version at any moment, and we will be able to retrieve a
● A VCS that is distributed, such as Git, lets all the team members retrieve a
use the local Git repositories of any of the teammates even if the main server
To test our knowledge of the purpose of branching and our experience of branching at a
● Release branching - We can clone the develop branch to create a Release branch
once it has enough functionality for a release. This branch kicks off the next
release cycle, thus no new features can be contributed beyond this point. The
things that can be contributed are documentation generation, bug fixing, and
other release-related tasks. The release is merged into master and given a
version number once it is ready to ship. It should also be merged back into the
development branch, which may have evolved since the initial release.
specific feature contained within a branch. The branch gets merged into master
once the feature has been completely tested and approved by using tests that
are automated.
respective branch. The task key is mentioned in the branch name. We need to
simply look at the task key in the branch name to discover which code
19. Can you explain the “Shift left to reduce failure” concept in DevOps?
Shift left is a DevOps idea for improving security, performance, and other factors. Let us
take an example: if we look at all of the processes in DevOps, we can state that security is
tested prior to the deployment step. We can add security in the development phase, which
is on the left, by employing the left shift method. [will be depicted in a diagram] We can
integrate with all phases, including before development and during testing, not just
development. This most likely raises the security level by detecting faults at an early stage.
This is where traffic is transferred from one instance to another. In order to include a fresh
version of the code, we must replace the old code with a new code version.
The new version exists in a green environment and the old version exists in a blue
environment. After making changes to the previous version, we need a new instance from
Continuous Testing constitutes the running of automated tests as part of the software
delivery pipeline to provide instant feedback on the business risks present in the most
life-cycle and to allow Development teams to receive immediate feedback, every build is
developer's productivity as it eliminates the requirement for re-running all the tests after
procedure in order to test an application or system. Automation testing entails the use of
independent testing tools that allow you to develop test scripts that can be run repeatedly
Developers are obliged to commit all source code changes to a shared DevOps repository.
Every time a change is made in the code, Jenkins-like Continuous Integration tools will grab
it from this common repository and deploy it for Continuous Testing, which is done by tools
like Selenium.
Any modification to the code may be tested immediately with Continuous Testing. This
prevents concerns like quality issues and releases delays that might occur whenever
big-bang testing is delayed until the end of the cycle. In this way, Continuous Testing allows
● Test Optimization: It guarantees that tests produce reliable results and actionable
and to achieve more within each iteration, it employs automation in areas like
● Policy Analysis: It guarantees that all processes are in line with the organization's
changing business needs and that all compliance requirements are met.
duties, and quality evaluation are all covered to guarantee the build is ready to
testing phases, ensuring its availability and reducing the time spent setting up the
test environment.
criteria are met. To determine which needs require additional validation, are in
27. Explain the difference between a centralized and distributed version control system
(VCS).
● If the central server crashes, all data from the project will be lost
Distributed Control System
● Every developer has a copy of all versions of the code on their systems
● Enables team members to work offline and does not rely on a single location for
backups
28. What is the git command that downloads any repository from GitHub to your
computer?
The git command that downloads any repository from GitHub to your computer is git clone.
29. How do you push a file from your local system to the GitHub repository using Git?
git init
● It does not contain any working or checked out a copy of source files
● Bare repositories store git revision history in the root folder of your repository,
31. Which of the following CLI commands can be used to rename files?
1. git rm
2. git mv
3. git rm -r
32. What is the process for reverting a commit that has already been pushed and made
public?
2. Create a new commit that undoes all the changes that were made in the bad
33. Explain the difference between git fetch and git pull.
Git fetch only downloads new data from a remote Git pull updates the current
server
Does not integrate any new data into your working Downloads new data and
working files
Users can run a Git fetch at any time to update the Tries to merge remote changes
A developer working with a current branch wants to switch to another branch to work on
something else, but the developer doesn't want to commit changes to your unfinished
work. The solution to this issue is Git stash. Git stash takes your modified tracked files and
saves them on a stack of unfinished changes that you can reapply at any time.
You can create a new branch and build the new feature on that branch.
● The circles on the branch represent various commits made on the branch
● After you are done with all the changes, you can merge it with the master branch
36. What is the difference between Git Merge and Git Rebase?
Suppose you are working on a new feature in a dedicated branch, and another team
member updates the master branch with new commits. You can use these two functions:
Git Merge
To incorporate the new commits into your feature branch, use Git merge.
● Creates an extra merge commit every time you need to incorporate changes
● It creates new commits for every commit in the original branch and rewrites
project history
37. How do you find a list of files that have been changed in a particular commit?
The command to get a list of files that have been changed in a particular commit is:
● commit hash will list all the files that were changed or added in that commit
A Git merge conflict happens when you have merge branches with competing for commits,
and Git needs your help to decide which changes to incorporate in the final merge.
Manually edit the conflicted file to select the changes that you want to keep in the final
merge.
this may occur when people make different changes to the same line of the same file on
● In the "Pull requests" drop-down, click the pull request with a merge conflict that
changes, or make a brand new change, which may incorporate changes from
both branches.
● Delete the conflict markers <<<<<<<, =======, >>>>>>> and make changes you
● If you have more than one merge conflict in your file, scroll down to the next set
of conflict markers and repeat steps four and five to resolve your merge conflict.
● Once you have resolved all the conflicts in the file, click Mark as resolved.
● If you have more than one file with a conflict, select the next file you want to edit
on the left side of the page under "conflicting files" and repeat steps four to
seven until you've resolved all of your pull request's merge conflicts.
● Once you've resolved your merge conflicts, click Commit merge. This merges the
● Navigate into the local Git repository that contains the merge conflict.
● Generate a list of the files that the merge conflict affects. In this example, the file
● Open any text editor, such as Sublime Text or Atom, and navigate to the file that
● To see the beginning of the merge conflict in your file, search the file for the
conflict marker "<<<<<<<. " Open it, and you'll see the changes from the base
● Next, you'll see "=======", which divides your changes from the changes in the
changes, or make a brand new change, which may incorporate changes from
both branches.
● Delete the conflict markers "<<<<<<<", "=======", ">>>>>>>" and make the
In this example, both the changes are incorporated into the final merge:
Now you can merge the branches on the command line, or push your changes to your
39. What is Git bisect? How can you use it to determine the source of a (regression) bug?
Git bisect is a tool that uses binary search to locate the commit that triggered a bug.
Git bisect command -
The git bisect command is used in finding the bug performing a commit in the project by
The bug-occurring commit is called the “bad” commit, and the commit before the bug
occurs is called the “good” commit. We convey the same to the git bisect tool, and it picks a
random commit between the two endpoints and prompts whether that one is the “good” or
“bad” one. The process continues until the range is narrowed down and the exact commit
Some of the Basic Git Commands are summarized in the below table -
Command Purpose
address]”
an existing repository.
● git add .
current version.
be committed.
mentioned commit.
git branch: The first one creates a brand
new branch.
● git branch [branch name]
currently.
● On request from the Jenkins master, the slaves carry out, builds, test, and
Jenkinsfile contains the definition of a Jenkins pipeline and is checked into the source
● There is a single source of truth for the pipeline, which can be viewed and edited.
43. Which of the following commands runs Jenkins from the command line?
application
● Node: A machine that is part of the Jenkins environment and capable of
executing a pipeline
● Step: A single task that tells Jenkins what to do at a particular point in time
1. build.xml
2. pom.xml
3. dependency.xml
4. Version.xml
46. Explain the two types of pipelines in Jenkins, along with their syntax.
Jenkins provides two ways of developing a pipeline code: Scripted and Declarative.
One or more node blocks do the core work throughout the entire pipeline.
Syntax:
Here, the pipeline block defines the work done throughout the pipeline.
Syntax:
also copy a job directory to clone or replicate a job or rename the directory.
48. How can you copy Jenkins from one server to another?
● Move the job from one Jenkins installation to another by copying the
different name.
● Rename an existing job by renaming a directory.
● Jenkins can use the Lightweight Directory Access Protocol (LDAP) server to
authenticate users.
51. How can you temporarily turn off Jenkins security if the administrative users have
locked themselves out of the admin console?
● When security is enabled, the Config file contains an XML element named
restarted.
52. What are the ways in which a build can be scheduled/run in Jenkins?
53. What are the commands that you can use to restart Jenkins manually?
complete
restarts
To create a Jenkins Job, we go to the top page of Jenkins, choose the New Job option and
● Optional steps for gathering data from the build, like collecting javadoc, testing
● A build script (ant, maven, shell script, batch file, etc.) that actually does the work.
● Optional source code management system (SCM), like Subversion or CVS.
Selenium WebDriver
Selenium Grid
● Works with Selenium RC and runs tests on different nodes using browsers.
Document Object Model (DOM) but is not visible. Ex: Hidden Elements defined in
driver. You can use the Selendroid or Appium framework to test native apps or web apps in
Functional: This is a type of black-box testing in which the test cases are based on the
software specification.
Regression: This testing helps to find new errors, regressions, etc. in different functional
Load Testing: This testing seeks to monitor the response of a device after putting a load on
it. It is carried out to study the behavior of the system under certain conditions.
Get command is used to retrieve the text of a specified web element. The command does
Used for:
● Verification of messages
● Labels
Syntax:
String Text=driver.findElement(By.id(“text”)).getText();
60. How can you handle keyboard and mouse actions using Selenium?
You can handle keyboard and mouse events with the advanced user interaction API. The
Method Description
1. getText()
2. size()
3. getTagName()
4. sendKeys()
The correct answer is B) size()
● findElement()
It finds the first element in the current web page that matches the specified locator value.
Syntax:
WebElement element=driver.findElements(By.xpath(“//div[@id=‘example’]//ul//li”));
● findElements()
It finds all the elements in the current web page that matches the specified locator value.
Syntax:
List elementList=driver.findElements(By.xpath(“//div[@id=‘example’]//ul//li”));
These are two different methods used to close the browser session in Selenium WebDriver:
● driver.close(): This is used to close the current browser window on which the
● driver.quit(): It closes all the browser windows and ends the WebDriver session
The following lines of code will let you submit a form using Selenium:
WebElement el = driver.findElement(By.id(“ElementID”));
el.submit();
There are two types of testing that are primarily supported by Selenium:
Regression Testing: Wherever a bug is fixed, a product is retested and this is called
Regression Testing.
development environment. It may be used to debug tests, alter and record and is also
available as a Firefox extension. Selenium IDE comes with the whole Selenium Core that
allows us to rapidly and easily replay and record tests in the exact environment where they
will be conducted.
Selenium IDE is the best environment for building Selenium tests, regardless of the style of
testing we prefer, thanks to the ability to move instructions around rapidly and the
autocomplete support.
66. What is the difference between Assert and Verify commands in Selenium?
● The verify commands determine whether or not the provided condition is true.
The program execution does not halt regardless of whether the condition is true
or not, i.e., all test steps will be completed, and verification failure will not stop
the execution.
whether the supplied element is on the page or not, we do the following. The
next test step will be performed by the program control, if the condition is true.
However, no further tests will be run, and the execution will halt, if the condition
is false.
68. What is the difference between Asset Management and Configuration Management?
interfacing.
DevOps Interview Questions for Configuration Management: Chef, Puppet, Ansible
● SSL certificates are used between the Chef server and the client to ensure that
● Every node has a private and public key pair. The public key is stored at the Chef
server.
● When an SSL certificate is sent to the server, it will contain the private key of the
node.
● The server compares this against the public key in order to identify the node and
70. Which of the following commands would you use to stop or disable the 'httpd' service
when the system boots?
Test Kitchen is a command-line tool in Chef that spins up an instance and tests the
chef-apply applies the recipe mentioned in the command on the client system.
$ chef-apply recipe_name.rb
chef-client applies all the cookbooks in your server's run list to the client system.
$ knife chef-client
Example:
Example:
Example:
# puppetca –sign ChefAgent
Example:
74. Which open-source or community tools do you use to make Puppet more powerful?
● Changes in the configuration are tracked using Jira, and further maintenance is
● Version control takes the support of Git and Puppet's code manager app.
● The changes are also passed through Jenkin's continuous integration pipeline.
● These are the features of a node, like its software packages or services.
● When the catalog is executed, it sets the node to the desired state.
Classes are named blocks in your manifest that configure various functionalities of the
The classes are added to a node's catalog and are executed only when explicitly invoked.
Class apache (String $version = ‘latest’) {
package{
An Ansible role is an independent block of tasks, variables, files, and templates embedded
inside a playbook.
Always use {{}} for variables, unless you have a conditional statement, such as "when: …".
This is because conditional statements are run through Jinja, which resolves the
expressions.
For example:
Using brackets makes it simpler to distinguish between strings and undefined variables.
This also ensures that Ansible doesn't recognize the line as a dictionary declaration.
● Roles are used to managing tasks in a playbook. They can be easily shared via
Ansible Galaxy.
Ansible Puppet
in DSL
● Docker Daemon accepts the request and interacts with the operating system to
dependencies together.
● Docker registry is a service to host and distribute Docker images among users.
platforms
Space Data volumes cannot be Data volumes are shared and used
● A swarm consists of two types of nodes: a manager node and a worker node.
● Once you've created a swarm on your manager node, you can add worker nodes
to your swarm.
SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk7
43ojnwacrr2e7c \ 192.168.99.100:2377
● Here, each container runs in isolation but can interact with each other.
● A Dockerfile is used for creating Docker images using the build command.
● With a Docker image, any user can run the code to create Docker containers.
● From the Docker registry, users can get the Docker image and build new
87. Explain the differences between Docker images and Docker containers.
Docker images
It is stored in a Docker repository or a Docker hub They are stored in the Docker
daemon
read-write filesystem
88. Instead of YAML, what can you use as an alternate file for building Docker compose?
To build a Docker compose, a user can use a JSON file instead of YAML. In case a user
wants to use a JSON file, he/she should specify the filename as given:
Docker-compose -f Docker-compose.json up
A user can either build a Docker image or pull an existing Docker image (like MySQL) from
Docker Hub.
Now, Docker creates a new container MySQL from the existing Docker image.
Simultaneously, the container layer of the read-write filesystem is also created on top of
Registry Repository
service used for hosting and distributing Docker multiple versions of Docker
images images
Docker also has its own default registry called It has two types: public and
The following are the cloud platforms that Docker runs on:
● Microsoft Azure
● Rackspace
92. What is the purpose of the expose and publish commands in Docker?
Expose
a container.
Publish
Now, let's have a look at the DevOps interview questions for continuous monitoring.
DevOps Interview Questions for Continuous Monitoring
93. How does Nagios help in the continuous monitoring of systems, applications, and
services?
Nagios enables server monitoring and the ability to check if they are sufficiently utilized or
● Checks if applications are working correctly and web servers are reachable
94. How does Nagios help in the continuous monitoring of systems, applications, and
services?
95. What do you mean by Nagios Remote Plugin Executor (NPRE) of Nagios?
Nagios Remote Plugin Executor (NPRE) enables you to execute Nagios plugins on
Linux/Unix machines. You can monitor remote machine metrics (disk usage, CPU load, etc.)
● The check_npre plugin that resides on the local monitoring machine
96. What are the port numbers that Nagios uses for monitoring purposes?
Actively
Passively
applications/processes
● Passive checks results are submitted to Nagios for processing
Active Checks:
● Nagios will execute a plugin and pass the information on what needs to be
checked.
● The plugin will then check the operational state of the host or service, and report
● It will process the results of the host or service check and send notifications.
Passive Checks:
● Nagios reads the external command file and places the results of all passive
information.
99. Explain the main configuration file and its location in Nagios.
The main configuration file consists of several directives that affect how Nagios operates.
The Nagios process and the CGIs read the config file.
A sample main configuration file will be placed into your settings directory:
/usr/local/Nagios/etc/resource.cfg
● It provides an in-depth look at all network traffic sources and security threats.
network.
Nagios can run on different virtualization platforms, like VMware, Microsoft Visual PC, Xen,
platforms
● CPU Usage
● Memory
● Networking
● VM status
103. Name the three variables that affect recursion and inheritance in Nagios.
Name: Template name that can be referenced in other object definitions so it can inherit
Use: Here, you specify the name of the template object that you
define someobjecttype{
object-specific variables ….
name template_name
use name_of_template
register [0/1]
Using the object configuration format, you can create object definitions that inherit
Types of Objects:
● Services
● Hosts
● Commands
● Time Periods
● When stalking is enabled for a particular host or service, Nagios will watch that
Here are some common interview questions and answers related to version control
systems:
A VCS is a software tool that allows developers to manage changes to the source code of a
software project. It enables developers to track and manage different versions of code files,
● The ability to branch code and work on different features or fixes simultaneously
● Centralized VCS: A centralized VCS has a single central repository that stores all
versions of the code files. Developers check out files from the central repository,
make changes, and then commit the changes back to the warehouse.
● Distributed VCS: A distributed VCS allows developers to create their local
commit changes to their local storage, and then push changes to a central
Git and SVN are both popular VCS tools, but they have some key differences:
● Git is more flexible and allows easier branching and merging of code changes.
such as CPU, memory, and storage, which can be allocated to different virtual machines.
server.
storage pool.
physical machine.
hardware resources to each virtual machine and isolates each virtual machine from the
others
>>Thank You<<