Original address: medium.com/edureka/dev… Author: Saurabh Kulshrestha Translator: CODING Daveopus

Are you a DevOps engineer or just trying to get into DevOps? If so, you’ve got the future on your hands. In this article, I’ve listed dozens of questions that are likely to be asked when hiring a DevOps engineer.

The key to understanding DevOps is that it’s not just a collection of technologies, it’s a way of thinking, a culture. DevOps requires a cultural shift that combines operations and development, and an associated technology tool chain to facilitate collaborative change. Because the DevOps concept is still in its infancy, the application of DevOps and the bandwidth required for adaptation and collaboration will vary from team to team. However, you can develop your DevOps skill set, improve yourself, and become an ideal candidate for any type of team.

What does it take to be a DevOps engineer?

Teams have a clear set of skill requirements when looking for someone to be a DevOps engineer. The most important of these are:

  • Be familiar with infrastructure automation tools such as Chef, Puppet, Ansible, SaltStack or Windows PowerShell DSC.
  • Good command of Ruby, Python, PHP or Java.
  • Interpersonal skills that help you communicate and collaborate across teams and roles.

To frame the questions below, I put myself in your shoes, and most of the answers in this article are written from your perspective — that is, as a potential DevOps expert.

General DevOps related interview questions

These basic questions are questions that are not related to any particular DevOps phase and are designed to test your understanding of DevOps rather than focusing on a particular tool or phase.

Q1. Fundamental differences between DevOps and Agile

The differences between the two are listed in the table below.

Q2. What does DevOps need

I think the answer should start with explaining the overall trend of the market. Instead of releasing large feature sets, many companies are now trying to release small feature points to customers quickly. This has many advantages, such as faster customer feedback and improved software quality, which can greatly improve customer satisfaction. To achieve this, the company must:

  1. Increase deployment frequency
  2. Reduce the failure rate of the new version
  3. Shorten delivery time
  4. Faster average recovery time when the new version crashes

DevOps addresses all of these requirements and helps achieve seamless software delivery. You can point to companies like Etsy, Google, and Amazon that have adopted DevOps to performance levels that were unimaginable even five years ago. They deploy code tens, hundreds, or even thousands of times a day while providing world-class stability, reliability, and security.

If I had to test your DevOps knowledge, you’d know the difference between Agile and DevOps. The next question is aimed at that.

Q3. How is DevOps different from Agile /SDLC?

I recommend that you follow these instructions: Agile is a set of values and principles about how to achieve production-as-development-software. For example: If you have some ideas that you want to turn into usable software, you can use agile values and principles as a means of doing so. However, the software may only be suitable for a developer’s laptop or test environment, and you want to quickly, easily, and reusable port the software into your production infrastructure in a secure and simple way. To do that, you need DevOps tools and techniques.

In summary, while Agile software development methodologies focus on developing software, DevOps is responsible for developing and deploying software in the most secure and reliable manner possible.

Now keep in mind that you included the DevOps tool in your previous answer, so be prepared to answer some questions about it.

Q4. What are the top DevOps tools? What tools have you used?

Here are some of the most popular DevOps tools:

  • Git: Version control system tool
  • Jenkins: Continuous integration tools
  • Selenium: Continuous testing tool
  • Puppet, Chef, and Ansible: configuration management and deployment tools
  • Nagios: Continuous monitoring tool
  • Docker: Container chemical tool

You can mention other tools if you need to, but be sure to include them in your response.

There are two possible answers:

  1. If you know all of these tools, you can say that you have used all of them to develop high-quality software that can be deployed easily, frequently, and reliably.
  2. If you have experience with only some of these tools, mention them and say that you have expertise with them, while giving an overview of the rest.

Q5. How do all these tools work together?

Here is a general logical process in which everything is delivered automatically and seamlessly. However, this process can vary depending on the needs of different organizations.

  1. Developers develop the code, and source code is managed by a version control system tool such as Git.
  2. The developer commits the code to Git, and any changes made to the code are committed to the repository.
  3. Jenkins pulls this code from the repository using the Git plug-in and builds it using tools such as Ant or Maven.
  4. A configuration management tool, such as Puppet, deployed and provided the test environment, and Jenkins released the code on a test environment that was tested using tools such as Selenium.
  5. Once the code is tested, Jenkins sends it to production servers for deployment (even production servers are configured and maintained by tools like Puppet).
  6. Once deployed, tools such as Nagios continuously monitor it.
  7. The Docker container provides a test environment to test build functionality.

Q6. What are the advantages of DevOps?

For this answer, you can use your past experience to explain how DevOps has helped you do your previous job. If you don’t have any such experience, you can mention the following advantages.

Technical advantage: Continuous software delivery fixes less complex issues and solves problems faster

Business advantage: Faster delivery of new functionality more stable operating environment more time to add value (rather than repair/maintenance)

Q7. What is the most important thing that DevOps has helped us achieve?

As far as I know, the most important thing DevOps has helped us achieve is to get changes into production as quickly as possible while maximizing software quality and compliance. This is the primary goal of DevOps.

You can also mention many of the other positive effects of DevOps, such as clearer communication and better working relationships between teams — where operations and development teams work together to improve customer satisfaction by delivering high-quality software.

Q8. Explain DevOps with an industrial/real life use case

There are many industries that are using DevOps, so you can cite any number of examples, as well as the following: Etsy is a P2P e-commerce site that focuses on handmade or antique items, as well as unique factory-made items. Etsy has struggled with slow and painful website updates that often crash the site, affect the use of millions of Etsy users who sell goods through online marketplaces, and most likely push them to competitors.

With the help of the new technology management team, Etsy moved from a waterfall model of four-hour site-wide deployments twice a week to a more agile model. Today it has a fully automated deployment pipeline, and its continuous delivery practice reportedly enables more than 50 deployments per day with fewer disruptions.

Q9. Explain and share your understanding and expertise in software development and technical operations in your previous jobs

This answer is mainly about sharing your past work experience and trying to explain your flexibility in your previous job. Consider the following example: DevOps engineers almost always work in a business-critical online environment around the clock. I am able to work on call and take responsibility for the maintenance of production systems. I successfully automated the process to support continuous software deployment; I have experience with public/private clouds, tools like Chef or Puppet, scripting and automation with tools like Python and PHP, and an agile background.

Q10. What are the anti-patterns of DevOps?

Generally speaking, a pattern is usually followed in your R&D organization, but if a pattern commonly adopted by others doesn’t work for your organization, and you continue to blindly follow it, then you are actually adopting an anti-pattern. Some misconceptions about DevOps include:

  • DevOps is a process
  • Agile is DevOps?
  • We need a separate DevOps team
  • DevOps will solve all of our problems
  • DevOps means that developers manage production
  • DevOps is development-driven release management
  • DevOps is not development-driven
  • DevOps is not IT business driven
  • We can’t apply DevOps – we’re special
  • We can’t use DevOps. – We’re barking up the wrong tree

Click on CODING to experience DevOps’ full toolchain agile development