CONTACT

Devops Interview Questions and Answers

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

17. The top 10 skills the person should be having for the DevOp’s position?

Excellent in System Admin

Virtualization Experience

Good Technical Skills

Excellent Scripting

Good Developing skills

Chef in Automation Tool Experience

People Management

Customer Service

Real time Cloud operations

Who care about someone

18.Explain how the implementation of “Infrastructure as code” is processed or executed in terms of AWS.

In AWS,

The code will be in the simple JSON format.

This JSON code is well organized into files called templates.

This templates are deployed on AWS and then further managed as stacks

Cloud Formation service will help in doing the Creating, deleting, updating, etc. operation in the stack.

19. What measures we have taken to handle revision (version) control?

To handle revision control, post your code on SourceForge or GitHub so everyone can view it and ask the viewers to give suggestions for the better improvement of it.20. What are the types of HTTP requests?

The types of Http requests are

GET

HEAD

PUT

POST

PATCH

DELETE

TRACE

CONNECT

OPTIONS

21. What is the need for DevOps?
According to me, this answer should start by explaining the general market trend. Instead of releasing big sets of features, companies are trying to see if small features can be transported to their customers through a series of release trains. This has many advantages like quick feedback from customers, better quality of software etc. which in turn leads to high customer satisfaction. To achieve this, companies are required to:

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. You can give examples of companies like Etsy, Google and Amazon which have adopted DevOps to achieve levels of performance that were unthinkable even five years ago. They are doing tens, hundreds or even thousands of code deployments per day while delivering world class stability, reliability and security.

If I have to test your knowledge on DevOps, you should know the difference between Agile and DevOps.

Agile is a set of values and principles about how to produce i.e. develop software. Example: if you have some ideas and you want to turn those ideas 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 a developer’s laptop or in a test environment. You want a way to quickly, easily and repeatably move that software into production infrastructure, in a safe and simple way. To do that you need DevOps tools and techniques.

You can summarize by saying Agile software development methodology focuses on the development of software but DevOps on the other hand is responsible for development as well as deployment of the software in the safest and most reliable way possible.

23. Which are the top DevOps tools? Which tools have you worked on?

The most popular DevOps tools are mentioned below:

Git : 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

You can also mention any other tool if you want, but make sure you include the above tools in your answer.
The second part of the answer has two possibilities:

If you have experience with all the above tools then you can say that I have worked on all these tools for developing good quality software and deploying those softwares easily, frequently, and reliably.

If you have experience only with some 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 the tools.

24. 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.

Developers develop the code and this source code is managed by Version Control System tools like Git etc.

Developers send this code to the Git repository and any changes made in the code is committed to this Repository.

Jenkins pulls this code from the repository using the Git plugin and build it using tools like Ant or Maven.

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.

Once the code is tested, Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like puppet).

25. What are the advantages of DevOps?
For this answer, you can use your past experience and explain how DevOps helped you in your previous job. If you don’t have any such experience, then you can mention the below advantages.

Technical benefits:

Continuous software delivery

Less complex problems to fix

Faster resolution of problems

Business benefits:

Faster delivery of features

More stable operating environments

More time available to add value (rather than fix/maintain)

26. What is the most important thing DevOps helps us achieve?
According to me, the most important thing that DevOps helps us achieve is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. This is the primary objective of DevOps. Learn more in this DevOps tutorial blog.
However, you can add many other positive effects of DevOps. For example, clearer communication and better working relationships between teams i.e. both the Ops team and Dev team collaborate together to deliver good quality software which in turn leads to higher customer satisfaction.27. Explain with a use case where DevOps can be used in industry / real-life.
There are many industries that are using DevOps so you can mention any of those use cases, you can also refer the below example:
Etsy is a peer-to-peer e-commerce website focused on handmade or vintage items and supplies, as well as unique factory-manufactured items. Etsy struggled with slow, painful site updates that frequently caused the site to go down. It affected sales for millions of Etsy’s users who sold goods through online market place and risked driving them to the competitor.
With the help of a new technical management team, Etsy transitioned from its waterfall model, which produced four-hour full-site deployments twice weekly, to a more agile approach. Today, it has a fully automated deployment pipeline, and its continuous delivery practices have reportedly resulted in more than 50 deployments a day with fewer disruptions.28. Explain your understanding and expertise on both the software development side and the technical operations side of an organization you have worked with in the past.
For this answer, share your past experience and try to explain how flexible you were in your previous job. You can refer the below example:
DevOps engineers almost always work 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 responsibility. I successfully automated processes to support continuous software deployments. I have experience with public/private clouds, tools like Chef or Puppet, scripting and automation with tools like Python and PHP, and a background in Agile.29. What are the anti-patterns of DevOps?
A pattern is common usage usually followed. If a pattern commonly adopted by others does not work for your organization and you continue to blindly follow it, you are essentially adopting an anti-pattern. There are myths about DevOps. Some of them include:

DevOps is a process

Agile equals DevOps

We need a separate DevOps group

Devops will solve all our problems

DevOps means Developers Managing Production

DevOps is Development-driven release management

DevOps is not development driven.

DevOps is not IT Operations driven.

We can’t do DevOps – We’re Unique

We can’t do DevOps – We’ve got the wrong people

30.Why we need DevOps ?
Companies are now facing the need to delivering more and faster and better applications to meet the ever more pressing demands of conscious users to reduce the ” Time To Market “. Devops often helps deployment to happen very fast.

31.Mention what are the key aspects or principle behind DevOps?

The key aspects or principle behind DevOps is

Infrastructure as code

Continuous deployment

Automation

Monitoring

Security

32.What are the core operations of DevOps with application development and with infrastructure?

The core operations of DevOps with

Application development

Code building

Code coverage

Unit testing

Packaging

Deployment

With infrastructure

Provisioning

Configuration

Orchestration

Deployment

33.Explain how “Infrastructure of code” is processed or executed in AWS?

In AWS,

The code for infrastructure will be in simple JSON format

This JSON code will be organized into files called templates

This templates can be deployed on AWS and then managed as stacks

Later the CloudFormation service will do the Creating, deleting, updating, etc. operation in the stack

34. Explain which scripting language is most important for a DevOps engineer?

A simpler scripting language will be better for a DevOps engineer. Python seems to be very popular.

35.Explain how DevOps is helpful to developers?

DevOps can be helpful to developers to fix the bug and implement new features quickly. It also helps for clearer communication between the team members.

36.List out some popular tools for DevOps?

Some of the popular tools for DevOps are

Jenkins

Nagios

Monit

ELK (Elasticsearch, Logstash, Kibana)

io

Jenkins

Docker

Ansible

Git

Collectd/Collectl

37.Mention at what instance have you used the SSH?

I have used SSH to log into a remote machine and work on the command line. Beside this, I have also used it to tunnel into the system in order to facilitate secure encrypted communications between two untrusted hosts over an insecure network.

38.Explain how would you handle revision (version) control?

My approach to handle revision control would be to post the code on SourceForge or GitHub so everyone can view it. Also, I will post the checklist from the last revision to make sure that any unsolved issues are resolved.

39. Mention what are the types of Http requests?
The types of Http requests are

GET

HEAD

PUT

POST

PATCH

DELETE

TRACE

CONNECT

OPTIONS

40. Explain what would you check If a Linux-build-server suddenly starts getting slow?

If a Linux-build-server suddenly starts getting slow, you will check for following three things

43.What is the quicker way to open an Ubuntu terminal in a particular directory?

To open Ubuntu terminal in a particular directory you can use custom keyboard short cut.

To do that, in the command field of a new custom keyboard , type genome – terminal – – working – directory = /path/to/dir.

44.Explain how you can get the current color of the current screen on the Ubuntu desktop?

You can open the background image in The Gimp (image editor) and then use the dropper tool to select the color on the specific point. It gives you the RGB value of the color at that point.

45.Explain how you create launchers on desktop in Ubuntu?

To create launchers on desktop in Ubuntu you can use

46.Explain what is Memcached?

Memcached is a free and open source, high-performance, distributed memory object caching system. The primary objective of Memcached is to enhance the response time for data that can otherwise be recovered or constructed from some other source or database. It is used to avoid the need to operate SQL data base or another source repetitively to fetch data for concurrent request.

Speed up application processes
• It determines what to store and what not to
• Reduce the number of retrieval requests to the database
• Cuts down the I/O ( Input/Output) access (hard disk)

Drawback of Memcached is

It is not a persistent data store
• Not a database
• It is not an application specific
• It cannot cache large object

47. Mention some important features of Memcached?

Important features of Memcached includes

CAS Tokens: A CAS token is attached to any object retrieved from cache. You can use that token to save your updated object.
• Callbacks: It simplifies the code
• getDelayed: It reduces the delay time of your script which is waiting for results to come back from server
• Binary protocol: You can use binary protocol instead of ASCII with the newer client
• Igbinary: Previously, client always used to do serialization of the value with complex data, but with Memcached you can use igbinary option.

48. Explain whether it is possible to share a single instance of a Memcache between multiple projects?

Yes, it is possible to share a single instance of Memcache between multiple projects. Memcache is a memory store space, and you can run memcache on one or more servers. You can also configure your client to speak to a particular set of instances. So, you can run two different Memcache processes on the same host and yet they are completely independent. Unless, if you have partitioned your data, then it becomes necessary to know from which instance to get the data from or to put into. 49.You are having multiple Memcache servers, in which one of the memcacher server fails, and it has your data, will it ever try to get key data from that one failed server?

The data in the failed server won’t get removed, but there is a provision for auto-failure, which you can configure for multiple nodes. Fail-over can be triggered during any kind of socket or Memcached server level errors and not during normal client errors like adding an existing key, etc.

50. Explain how you can minimize the Memcached server outages?

When one instance fails, several of them goes down, this will put larger load on the database server when lost data is reloaded as client make a request. To avoid this, if your code has been written to minimize cache stampedes then it will leave a minimal impact
• Another way is to bring up an instance of Memcached on a new machine using the lost machines IP address
• Code is another option to minimize server outages as it gives you the liberty to change the Memcached server list with minimal work
• Setting timeout value is another option that some Memcached clients implement for Memcached server outage. When your Memcached server goes down, the client will keep trying to send a request till the time-out limit is reached

51.Explain how you can update Memcached when data changes?

When data changes you can update Memcached by

Clearing the Cache proactively: Clearing the cache when an insert or update is made
• Resetting the Cache: It is similar to the first method but rather than just deleting the keys and waiting for the next request for the data to refresh the cache, reset the values after the insert or update.

52.Explain what is Dogpile effect? How can you prevent this effect?

Dogpile effect is referred to the event when cache expires, and websites are hit by the multiple requests made by the client at the same time. This effect can be prevented by using semaphore lock. In this system when value expires, first process acquires the lock and starts generating new value.

53.Explain how Memcached should not be used?

Memcached common misuse is to use it as a data store, and not as a cache
• Never use Memcached as the only source of the information you need to run your application. Data should always be available through another source as well
• Memcached is just a key or value store and cannot perform query over the data or iterate over the contents to extract information
• Memcached does not offer any form of security either in encryption or authentication

54.When server gets shut down does data stored in Memcached is still available?

Data stored in Memcached is not durable so if server is shut down or restarted then all the data stored in Memcached is deleted.

55.Mention what is the difference between Memcache and Memcached?

Memcache:It is an extension that allows you to work through handy object-oriented (OOP’s) and procedural interfaces. It is designed to reduce database load in dynamic web applications.

Memcached: It is an extension that useslibmemcachedlibrary to provide API for communicating with Memcached servers. It is used to increase the dynamic web applications by alleviating database load. It is the latest API.

Summary

Reviewer

Mohan

Review Date

2018-05-24

Reviewed Item

These Devops Interview Questions are very useful for everyone Thank you.