DevOps’ revolution of the workplace has caused its adoption to surge by companies of all sizes and industries. In 2017, the State of DevOps report by Puppet revealed that high-performing teams embracing DevOps deployed 46 times faster, experienced 24 times faster recovery time from failures and spent 50% less time fixing security issues.
This upward trend in adoption also led to the DevOps engineer being listed as one of the best jobs to have by Indeed in 2018 and 2017. In 2016, our research showed a growth of 191% in the search for “devops engineer” and if this course continues, experts predict the popularity of DevOps will peak in 2019.
There are a ton of definitions of what “DevOps” actually is. Is it a culture? A movement? A department? All of those things?
Born out of enterprise systems management and Agile development, the roots of DevOps came from mainstream concepts, and from a need to deliver quality software at a quicker pace. But with all the definitions, one of the most accepted ones comes from Gartner, which describes DevOps as a “change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach.”
20 DevOps interview questions you need to know
As more companies continue to embrace DevOps, hiring managers are looking for DevOps engineers with a particular mindset for solving problems, a thirst for learning and a knack for strategic thinking.
There’s no standard career track for a DevOps engineer, but employers are seeking candidates with strengths in both development and operations. We’ve curated a list of interview questions that will cover 1) how candidates view DevOps, 2) deployment methods, 3) continuous integration techniques and 4) testing knowledge.
How you view DevOps
With all the definitions out there and more than 50% of enterprises adopting DevOps, there’s a huge amount of variation not just between two candidates, but what two employers might look for. Regardless, employers want a DevOps engineer that knows how to work effortlessly between the engineering and development side of things, and has what it takes to contribute to a seamless software delivery experience. They’ll likely set the stage by digging into how your experience has shaped your philosophy, and what that’ll mean at their company.
How to prepare
Hiring managers want to know your definition of DevOps because it’ll lead to how you’ve implemented it in previous roles. So ask yourself: What is DevOps? How would you explain it in 15 seconds? A minute? Five minutes?
Once you’ve got that down, go back through the tools you’ve used: Git for version control, Jenkins for continuous integration, Selenium for automated testing, etc. They’ll dig into those later, but when you tease those up, you can guide the interview. Be ready with specific examples of plans or procedures you created that added more power to the development process of the DevOps team. Focus on the ones you already have on your resume because those are the ones the interviewer knows to ask about.
- How would you define DevOps?
- Is there a difference between DevOps and Agile? What is it?
- What are some anti-patterns of DevOps? Have you resolved any of these in your previous roles?
- What are the tools you’re most comfortable using in DevOps? Least comfortable?
- Can you give a specific example where you’ve improved collaboration between IT and development teams?
Deployment is essential to the entire DevOps process—high-performing DevOps teams are able to deploy 200 times more frequently, with 2,555 times faster lead times, compared to low-performing teams deploying only once per month. Interviewers want a DevOps engineer with the tech expertise to seamlessly get code to production and the grit to tackle any roadblocks that may occur along the way.
How to prepare
In addition to being able to fully explain the process, be ready to share your own examples and outline how you’ve driven or enhanced the deployment pipeline in your previous roles. While you shouldn’t lead with failures, be prepared to speak to them, and what you learned from them. If you’ve only worked with some deployment strategies, study up on different types (e.g., blue-green, canary) and the advantages and disadvantages of each.
- How do you package your deployments?
- What is continuous deployment? Are there risks to it?
- What are some things that increase the complexity of a DevOps pipeline?
- How do you manage roll-backs?
- Can you talk about a challenging deployment you worked on? What did you learn from that experience?
Continuous integration (CI) allows teams to quickly build and test code for bugs while reducing the time it takes to deliver software updates. Employers want a DevOps engineer who isn’t shy about addressing software development errors when they arise and has the collaborative nature needed to get in the trenches with the rest of the team to continuously improve the delivery process.
How to prepare
CI can be challenging for teams with daily building and testing, so employers need to know that you’d be comfortable with the process and could make developers more comfortable, too. Know the role container tech like Docker and Kubernetes plays in continuous integration and when it should be used. Be ready to talk about any other tools you’ve used, including Gitlab, Bamboo and TeamCity. Give examples of when you’ve had to collaborate with other team members or departments to overcome an obstacle, describe the steps you took and how you were able to solve the issue.
- What makes for successful CI?
- How have you dealt with challenges in continuous integration?
- What’s the difference between continuous integration, deployment and delivery?
- What are some useful plugins in Jenkins you’ve used?
- What tools have you used in continuous integration and how were they used?
In the DevOps environment, everyone does their share of testing—from the development process all the way to production. With both the development and operations side taking their part in testing, quality code can be delivered error-free. Your test automation prowess brings great value to not only the DevOps team, but to the entire company because automated testing helps catch bugs earlier during development, when it costs less to fix and reduces any risk to the delivery schedule.
How to prepare
Know the process involved in continuous testing, and how it affects the developer’s workflow. Explain the importance of testing early and often, and be able to talk about the different types of testing frameworks you’ve used, such as Selenium or Cucumber.
- Can you explain what continuous testing is and why it’s important?
- What testing tools are you most comfortable with?
- How have you automated testing in the DevOps lifecycle? If you haven’t, what are some automated tests you’ve worked with?
- When do you run white box vs black box testing?
- What sort of regression tests have you run? Functional tests?
These aren’t the only questions that may come up in a DevOps interview. Every employer’s tech stack and departments vary, so it’s difficult to expect what they’ll be asking. But by focusing on the key elements and highlighting the parts you’ve mastered (and being aware of the ones you haven’t…yet), you’ll be ready for whatever your interviewer might throw your way.