Compared to other computer science fields, DevOps is not very popular. But that is because both simple and complex to understand.
To start off, it is not a tool or software. Rather, it is a kind of work culture and methodology where the development (software developers) and operations (deployers) teams are combined for continuous development, integration, testing, deployment, and monitoring. The end aim is to create and deliver a product faster, with as low a failure rate as possible. It complements and works with the Agile methodology, but is not similar to it.
If you are someone who is interested in the blended nature of this field and wants to work in it, then the following interview questions will help you get past the gates and snag that dream job of yours.
What are some popular DevOps tools?
What are the core operations of DevOps?
• Version control
What are 3 important KPIs of DevOps?
• Deployment frequency
• Percentage of failed deployments
• Mean time to failure recovery
What is Version Control System?
VCS is a software that enables software developers to work together while retaining the entire history of the work done up to any point.
There are 2 types of VCS:
- Central VCS. Example: Git
- Distributes/ decentralized VCS. Example: SVN
The reason why VCS is an integral part of DevOps is that:
- It allows developers to work on a piece of code together
- It does not allow them to overwrite on each other’s changes
- It maintains the history of each version ever
What is the difference between Git pull and Git fetch?
In the form of a simple equation,
Git pull = Git fetch + Git merge
The git pull command is used to pull any newly made changes or commits to a target branch in your local repository from a branch from the central repository.
The git fetch command has the same purpose as well. However, instead of storing the new changes and commits in the target branch, it stores them in a new branch. To ensure that the changes reflect in the target branch as well, we have to use the git merge command.
The equation comes in handy in remembering the function of each command.
How can we know if a branch in Git has been merged into master?
By using either the git branch -merged OR git branch -no-merged command.
The former displays all the branches which have been merged with the current branch, while the latter displays the branches which haven’t been merged yet.
Which branching strategies are available for use in Git?
In this branching strategy, all the changes for a feature are kept inside the branch. When the automated tests test and validate the feature branch, the branch is merged into the master.
Under this strategy, each task is implemented in its own branch. The task key is included along with the branch name. The presence of this key makes it easy to see which task is implemented by which code.
Once the develop branch is ready with its features, it is cloned to form the Release Branch. Creating this branch sets the Release cycle in motion whereby no new features and can be added. The only tasks that can be performed are: bug fixes, documentation generation, and other release-related tasks. The release is merged into the master and tagged with a version number when it’s ready to ship.
What is SubGit?
SubGit is a tool used for migrating SVN to Git.
How can we clone a Git repository using Jenkins?
The first step is to enter one’s username and email in the Jenkins system. Go to your job directory then and execute the ‘git config’ command.
What is the difference between Ansible Playbook and Roles?
Act as maps between hosts and roles
Examples: webservers.yml, site.yml
Are reusable subsets of a play
Are a set of tasks for accomplishing a certain role
Example: common, webservers
What is Docker?
Docker is a kind of technology that packages all the applications and related dependencies into Containers, thus ensuring that your application works smoothly and flawlessly in any environment. Docker images are used to create these containers.
It runs on only Linux and Cloud platforms:
- openSUSE 12.3+
- RHEL 6.5+
- Fedora 20+
- Microsoft Azure
To name a few.
What is Scrum?
Scrum is like a task-solver which uses iterations and incremental practices to divide complex software and development tasks into smaller do-able chunks. Each iteration runs for 2 weeks.
Which SCM tools are supported by Jenkins?
The area covered by DevOps is vast as it is the amalgamation of 2 unique stages of software creation. The above list gives an idea of the kind of questions that are asked and is in no way exhaustive. For a strong headstart, though, you cannot go wrong with it. Good luck with your interview prep!