Chef DevOps Interview Questions
Chef DevOps Interview Questions
mindmajix.com /chef-devops-interview-questions/
Mindmajix 7/29/2016
The HTTP protocol works in a client and server model like most other protocols. A web browser using which a
request is initiated is called as a client and a web server software which responds to that request is called a server.
World Wide Web Consortium and the Internet Engineering Task Force are two important spokes in the
standardization of the HTTP protocol. HTTP allows improvement of its request and response with the help of
intermediates, for example a gateway, a proxy, or a tunnel. The resources that can be requested using the HTTP
protocol, are made available using a certain type of URI (Uniform Resource Identifier) called a URL (Uniform
Resource Locator). TCP (Transmission Control Protocol) is used to establish a connection to the application layer
port 80 used by HTTP.
Q.Explain your understanding and expertise on both the software development side and the
technical operations side of an organization you’ve worked for in the past.
DevOps engineers almost always work in a 24/7 business critical online environment. I was adaptable to on-call
duties and able 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.
DevOps is all about effective communication and collaboration. I’ve been able to deal with production issues from
the development and operations sides, effectively straddling the two worlds. I’m less interested in finding blame or
playing the hero than I am with ensuring that all of the moving parts come together.
Software teams will often look for the “fair weather” path to system completion; that is, they start from an assumption
that software will usually work and only occasionally fail. I believe to practice defensive programming in a pragmatic
way, which often means assuming that the code will fail and planning for those failures. I try to incorporate unit test
strategy, use of test harnesses, early load testing; network simulation, A/B and multi-variate testing etc.
As a professional with managerial responsibilities, I would demonstrate a clear understanding of DevOps project
management tactics and also work with teams to set objectives, streamline workflow, maintain scope, research and
introduce new tools or frameworks, translate requirements into workflow and follow up. I would resort to CI, release
management and other tools to keep interdisciplinary projects on track.
1/6
Q.What’s your career objective in your role as a DevOps engineer?
My passion is breaking down the barriers and building and improving processes, so that the engineering and
operations teams work better and smarter. That’s why I love DevOps. It’s an opportunity to be involved in the entire
delivery system from start to finish.
The ability to script the installation and reconfiguration of software systems is essential towards controlled and
automated change. Although there is an increasing trend for new software to enable this, older systems and
products suffer from the assumption that changes would be infrequent and minor, and so make automated changes
difficult. As a professional who appreciates the need to expose configuration and settings in a manner accessible to
automation, I will work with concepts like Inversion of Control (IoC) and Dependency Injection, scripted installation,
test harnesses, separation of concerns, command-line tools, and infrastructure as code.
The most important thing DevOps helps do is to get the changes into production as quickly as possible while
minimizing risks in software quality assurance and compliance. That is the primary objective of DevOps. However,
there are many other positive side-effects to DevOps. For example, clearer communication and better working
relationships between teams which creates a less stressful working environment.
Q.Which scripting languages do you think are most important for a DevOps engineer?
As far as scripting languages go, the simpler the better. In fact, the language itself isn’t as important as
understanding design patterns and development paradigms such as procedural, object-oriented, or functional
programming.
1. Focus attention on bridging communication gaps between Development and Operations teams.
2. Understand system design from an architect’s perspective, software development from a developer’s
perspective,operations and infrastructure from the perspective of a seasoned Systems Administrator.
3. Execute – to be able to actually do what needs to be done.
Q.What testing is necessary to ensure that a new service is ready for production?
DevOps is all about continuous testing throughout the process, starting with development through to production.
Everyone shares the testing responsibility. This ensures that developers are delivering code that doesn’t have any
errors and is of high quality, and it also helps everyone leverage their time most effectively.
Pointer records are used to map a network interface (IP) to a host name. These are primarily used for reverse DNS.
2/6
Reverse DNS is setup very similar to how normal (forward) DNS is setup. When you delegate the DNS forward, the
owner of the domain tells the registrar to let your domain use specific name servers.
Two-factor authentication is a security process in which the user provides two means of identification from separate
categories of credentials; one is typically a physical token, such as a card, and the other is typically something
memorized, such as a security code.
The premise of CI is to get feedback as early as possible because the earlier you get feedback, the less things cost
to fix. Popular open source tools include Hudson, Jenkins, CruiseControl and CruiseControl.NET. Commercial tools
include ThoughtWorks’ Go, Urbancode’s Anthill Pro, Jetbrains’ Team City and Microsoft’s Team Foundation Server.
MX records are mail exchange records used for determining the priority of email servers for a domain. The lowest
priority email server is the first destination for email. If the lowest priority email server is unavailable, mail will be sent
to the higher priority email servers.
RAID 1 offers redundancy through mirroring, i.e., data is written identically to two drives. RAID 0 offers no
redundancy and instead uses striping, i.e., data is split across all the drives. This means RAID 0 offers no fault
tolerance; if any of the constituent drives fails, the RAID unit fails.
Tips to answer: This question evaluates your experience of real projects with all the awkwardness and complexity
they bring. Include terms like cut-over, dress rehearsals, roll-back and roll-forward, DNS solutions, feature toggles,
branch by abstraction, and automation in your answer. Developing greenfield systems with little or no existing
3/6
technology in place is always easier than having to deal with legacy components and configuration. As a candidate
if you appreciate that any interesting software system will in effect be under constant migration, you will appear
suitable for the role.
Tips to answer: Some DevOps jobs require extensive systems knowledge, including server clustering and highly
concurrent systems. As a DevOps engineer, you need to analyze system capabilities and implement upgrades for
efficiency, scalability and stability, or resilience. It is recommended that you have a solid knowledge of OSes and
supporting technologies, like network security, virtual private networks and proxy server configuration.
DevOps relies on virtualization for rapid workload provisioning and allocating compute resources to new VMs to
support the next rollout, so it is useful to have in-depth knowledge around popular hypervisors. This should ideally
include backup, migration and lifecycle management tactics to protect, optimize and eventually recover computing
resources. Some environments may emphasize microservices software development tailored for virtual containers.
Operations expertise must include extensive knowledge of systems management tools like Microsoft System Center,
Puppet, Nagios and Chef. DevOps jobs with an emphasis on operations require detailed problem-solving,
troubleshooting and analytical skills.
Tips to answer: Software configuration management and build/release (version control) tools, including Apache
Subversion, Mercurial, Fossil and others, help document change requests. Developers can more easily follow the
company’s best practices and policies while software changes.
Continuous integration (CI) tools such as Rational Build Forge, Jenkins and Semaphore merge all developer copies
of the working code into a central version. These tools are important for larger groups where teams of developers
work on the same codebase simultaneously. QA experts use code analyzers to test software for bugs, security and
performance. If you’ve used HP’s Fortify Static Code Analyzer, talk about how it identified security vulnerabilities in
coding languages. Also speak about tools like GrammaTech’s CodeSonar that you used to identify memory leaks,
buffer underruns and other defects for C/C++ and Java code. It is essential that you have adequate command of the
principal languages like Ruby, C#, .NET, Perl, Python, Java, PHP, Windows PowerShell, and are comfortable with
the associated OS environments Windows, Linux and Unix.
Q.How much have you interacted with cloud based software development?
Tips to answer: Share your knowledge around use of cloud platforms, provisioning new instances, coding new
software iterations with the cloud provider’s APIs or software development kits, configuring clusters to scale
computing capacity, managing workload lifecycles and so on. This is the perfect opportunity to discuss container-
based cloud instances as an alternative to conventional VMs. Event-based cloud computing, such as AWS Lambda
offers another approach to software development, a boon for experienced DevOps candidates. In your interview,
mention experience handling big data, which uses highly scalable cloud infrastructures to tackle complex computing
tasks.
Q.What other tools are you familiar with that might help you in this role?
Tips to answer: DevOps is so diverse and inclusive that it rarely ends with coding, testing and systems. A DevOps
project might rely on database platforms like SQL or NoSQL, data structure servers like Redis, or configuration and
4/6
management issue tracking systems like Redmine. Web applications are popular for modern enterprises, making a
background with Web servers, like Microsoft Internet Information Services, Apache Tomcat or other Web servers,
beneficial. Make sure to bring across that you are familiar with Agile application lifecycle management techniques
and tools.
Q.Are you familiar with just Linux or have you worked with Windows environments as well?
Tips to answer: Demonstrate as much as you can, a clear understanding of both the environments including the key
tools.
Tips to answer: Talk about Webpage optimization, cached web pages, quality web hosting , compressed text files,
Apache fine tuning.
Tips to answer: Answer with a comprehensive list of all the tools that you used. Include inferences of the challenges
you faced and how you tackled them.
Tips to answer: This question probes your attitude to metrics, logging, transaction journeys, and reporting. You
should be able to identify that metric, monitoring and logging needs to be a core part of the software system, and
that without them, the software is essentially not going to be able to appear maintained and diagnosed. Include
words like SysLog, Splunk, error tracking, Nagios, SCOM, Avicode in your answer.
Tips to answer: Make sure you demonstrate your perfect understanding of both development and operations. Do not
let your answer lean towards one particular skillset ignoring the other. Even if you have worked in an environment
wherein you had to work more with one skillset, assure the intervewer that you are agile according to the needs of
your organization.
Q.What problems did you face and how did you solve them in a way that met the team’s
goals?
Tips to answer: This questions aims to find out how much you can handle stress and non-conformity at work. Talk
about your leadership skills to handle and motivate the team to solve problems together.Talk about CI, release
management and other tools to keep interdisciplinary projects on track.
Tips to answer: This is probably the trickiest question that you might face in the interview. Emphasize the fact that
this depends a lot on the job, the company you are working for and the skills of people involved. You really have to
be able to alternate between both sides of the fence at any given time. Talk about your experience and demonstrate
5/6
how you are agile with both.
Q.What special training or education did it require for you to become a DevOps engineer?
Tips to answer: DevOps is more of a mind-set or philosophy rather than a skill-set. The typical technical skills
associated with DevOps Engineers today is Linux systems administration, scripting, and experience with one of the
many continuous integration or configuration management tools like Jenkins and Chef. What it all boils down to is
that whatever skill-sets you have, while important, are not as important as having the ability to learn new skills
quickly to meet the needs. It’s all about pattern recognition, and having the ability to merge your experiences with
current requirements.Proficiency in Windows and Linux systems administration, script development, an
understanding of structured programming and object-oriented design, and experience creating and consuming
RESTful APIs would take one a long way.
6/6