US : +1(201) 204 9001
India +91 7302219042

Top 10 DevOps Interview-Questions Answer in 2020

Making Your Job Easier

Top 10 DevOps Interview-Questions Answer in 2020

The Job Support

Top 10 DevOps Interview-Questions Answer in 2020

Click edit button to change this text. Lorem ipsum dolor sit amet, adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

By NICK JOHNSON

1) Explain what DevOps is?

It is a newly emerging term in the IT field, which is nothing but a practice that emphasizes the collaboration and communication of both software developers and deployment(operations) team. It focuses on delivering software product faster and lowering the failure rate of releases.

2) What are the core operations of DevOps with application development and with infrastructure?

The core operations of DevOps are

Application development

  • Code building
  • Code coverage
  • Unit testing
  • Packaging
  • Deployment

Infrastructure

  • Provisioning
  • Configuration
  • Orchestration
  • Deployment

3) List out some popular tools for DevOps?

Some of the popular tools for DevOps are

  • Jenkins
  • Nagios
  • Monit
  • ELK (Elasticsearch, Logstash, Kibana)
  • Jenkins
  • Docker
  • Ansible
  • Git

 

 

JobSupport-Brocher

JobSupport-Brocher

4). How do all these tools work together?

Given below is a generic logical flow where everything gets automated for seamless delivery. However, this flow may vary from organization to organization as per the requirement.

  1. Developers develop the code and this source code is managed by Version Control System tools like Git etc.
  2. Developers send this code to the Git repository and any changes made in the code is committed to this Repository.
  3. Jenkins pulls this code from the repository using the Git plugin and build it using tools like Ant or Maven.
  4. Configuration management tools like puppet deploys & provisions testing environment and then Jenkins releases this code on the test environment on which testing is done using tools like selenium.
  5. Once the code is tested, Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like puppet).
  6. After deployment It is continuously monitored by tools like Nagios.
  7. Docker containers provides testing environment to test the build features.

 

5). What are the different phases in DevOps?

  1. The various phases of the DevOps lifecycle are as follows:
  2. Plan – Initially, there should be a plan for the type of application that needs to be developed. Getting a rough picture of the development process is always a good idea.
  3. Code – The application is coded as per the end-user requirements. 
  4. Build – Build the application by integrating various codes formed in the previous steps.
  5. Test – This is the most crucial step of the application development. Test the application and rebuild, if necessary.
  6. Integrate – Multiple codes from different programmers are integrated into one.
  7. Deploy – Code is deployed into a cloud environment for further usage. It is ensured that any new changes do not affect the functioning of a high traffic website.
  8. Operate – Operations are performed on the code if required.
  9. Monitor – Application performance is monitored. Changes are made to meet the end-user requirements.

 

6)  What is Version control?

  1. This is probably the easiest question you will face in the interview. My suggestion is to first give a definition of Version control. It is a system that records changes to 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 where teammates can commit changes to a file or set of file. Then you can mention the uses of version control.
  2. Version control allows you to:
  3. Revert files back to a previous state.
  4. Revert the entire project back to a previous state.
  5. Compare changes over time.
  6. See who last modified something that might be causing a problem.
  7. Who introduced an issue and when.

7). What are the benefits of using version control?

  1. With Version Control System (VCS), all 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 version.
  2. All the past versions and variants are 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 project right at hand.
  3. Every time you save a new version of your project, your VCS requires you to provide a short description of what was changed. Additionally, you can see what exactly was changed in the file’s content. This allows you to know who has made what change in the project.
  4. A distributed VCS like Git allows all the 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 teammate’s local Git repository.

8). Describe branching strategies you have used.

  • Featurebranching
    A feature branch model keeps all of the changes for a particular feature inside of a branch. When the feature is fully tested and validated by automated tests, the branch is then merged into master.
  • Taskbranching
    In this model each task is implemented 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 the task key in the branch name.
  • Releasebranching
    Once the develop branch has acquired enough features for a release, you can clone that branch to form a Release branch. Creating this branch starts the next release cycle, so no new features can be added after this point, only bug fixes, documentation generation, and other release-oriented tasks should go in this branch. Once it is ready to ship, the release gets merged into master and tagged with a version number. In addition, it should be merged back into develop branch, which may have progressed since the release was initiated.

In the end tell them that branching strategies varies from one organization to another, so I know basic branching operations like delete, merge, checking out a branch etc.

9). What is Git?

  • Git is a Distributed Version Control system (DVCS). It can track changes to a file and allows you to revert back to any particular change.
  • Its distributed architecture provides many advantages over other Version Control Systems (VCS) like SVN one major advantage is that it does not rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository I have shown in the diagram below with “Local repository” and has the full history of the project on his hard drive so that when there is a server outage, all you need for recovery is one of your teammate’s local Git repository.
  • There is a central cloud repository as well where developers can commit changes and share it with other teammates as you can see in the diagram where all collaborators are commiting changes “Remote repository”.
10) How will you approach a project that needs to implement DevOps?

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 the actual implementation and roll-out of the project plan.

Stage 3

The project is now ready for implementing DevOps by using version control/integration/testing/deployment/delivery and monitoring followed step by step.

By following the proper steps for version control, integration, testing, deployment, delivery, and monitoring, the project is now ready for DevOps implementation. 

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)

%d bloggers like this: