Interviwe Questions Devops
Interviwe Questions Devops
What is the need for devops Instead of releasing big sets of features, companies are trying to see if small features can be
Increase deployment frequency
Lower failure rate of new releases
Shortened lead time between fixes
Faster mean time to recovery in the event of new release crashing
DevOps fulfills all these requirements and helps in achieving seamless software delivery.
ex: Amazon,Google
How is DevOps different from AgAgile is a set of values and principles about how to produce i.e. develop software. Example:
Agile software development methodology focuses on the development of software but De
Which are the top DevOps toolsGit : Version Control System tool
Jenkins : Continuous Integration tool
Selenium : Continuous Testing tool
Puppet, Chef, Ansible : Configuration Management and Deployment tools
Nagios : Continuous Monitoring tool
Docker : Containerization tool
If you have experience with all the above tools then you can say that I have worked on all th
If you have experience only with some of the above tools then mention those tools and say
How do all these tools work togGiven below is a generic logical flow where everything gets automated for seamless deliver
Developers develop the code and this source code is managed by Version Control System to
Developers send this code to the Git repository and any changes made in the code is comm
Jenkins pulls this code from the repository using the Git plugin and build it using tools like A
Configuration management tools like puppet deploys & provisions testing environment and
Once the code is tested, Jenkins send it for deployment on the production server (even pro
After deployment It is continuously monitored by tools like Nagios.
Docker containers provides testing environment to test the build features.
Business benefits:
What is the most important thi According to me, the most important thing that DevOps helps us achieve is to get the chang
clearer communication and better working relationships between teams i.e. both the Ops t
Explain with a use case where De
Etsy is a peer-to-peer e-commerce website focused on handmade or vintage items and sup
With the help of a new technical management team, Etsy transitioned from its waterfall mo
Explain your understanding andDevOps engineers almost always work in a 24/7 business-critical online environment. I was
What is Version control It is a system that records changes to a file or set of files over time so that you can recall spe
Version control allows you to:
What are the benefits of using vWith Version Control System (VCS), all the team members are allowed to work freely on any
All the past versions and variants are neatly packed up inside the VCS. When you need it, yo
Every time you save a new version of your project, your VCS requires you to provide a short
A distributed VCS like Git allows all the team members to have complete history of the proj
Which VCS tool you are comfortI have worked on Git and one major advantage it has over other VCS tools like SVN is that it
Distributed VCS tools do not necessarily rely on a central server to store all the versions of a
What is Git Git is a Distributed Version Control system (DVCS). It can track changes to a file and allows y
Its distributed architecture provides many advantages over other Version Control Systems (
There is a central cloud repository as well where developers can commit changes and share
What is Git bisect? How can youGit bisect is used to find the commit that introduced a bug by using binary search. Comman
git bisect <subcommand> <options>
This command uses a binary search algorithm to find which commit in your project’s history
How do you setup a script to r There are three ways to configure a script to run every time a repository receives new comm
Pre-receive hook in the destination repository is invoked when commits are pushed to it. An
Update hook works in a similar manner to pre-receive hook, and is also triggered before an
Finally, post-receive hook in the repository is invoked after the updates have been accepted
Hooks are local to every Git repository and are not versioned. Scripts can either be created
es, companies are trying to see if small features can be transported to their customers through a series of release trains. This has many
about how to produce i.e. develop software. Example: if you have some ideas and you want to turn those ideas into working software,
ology focuses on the development of software but DevOps on the other hand is responsible for development as well as deployment of
ove tools then you can say that I have worked on all these tools for developing good quality software and deploying those softwares ea
e of the above tools then mention those tools and say that I have specialization in these tools and have an overview about the rest of th
where everything gets automated for seamless delivery. However, this flow may vary from organization to organization as per the requir
source code is managed by Version Control System tools like Git etc.
epository and any changes made in the code is committed to this Repository.
itory using the Git plugin and build it using tools like Ant or Maven.
puppet deploys & provisions testing environment and then Jenkins releases this code on the test environment on which testing is done
it for deployment on the production server (even production server is provisioned & maintained by tools like puppet).
onitored by tools like Nagios.
vironment to test the build features.
thing that DevOps helps us achieve is to get the changes into production as quickly as possible while minimizing risks in software qualit
rking relationships between teams i.e. both the Ops team and Dev team collaborate together to deliver good quality software which in
ebsite focused on handmade or vintage items and supplies, as well as unique factory-manufactured items. Etsy struggled with slow, pain
agement team, Etsy transitioned from its waterfall model, which produced four-hour full-site deployments twice weekly, to a more agi
k in a 24/7 business-critical online environment. I was adaptable to on-call duties and was available to take up real-time, live-system res
Production
e management
wrong people
a file or set of files over time so that you can recall specific versions later. Version control systems consist of a central shared repository
Revert files back to a previous state.
Revert the entire project back to a previous state.
Compare changes over time.
See who last modified something that might be causing a problem.
Who introduced an issue and when.
l the team members are allowed to work freely on any file at any time. VCS will later allow you to merge all the changes into a common
neatly packed up inside the VCS. When you need it, you can request any version at any time and you’ll have a snapshot of the complete
your project, your VCS requires you to provide a short description of what was changed. Additionally, you can see what exactly was cha
e team members to have complete history of the project so if there is a breakdown in the central server you can use any of your teamm
he changes for a particular feature inside of a branch. When the feature is fully tested and validated by automated tests, the branch is t
d on its own branch with the task key included in the branch name. It is easy to see which code implements which task, just look for th
d enough features for a release, you can clone that branch to form a Release branch. Creating this branch starts the next release cycle,
organization to another, so I know basic branching operations like delete, merge, checking out a branch etc.
dvantage it has over other VCS tools like SVN is that it is a distributed version control system.”
ily rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository and has t
stem (DVCS). It can track changes to a file and allows you to revert back to any particular change.
many advantages over other Version Control Systems (VCS) like SVN one major advantage is that it does not rely on a central server to st
well where developers can commit changes and share it with other teammates, where all collaborators are commiting changes “Remot
Remove or fix the bad file in a new commit and push it to the remote repository. This is the most natural way to fix an error
Create a new commit that undoes all changes that were made in the bad commit
If you want to write the new commit message from scratch use the following command
If you want to start editing the new commit message with a concatenation of the existing commit messages then you need
=%B –reverse .HEAD@{N})”
hat introduced a bug by using binary search. Command for Git bisect is
gorithm to find which commit in your project’s history introduced a bug. You use it by first telling it a “bad” commit that is known to co
merge another branch into the branch where you are currently working, and move all of the local commits that are ahead of the rebased
master, and since then the master branch has received new commits, Git rebase can be used to move the feature branch to the tip of m
he changes made in the feature branch at the tip of master, allowing conflicts to be resolved in the process. When done with care, this
Given the commit hash, this will list all the files that were changed or added in that commit. The -r flag makes the comman
Here –no-commit-id will suppress the commit hashes from appearing in the output, and –name-only will only print the file
cript to run every time a repository receives new commits through push, one needs to define either a pre-receive, update, or a post-rec
pository is invoked when commits are pushed to it. Any script bound to this hook will be executed before any references are updated.
er to pre-receive hook, and is also triggered before any updates are actually made. However, the update hook is called once for every c
itory is invoked after the updates have been accepted into the destination repository. This is an ideal place to configure simple deploym
y and are not versioned. Scripts can either be created within the hooks directory inside the “.git” directory, or they can be created elsew
lists the branches that have been merged into the current branch.
lists the branches that have not been merged.
sed of a set of specification and configuration files and is backed by the physical resources of a host. Every virtual machine has virtual d
lease trains. This has many advantages like quick feedback from customers, better quality of software etc. which in turn leads to high cu
eas into working software, you can use the Agile values and principles as a way to do that. But, that software might only be working on
nt as well as deployment of the software in the safest and most reliable way possible.
izing risks in software quality assurance and compliance. This is the primary objective of DevOps
d quality software which in turn leads to higher customer satisfaction.
tsy struggled with slow, painful site updates that frequently caused the site to go down. It affected sales for millions of Etsy’s users who
twice weekly, to a more agile approach. Today, it has a fully automated deployment pipeline, and its continuous delivery practices have
up real-time, live-system responsibility. I successfully automated processes to support continuous software deployments. I have experie
a central shared repository where teammates can commit changes to a file or set of file
which task, just look for the task key in the branch name.
arts the next release cycle, so no new features can be added after this point, only bug fixes, documentation generation, and other relea
py of a repository and has the full history of the project on their own hard drive.
ely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository “Local repos
commiting changes “Remote repository”.
t natural way to fix an error. Once you have made necessary changes to the file, commit it to the remote repository for that I will use
mit messages then you need to extract those messages and pass them to Git commit for that I will use
commit that is known to contain the bug, and a “good” commit that is known to be before the bug was introduced. Then Git bisect pick
at are ahead of the rebased branch to the top of the history on that branch.
ature branch to the tip of master.
When done with care, this will allow the feature branch to be merged into master with relative ease and sometimes as a simple fast-fo
made, even before you are required to enter a commit message. In this script one can run other tools, such as linters and perform san
e -r flag makes the command list individual files, rather than collapsing them into root directory names only.
-only will only print the file names, instead of their paths.
ceive, update, or a post-receive hook depending on when exactly the script needs to be triggered.
ny references are updated. This is a useful hook to run scripts that help enforce development policies.
ok is called once for every commit that has been pushed to the destination repository.
o configure simple deployment scripts, invoke some continuous integration systems, dispatch notification emails to repository maintain
or they can be created elsewhere and links to those scripts can be placed within the directory.
virtual machine has virtual devices that provide the same functionality as physical hardware and have additional benefits in terms of po
which in turn leads to high customer satisfaction. To achieve this, companies are required to:
re might only be working on a developer’s laptop or in a test environment. You want a way to quickly, easily and repeatably move that
r millions of Etsy’s users who sold goods through online market place and risked driving them to the competitor.
uous delivery practices have reportedly resulted in more than 50 deployments a day with fewer disruptions.
deployments. I have experience with public/private clouds, tools like Chef or Ansible, scripting and automation with tools like Python a
in the project.
n generation, and other release-oriented tasks should go in this branch. Once it is ready to ship, the release gets merged into master an
of a repository “Local repository” and has the full history of the project on his hard drive so that when there is a server outage, all you
epository for that I will use
roduced. Then Git bisect picks a commit between those two endpoints and asks you whether the selected commit is “good” or “bad”. I
h as linters and perform sanity checks on the changes being committed into the repository.
y and repeatably move that software into production infrastructure, in a safe and simple way. To do that you need DevOps tools and te
ation with tools like Python and a background in Agile
gets merged into master and tagged with a version number. In addition, it should be merged back into develop branch, which may hav
re is a server outage, all you need for recovery is one of your teammate’s local Git repository.
commit is “good” or “bad”. It continues narrowing down the range until it finds the exact commit that introduced the change.
ou need DevOps tools and techniques.
velop branch, which may have progressed since the release was initiated.
oduced the change.
What is meant by Continuous Integration It is a development practice that requires developers to integrate code into a shar
Developers check out code into their private workspaces.
When they are done with it they commit the changes to the shared repository (Ve
The CI server monitors the repository and checks out changes when they occur.
The CI server then pulls these changes and builds the system and also runs unit a
The CI server will now inform the team of the successful build.
If the build or tests fails, the CI server will alert the team.
The team will try to fix the issue at the earliest opportunity.
This process keeps on repeating.
Why do you need a Continuous Integration ofContinuous Integration of Dev and Testing improves the quality of software, and r
What are the success factors for Continuous IMaintain a code repository
Automate the build
Make the build self-testing
Everyone commits to the baseline every day
Every commit (to baseline) should be built
Keep the build fast
Test in a clone of the production environment
Make it easy to get the latest deliverables
Everyone can see the results of the latest build
Automate deployment
Explain how you can move or copy Jenkins fr Move a job from one installation of Jenkins to another by simply copying the corr
Make a copy of an existing job by making a clone of a job directory by a different
Rename an existing job by renaming a directory. Note that if you change a job nam
Explain how can create a backup and copy fileTo create a backup, all you need to do is to periodically back up your JENKINS_HO
Explain how you can setup Jenkins job Go to Jenkins top page, select “New Job”, then choose “Build a free-style softwar
Optional SCM, such as CVS or Subversion where your source code resides.
Optional triggers to control when Jenkins will perform builds.
Some sort of build script that performs the build (ant, maven, shell script, batch fi
Optional steps to collect information out of the build, such as archiving the artifac
Optional steps to notify other people/systems with the build result, such as sendi
What is Continuous Testing Continuous Testing is the process of executing automated tests as part of the soft
What is Automation Testing Automation testing or Test Automation is a process of automating the manual pro
What are the benefits of Automation Testing Supports execution of repeated test cases
Aids in testing a large test matrix
Enables parallel execution
Encourages unattended execution
Improves accuracy thereby reducing human generated errors
Saves time and money
How to automate Testing in DevOps lifecycle In DevOps, developers are required to commit all the changes made in the source
Why is Continuous Testing important for Dev Continuous Testing allows any change made in the code to be tested immediately
What are the key elements of Continuous TestRisk Assessment: It Covers risk mitigation tasks, technical debt, quality assessmen
Policy Analysis: It ensures all processes align with the organization’s evolving busi
Requirements Traceability: It ensures true requirements are met and rework is no
Advanced Analysis: It uses automation in areas such as static code analysis, chang
Test Optimization: It ensures tests yield accurate outcomes and provide actionabl
Service Virtualization: It ensures access to real-world testing environments. Servic
Which Testing tool are you comfortable with aI have worked on Selenium to ensure high quality and more frequent releases.
Some advantages of Selenium are:
It is free and open source
It has a large user base and helping communities
It has cross Browser compatibility (Firefox, chrome, Internet Explorer, Safari etc.)
It has great platform compatibility (Windows, Mac OS, Linux etc.)
It supports multiple programming languages (Java, C#, Ruby, Python, Pearl etc.)
It has fresh and regular repository developments
It supports distributed testing
What are the Testing types supported by Sel Regression Testing: It is the act of retesting a product around an area where a bug
Functional Testing: It refers to the testing of software features (functional points)
What is Selenium IDE It is an integrated development environment for Selenium scripts. It is implement
With autocomplete support and the ability to move commands around quickly, Se
What is the difference between Assert and V Assert command checks whether the given condition is true or false. Let’s say we
Verify command also checks whether the given condition is true or false. Irrespec
How to launch Browser using WebDriver WebDriver driver = new FirefoxDriver();
WebDriver driver = new ChromeDriver();
WebDriver driver = new InternetExplorerDriver();
When should I use Selenium Grid It can be used to execute same or different test scripts on multiple platforms and
s to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to det
the quality of software, and reduces the time taken to deliver it, by replacing the traditional practice of testing after completing all develop
ally back up your JENKINS_HOME directory. This contains all of your build jobs configurations, your slave node configurations, and your buil
nt, maven, shell script, batch file, etc.) where the real work happens.
d, such as archiving the artifacts and/or recording javadoc and test results.
the build result, such as sending e-mails, IMs, updating issue tracker, etc..
mated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with in the latest build.
of automating the manual process to test the application/system under test. Automation testing involves use of separate testing tools whic
e changes made in the source code to a shared repository. Continuous Integration tools like Jenkins will pull the code from this shared repo
ode to be tested immediately. This avoids the problems created by having “big-bang” testing left to the end of the cycle such as release de
nical debt, quality assessment and test coverage optimization to ensure the build is ready to progress toward next stage.
e organization’s evolving business and compliance demands are met.
ents are met and rework is not required. An object assessment is used to identify which requirements are at risk, working as expected or re
as static code analysis, change impact analysis and scope assessment/prioritization to prevent defects in the first place and accomplishing
tcomes and provide actionable findings. Aspects include Test Data Management, Test Optimization Management and Test Maintenance
d testing environments. Service visualization enables access to the virtual form of the required testing stages, cutting the waste time to test
enium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Se
commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.
n is true or false. Let’s say we assert whether the given element is present on the web page or not. If the condition is true, then the progra
dition is true or false. Irrespective of the condition being true or false, the program execution doesn’t halts i.e. any failure during verificatio
pts on multiple platforms and browsers concurrently to achieve distributed test execution. This allows testing under different environment
ated build, allowing teams to detect problems early.
sting after completing all development. It allows Dev team to easily detect and locate problems early because developers need to integrate
ode configurations, and your build history. To create a back-up of your Jenkins setup, just copy this directory. You can also copy a job directo
sociated with in the latest build. In this way, each build is tested continuously, allowing Development teams to get fast feedback so that the
se of separate testing tools which lets you create test scripts which can be executed repeatedly and doesn’t require any manual interventio
ll the code from this shared repository every time a change is made in the code and deploy it for Continuous Testing that is done by tools li
d of the cycle such as release delays and quality issues. In this way, Continuous Testing facilitates more frequent and good quality releases
enium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that t
hat style of tests you prefer.
ondition is true, then the program control will execute the next test step. But, if the condition is false, the execution would stop and no furt
i.e. any failure during verification would not stop the execution and all the test steps would be executed.
ng under different environments and saving execution time remarkably.
use developers need to integrate code into a shared repository several times a day (more frequently). Each check-in is then automatically te
y. You can also copy a job directory to clone or replicate a job or rename the directory.
s to get fast feedback so that they can prevent those problems from progressing to the next stage of Software delivery life-cycle. This dram
What is the difference between an Asset and a It has a financial value along with a depreciation rate attached to it. IT asse
Configuration Item on the other hand may or may not have financial values
Now you can give an example that can showcase the similarity and differen
1) Similarity:
Server – It is both an asset as well as a CI.
2) Difference:
Building – It is an asset but not a CI.
Document – It is a CI but not an asset
What do you understand by “Infrastructure as cInfrastructure as Code (IAC) is a type of IT infrastructure that operations tea
Companies for faster deployments treat infrastructure like software: as cod
Which among Puppet, Chef, SaltStack and AnsibPuppet is the oldest and most mature CM tool. Puppet is a Ruby-based Con
Chef is written in Ruby, so it can be customized by those who know the lang
Ansible is a very secure option since it uses Secure Shell. It’s a simple tool t
SaltStack is python based open source CM tool made for larger businesses,
Describe the most significant gain you made fr I automated the configuration and deployment of Linux and Windows mac
Which open source or community tools do you Changes and requests are ticketed through Jira and we manage requests th
What are Puppet Manifests Every node (or Puppet Agent) has got its configuration details in Puppet Ma
What is Puppet Module and How it is different A Puppet Module is a collection of Manifests and data (such as facts, files, a
Puppet programs are called Manifests which are composed of Puppet code
What is Facter in Puppet Facter gathers basic information (facts) about Puppet Agent such as hardwa
What is Chef It is a powerful automation platform that transforms infrastructure into cod
Now you can explain the architecture of Chef, it consists of:
Chef Server: The Chef Server is the central store of your infras
Chef Node: A Node is any host that is configured using Chef-c
Chef Workstation: A Chef Workstation is the host you use to mo
What is a resource in Chef A Resource represents a piece of infrastructure and its desired state, such a
Describes the desired state for a configuration item.
Declares the steps needed to bring that item to the desired state.
Specifies a resource type such as package, template, or service.
Lists additional details (also known as resource properties), as necessary.
Are grouped into recipes, which describe working configurations.
What do you mean by recipe in Chef A Recipe is a collection of Resources that describes a particular configuratio
Install and configure software components.
Manage files.
Deploy applications.
Execute other recipes.
How does a Cookbook differ from a Recipe in Cha Recipe is a collection of Resources, and primarily configures a software pa
What is Ansible module Modules are considered to be the units of work in Ansible. Each module is
What are playbooks in Ansible Playbooks are Ansible’s configuration, deployment, and orchestration langu
At a basic level, playbooks can be used to manage configurations of and de
How do I see a list of all of the ansible_ variableAnsible by default gathers “facts” about the machines under management,
Ansible -m setup hostname
This will print out a dictionary of all of the facts that are available for that p
How can I set deployment order for applicationsWebLogic Server 8.1 allows you to select the load order for applications. Se
Can I refresh static components of a deployed apYes, you can use weblogic.Deployer to specify a component and target a se
java weblogic.Deployer -adminurl http://admin:7001 -name appname -targ
How do I turn the auto-deployment feature off The auto-deployment feature checks the applications folder every three se
The auto-deployment feature is enabled for servers that run in developmen
In the Administration Console, click the name of the domain in the left pan
At the command line, include the following argument when starting the do
-Dweblogic.ProductionModeEnabled=true
Production mode is set for all WebLogic Server instances in a given domain
When should I use the external_stage option Set -external_stage using weblogic.Deployer if you want to stage the applic
nt (CM) is to ensure the integrity of a product or system throughout its life-cycle by making the development or deployment process co
ciation rate attached to it. IT assets are just a sub-set of it. Anything and everything that has a cost and the organization uses it for its a
y or may not have financial values assigned to it. It will not have any depreciation linked to it. Thus, its life would not be dependent on
owcase the similarity and differences between both:
infrastructure that operations teams can use to automatically manage and provision through code, rather than using a manual proces
nfrastructure like software: as code that can be managed with the DevOps tools and processes. These tools let you make infrastructure
M tool. Puppet is a Ruby-based Configuration Management tool, but while it has some free features, much of what makes Puppet great
mized by those who know the language. It also includes free features, plus it can be upgraded from open source to enterprise-level if n
es Secure Shell. It’s a simple tool to use, but it does offer a number of other services in addition to configuration management. It’s very
M tool made for larger businesses, but its learning curve is fairly low
in puppet.conf.
restrict port tcp/8140 to only networks that you trust.
h ‘trust zone’, and only include the trusted nodes in that Puppet masters manifest.
yment of Linux and Windows machines using Puppet. In addition to shortening the processing time from one week to 10 minutes, I use
gh Jira and we manage requests through an internal process. Then, we use Git and Puppet’s Code Manager app to manage Puppet code
configuration details in Puppet Master, written in the native Puppet language. These details are written in the language which Puppet c
ests and data (such as facts, files, and templates), and they have a specific directory structure. Modules are useful for organizing your P
ich are composed of Puppet code and their file names use the .pp extension.
bout Puppet Agent such as hardware details, network settings, OS type and version, IP addresses, MAC addresses, SSH keys, and more.
transforms infrastructure into code. Chef is a tool for which you write scripts that are used to automate processes. What processes? Pr
Chef, it consists of:
central store of your infrastructure’s configuration data. The Chef Server stores the data necessary to config
is configured using Chef-client. Chef-client runs on your nodes, contacting the Chef Server for the informat
n is the host you use to modify your cookbooks and other configuration data.
ucture and its desired state, such as a package that should be installed, a service that should be running, or a file that should be generat
describes a particular configuration or policy. A Recipe describes everything that is required to configure part of a system.
primarily configures a software package or some piece of infrastructure. A Cookbook groups together Recipes and other information in
chef-repo\settings.ini’ do
f work in Ansible. Each module is mostly standalone and can be written in a standard scripting language such as Python, Perl, Ruby, bas
ployment, and orchestration language. They can describe a policy you want your remote systems to enforce, or a set of steps in a gener
manage configurations of and deployments to remote machines.
he machines under management, and these facts can be accessed in Playbooks and in templates. To see a list of all of the facts that are
the load order for applications. See the Application MBean Load Order attribute in Application. WebLogic Server deploys server-level re
applications folder every three seconds to determine whether there are any new applications or any changes to existing applications an
for servers that run in development mode. To disable auto-deployment feature, use one of the following methods to place servers in pr
ame of the domain in the left pane, then select the Production Mode checkbox in the right pane.
ng argument when starting the domain’s Administration Server:
erver instances in a given domain.
yer if you want to stage the application yourself, and prefer to copy it to its target by your own means
nt or deployment process controllable and repeatable, therefore creating a higher quality product or system. The CM process allows or
organization uses it for its asset value calculation and related benefits in tax calculation falls under Asset Management, and such item
would not be dependent on its financial value but will depend on the time till that item becomes obsolete for the organization.
of what makes Puppet great is only available in the paid version. Organizations that don’t need a lot of extras will find Puppet useful, bu
ource to enterprise-level if necessary. On top of that, it’s a very flexible product.
ation management. It’s very easy to learn, so it’s perfect for those who don’t have a dedicated IT staff but still need a configuration ma
cate in order to establish a secure connection between Puppet Master and Puppet Slave
ne week to 10 minutes, I used the roles and profiles pattern and documented the purpose of each module in README to ensure that o
app to manage Puppet code in accordance with best practices. Additionally, we run all of our Puppet changes through our continuous
he language which Puppet can understand and are termed as Manifests. They are composed of Puppet code and their filenames use th
useful for organizing your Puppet code, because they allow you to split your code into multiple Manifests. It is considered best practic
dresses, SSH keys, and more. These facts are then made available in Puppet Master’s Manifests as variables.
art of a system.
pes and other information in a way that is more manageable than having just Recipes alone
ch as Python, Perl, Ruby, bash, etc.. One of the guiding properties of modules is idempotency, which means that even if an operation is
e, or a set of steps in a general IT process. Playbooks are designed to be human-readable and are developed in a basic text language.
list of all of the facts that are available about a machine, you can run the “setup” module as an ad-hoc action:
Server deploys server-level resources (first JDBC and then JMS) before deploying applications. Applications are deployed in this order: c
as will find Puppet useful, but those needing more customization will probably need to upgrade to the paid version.
in README to ensure that others could update the module using Git. The modules I wrote are still being used, but they’ve been impro
nges through our continuous integration pipeline in Jenkins using the beaker testing framework.
It is considered best practice to use Modules to organize almost all of your Puppet Manifests.
ws you to dynamically drive node configuration based on data.
e that runs the Chef-client software, nodes are sometimes referred to as “clients”.
s that even if an operation is repeated multiple times e.g. upon recovery from an outage, it will always place the system into the same
are deployed in this order: connectors, then EJBs, then Web Applications. If the application is an EAR, the individual components are lo
sed, but they’ve been improved by my teammates and members of the community
ce the system into the same state.
ndividual components are loaded in the order in which they are declared in the application.xml deployment descriptor.
nt descriptor.
What are containers containers are used to provide consistent computing environment from a developer’s laptop to a te
a container consists of an entire runtime environment: an application, plus all its dependencies, lib
How exactly are containers (Docker in our case) different from hypervisor virtualization (vSphere)? What are the benefits?
What is Docker image Docker image is the source of Docker container. In other words, Docker images are used to create c
Tip: Be aware of Dockerhub in order to answer questions on pre-available images.
What is Docker container Docker containers include the application and all of its dependencies but share the kernel with oth
Docker containers can be created by either creating a Docker image and then running it or you can
Docker containers are basically runtime instances of Docker images.
What is Docker hub Docker hub is a cloud-based registry service which allows you to link to code repositories, build you
How is Docker different fro Docker containers are easy to deploy in a cloud. It can get more applications running on the same h
What is Docker Swarm It is native clustering for Docker which turns a pool of Docker hosts into a single, virtual Docker hos
I will also suggest you to include some supported tools:
Dokku
Docker Compose
Docker Machine
Jenkins
What is Dockerfile used for A Dockerfile is a text document that contains all the commands a user could call on the command l
an I use json instead of yamYou can use json instead of yaml for your compose file, to use json file with compose, specify the fi
docker-compose -f docker-compose.json up
Tell us how you have used D Docker to help rapid deployment
How to create Docker contaDocker image to create Docker container by using the below command:
docker run -t -i <image name> <command name>
This command will create and start container.
to check the list of all running container with status on a host use the below co
docker ps -a
How to stop and restart theIn order to stop the Docker container you can use the below command:
docker stop <container ID>
Now to restart the Docker container you can use:
docker restart <container ID>
How far do Docker containerLarge web deployments like Google and Twitter, and platform providers such as Heroku and dotClo
What platforms does DockerDocker runs on only Linux and Cloud platforms and then I will mention the below
vendors of Linux: Ubuntu 12.04, 13.04 et al
Fedora 19/20+
RHEL 6.5+
CentOS 6+
Gentoo
ArchLinux
openSUSE 12.3+
CRUX 3.0+
Cloud:
Amazon EC2
Google Compute Engine
Microsoft Azure
Rackspace
Note that Docker does not run on Windows or Mac.
Do I lose my data when the You can answer this by saying, no I won’t loose my data when Dcoker container exits. Any data that
a developer’s laptop to a test environment, from a staging environment into production.
lus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. Containerizing the
de slow provisioning
images are used to create containers. Images are created with the build command, and they’ll produce a container when started with run.
ut share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are n
then running it or you can use Docker images that are present on the Dockerhub.
code repositories, build your images and test them, stores manually pushed images, and links to Docker cloud so you can deploy images to
tions running on the same hardware than other technologies, it makes it easy for developers to quickly create, ready-to-run containerized a
a single, virtual Docker host. Docker Swarm serves the standard Docker API, any tool that already communicates with a Docker daemon ca
ould call on the command line to assemble an image. Using docker build users can create an automated build that executes several comma
ow command:
such as Heroku and dotCloud all run on container technology, at a scale of hundreds of thousands or even millions of containers running in
ontainer exits. Any data that your application writes to disk gets preserved in its container until you explicitly delete the container. The file s
one package. Containerizing the application platform and its dependencies removes the differences in OS distributions and underlying infra
ontainer when started with run. Images are stored in a Docker registry such as registry.hub.docker.com because they can become quite larg
system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.
oud so you can deploy images to your hosts. It provides a centralized resource for container image discovery, distribution and change mana
ate, ready-to-run containerized applications and it makes managing and deploying applications much easier. You can even share containers
icates with a Docker daemon can use Swarm to transparently scale to multiple hosts.
y delete the container. The file system for the container persists even after the container halts.
distributions and underlying infrastructure.
cause they can become quite large, images are designed to be composed of layers of other images, allowing a minimal amount of data to b
y, distribution and change management, user and team collaboration, and workflow automation throughout the development pipeline.
Explain your understanding andDevOps engineers almost always work in a 24/7 business critical online environment. I was adap
Discuss your experience build DevOps is all about effective communication and collaboration. I’ve been able to deal with produ
What types of testing are nee unit test strategy, use of test harnesses, early load testing; network simulation, A/B and multi-va
Give me an example of how yoAs a professional with managerial responsibilities, I would demonstrate a clear understanding of
What’s your career objective i My passion is breaking down the barriers and building and improving processes, so that the eng
How would you make softwareThe ability to script the installation and reconfiguration of software systems is essential towards
What is the one most importanThe most important thing DevOps helps do is to get the changes into production as quickly as po
What’s a PTR in DNS Pointer records are used to map a network interface (IP) to a host name. These are primarily use
t other protocols. A web browser using which a request is initiated is called as a client and a web server software which responds to that re
al online environment. I was adaptable to on-call duties and able to take up real-time, live-system responsibility. I successfully automated p
. I’ve been able to deal with production issues from the development and operations sides, effectively straddling the two worlds. I’m less in
monstrate a clear understanding of DevOps project management tactics and also work with teams to set objectives, streamline workflow, m
proving processes, so that the engineering and operations teams work better and smarter. That’s why I love DevOps. It’s an opportunity to b
ware systems is essential towards controlled and automated change. Although there is an increasing trend for new software to enable this,
es into production as quickly as possible while minimizing risks in software quality assurance and compliance. That is the primary objective
ost name. These are primarily used for reverse DNS. Reverse DNS is setup very similar to how normal (forward) DNS is setup. When you de
ftware which responds to that request is called a server. World Wide Web Consortium and the Internet Engineering Task Force are two imp
bility. I successfully automated processes to support continuous software deployments. I have experience with public/private clouds, tools
ddling the two worlds. I’m less interested in finding blame or playing the hero than I am with ensuring that all of the moving parts come to
jectives, streamline workflow, maintain scope, research and introduce new tools or frameworks, translate requirements into workflow and
DevOps. It’s an opportunity to be involved in the entire delivery system from start to finish.
for new software to enable this, older systems and products suffer from the assumption that changes would be infrequent and minor, and
ce. That is the primary objective of DevOps. However, there are many other positive side-effects to DevOps. For example, clearer communi
ward) DNS is setup. When you delegate the DNS forward, the owner of the domain tells the registrar to let your domain use specific name s
ineering Task Force are two important spokes in the standardization of the HTTP protocol. HTTP allows improvement of its request and res
with public/private clouds, tools like Chef or Puppet, scripting and automation with tools like Python and PHP, and a background in Agile.
requirements into workflow and follow up. I would resort to CI, release management and other tools to keep interdisciplinary projects on t
ld be infrequent and minor, and so make automated changes difficult. As a professional who appreciates the need to expose configuration
s. For example, clearer communication and better working relationships between teams which creates a less stressful working environment
he need to expose configuration and settings in a manner accessible to automation, I will work with concepts like Inversion of Control (IoC)
pts like Inversion of Control (IoC) and Dependency Injection, scripted installation, test harnesses, separation of concerns, command-line too
ype of URI (Uniform Resource Identifier) called a URL (Uniform Resource Locator). TCP (Transmission Control Protocol) is used to establish a