DevOps Interview Questions and Answers

Q1 : Explain DevOps.

A :

  • DevOps promotes communication and collaboration between business, development & operations teams. In a way, we are talking about unification.
  • DevOps is not only about tools but also about involving people and process.
  • DevOps is inspired by the Agile process.
  • DevOps is about automating the development, release and operation processes.
  • DevOps helps in the speed of delivering applications to the end users.
  • DevOps is also about continuous improvement which helps in learning through feedback.

Q2 : What are the popular DevOps tools that you use?

A: We use the following tools for work in DevOps:

Jenkins: This is an open source automation server used as a continuous integration tool. We can build, deploy and run automated tests with Jenkins.

GIT: It is a version control tool used for tracking changes in files and software.

Docker: This is a popular tool for containerization of services. It is very useful in Cloud-based deployments.

Nagios: We use Nagios for monitoring of IT infrastructure.

Splunk: This is a powerful tool for log search as well as monitoring production systems.

Puppet: We use Puppet to automate our DevOps work so that it is reusable.

Q3 : How does CloudFormation work in AWS?

A : AWS CloudFormation is used for deploying AWS resources.

In CloudFormation, we have to first create a template for a resource. A template is a simple text file that contains information about a stack on AWS. A stack is a collection of AWS resourced that we want to deploy together in an AWS as a group.

Once the template is ready and submitted to AWS, CloudFormation will create all the resources in the template. This helps in automation of building new environments in AWS.

Q4 : Explain a few prerequisites that are useful for DevOps implementation.

A : Typically the pre-requisites would include:

  • Commitment at the senior level in the organization.
  • Need for change to be communicated across the organization.
  • Version control software.
  • Automated tools for compliance to process.
  • Automated Testing
  • Automated Deployment

Q5 : Can DevOps be applied to a Waterfall process? Explain the significance of the Agile process in DevOps implementation.

A : In the waterfall process, as all of us are aware initially complete Requirements are gathered, next the System is designed, Implementation of the System is then done followed by System testing and deployed to the end users. In this process, the problem was that there was a huge waiting time for build and deployment which made it very difficult to get the feedback.

The solution to the above problem was that the Agile process has to bring in agility in both development and operations. The agile process could be the principle or a certain pre-requisite may be required for DevOps implementation. DevOps goes hand in hand with the Agile process.

The focus area is to release the software in a very timely manner with shorter release cycles and quick feedback. So the agile process focus will mainly be on speed and in DevOps, it works well with the automation of various tools

Q6 : Why we need DevOps?

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

Q7 : What are the core operations of DevOps with application development and with infrastructure?

A : The core operations of DevOps with

Application development

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

With infrastructure

  • Provisioning
  • Configuration
  • Orchestration
  • Deployment

Q8 : Explain Continuous Testing.

A : From the above goal of Continuous Integration which is to get the application out to end users are primarily enabling continuous delivery. This cannot be completed without a sufficient amount of unit testing and automation testing.

Hence, we need to validate that the code produced and integrated with all the developers who perform as required.

Q9 : Explain Continuous Integration.

A : Continuous Integration is a very important component of the Agile process. Typically developers work on features or user stories within a sprint and commit their changes to the version control repository.

Once the code is committed, then the entire work of developers is well integrated and the build is performed on a regular basis based on every check-in or schedule. Hence, Continuous Integration as a practice forces the developer to integrate their changes with the others so as to get an early feedback.

Q10 : Explain Continuous Delivery.

A : Continuous Delivery is an extension of Continuous Integration which primarily helps to get the features which the developers are developing out to the end users as soon as possible. During this process, it goes through various stages of QA, Staging etc., and then for delivery to the PRODUCTION system.

Q11 : Explain Continuous Monitoring.

A : As the application is developed and deployed, we do need to monitor its performance. Monitoring is also very important as it might help to uncover the defects which might not have been detected earlier.

Q12 : How will you approach when a project needs to implement DevOps?

A : Following approaches can be used but that will vary based on the actual project scenarios or from organization to organization

Stage 1: For any DevOps implementation an assessment of the existing process and implementation for around 2 to 3 weeks taking an average of 5 applications is a must to gauge the AS-IS process, identifies the improvement areas and provides a roadmap for the implementation.

Typically a senior profile like a DevOps architect should be involved to conduct this assessment.

Stage 2: A pilot POC can be done to showcase the end to end working of DevOps. Once this has been accepted and approved by the end users only then the actual implementation, handover and rolls out the plan for the projects involved should be carried out.

Any pieces of training required will also need to be imparted to the process or tools. DevOps architects, engineers, and testers would need to be involved at this stage.

Stage 3: The projects should now be in DevOps mode with all the components of continuous integration/delivery/testing and monitoring that is being followed.

Q13 :  What are the benefits of Continuous Integration(CI)?

A : The benefits of Continuous Integration (CI) are as follows:

⦁ CI makes the current build constantly available for testing, demo and release purpose.

⦁ With CI, developers write modular code that works well with frequent code check-ins.

⦁ In case of a unit test failure or bug, developer can easily revert back to the bug-free state of the code.

⦁ There is drastic reduction in chaos on release day with CI practices.

⦁ With CI, we can detect Integration issues much earlier in the process.

⦁ Automated testing is one very useful side effect of implementing CI.

⦁ All the stakeholders including business partners can see the small changes deployed into pre-production environment. This provides early feedback on the changes to software.

⦁ Automated CI and testing generates metrics like code-coverage, code complexity that help in improving the development process.

Q14 : What are the key components of DevOps?

A :

  • Continuous Integration
  • Continuous Testing
  • Continuous Delivery
  • Continuous Monitoring

Q15 : What are the best practices for DevOps implementation?

A : DevOps implementation varies from one organization to other organization. Today organizations are looking to deliver the software faster and from that point of view here are my thoughts on how DevOps can bring about efficient communication with all the stakeholders including the operations team.

  • Every organization has certain business goals and DevOps implementation should align with it. There should be a certain need for change.
  • Encouraging communication and collaboration especially between development and operations.
  • Automation is the key and should be done and carried out wherever possible within the SDLC stages to facilitate the working of DevOps.
  • The tools used in DevOps should integrate very well. From the point of view of any commercial tools like IBM Rational CLM or Microsoft TFS, implementation of DevOps is good as it is from a single vendor. Similarly, one needs to look at open source tools which integrate to give the similar desired results.
  • DevOps implementation is not successful without CI and CD practices. So continuous integration of your code with rigorous testing and doing continuous delivery is the key for it.
  • It is very important for the Ops team to ensure that the applications are working very well at appropriate levels. If required they will need to work with the development teams to build any tools that would help to build the right monitoring capabilities into the applications.
  • Finally, encourage feedback from end users to enable continuous improvement which provides the key for improving the process and delivering quality software.

Q16 : Explain how “Infrastructure of code” is processed or executed in AWS?

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

Q17 : Can we consider DevOps as an agile methodology?

A : Of course! DevOps is a movement to reconcile and synchronize development and production start through a set of good practices. Its emergence is motivated by a deep changing demands of business, who want to speed up the changes to stick closer to the requirements of business and the customer.

Q18 : Explain how DevOps is helpful to developers?

A : 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.

Q19 : Mention at what instance have you used the SSH?

A : 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.

Q20 : Mention what are the types of Http requests?

A : The types of Http requests are

  • GET
  • HEAD
  • PUT
  • POST
  • PATCH
  • DELETE
  • TRACE
  • CONNECT
  • OPTIONS

Q21 : Which scripting tools are used in DevOps?

A : Python, Ruby

Q22 : Why Automated Testing is a must requirement for DevOps?

Answer: In DevOps approach, we release software with high frequency to production. We have to run tests to gain confidence in the quality of software deliverables.

Running tests manually is a time taking process. Therefore, we first prepare automation tests and then deliver software. This ensures that we catch any defects early in our process.

Q23 : Explain the typical roles involved in DevOps.

A :

  • DevOps Architect – The leader who is responsible for the entire DevOps process.
  • DevOps Engineer – The person should be experienced with Agile, SCM or Version Control, CI /CD and setting up automation tools for the same, Infrastructure automation and Database management skills. Any developer who has skills in coding or scripting and has the acumen to get into deployment or system admin can qualify for the role of a DevOps engineer.

Q24 :  Have you been involved in DevOps implementation in the cloud? If yes which cloud computing platform?

A : Examples of popular Cloud Computing Platforms:

  • AWS – Amazon Web Services
  • Microsoft Azure
  • Google Cloud

Q25 : What is Chaos Monkey in DevOps?

A : Chaos Monkey is a concept made popular by Netflix. In Chaos Monkey, we intentionally try to shut down the services or create failures. By failing one or more services, we test the reliability and recovery mechanism of the Production architecture.

It checks whether our applications and deployment have a survival strategy built into it or not.

Q26 : How do you perform Test Automation in DevOps?

A: We use Jenkins to create automated flows to run Automation tests. The first part of test automation is to develop test strategy and test cases. Once automation test cases are ready for an application, we have to plug these into each Build run.
In each Build we run Unit tests, Integration tests and Functional tests.

With a Jenkins job, we can automate all these tasks. Once all the automated tests pass, we consider the build as green. This helps in deployment and release processes to build confidence on the application software.

Comments are closed.