1. What is the need for DevOps?
Companies need increased deployment frequency, small failure rate of new releases, less lead time between fixes, quicker mean time to recovery suppose a new release is crashing etc. DevOps takes care of all these requirements and assists in providing perfect software delivery. You can also give examples of companies that have embraced DevOps to accomplish levels of performance that was impossible some time back.
2. What are the advantages of DevOps?
- Continuous software delivery
- No need to worry about solving problems all the time
- Quicker resolution of problems
- Quick delivery of features
- A stable operating environment
- Sufficient time present to add value
- Faster delivery of features
- More stable operating environments
- More time available to add value (rather than fix/maintain)
4. What is Test Driven Development (TDD)?
Test Driven Development is a major agile and DevOps practices. It assists in quick iterations and continuous integrations. Test cases are the core of development process here. You can find out problems rapidly and this helps in controlling risks in a graceful manner.
Suppose a test case fails, then TDD is the appropriate solution for writing the code. More than being a testing methodology,it takes the role of even a design and development methodology.
5. What are Design Patterns?
The developers gain from Design Patterns since they provide solutions to problems faced by them. They demonstrate the best practices that are used by developers. Even an inexperienced developer can learn easily and rapidly through design patterns.
There are majorly 3 types of Design Patterns:
Creational: addresses design issues
Structural: provides an easy way to relationships between objects
Behavioral: Provides an easy way of how objects interact with each other.
6. What are the foundational pillars of DevOps Testing?
The major pillars of DevOps testing are:
- Adopt testing early and ascertain production proactiveness every time
- Make use of proven technologies and patterns.
- Utilize the proper rigor
7. What is white box and black box testing?
In black box testing the tester is not aware of internal structures of the application. In white box testing, the tester is aware of the designs and frame of the product.
White box testing is performed at the unit and component level of testing. Black box testing is performed at the acceptance and system level of testing.
There is the requirement of programming languages knowledge with white box testing. In black box testing you may or may not require programming skills.
8. Is Selenium a good testing tool?
Yes. In fact, it is regarded as one of the efficient tools for DevOps-based operations. It is open-source and supports different browsers. It has great communities, supports distributed testing and is free.
9. How is DevOps different from Agile ?
Agile is a set of principles on producing software. However, the software might function on a developer’s laptop or in a test environment. There arises the need for a way to rapidly, easily and repeatedly shift that software into production infrastructure. This is done in a safe and easy way. For this one requires DevOps tools and techniques.
Agile software development methodology concentrates on the development of software. On the other hand, DevOps is needed for the development and deployment of the software in the safest and dependable manner.
10. Which are the top DevOps tools? Which tools have you worked on?
The most famous DevOps tools are listed here:
- Git : Version Control System tool
- Selenium : Continuous Testing tool
- Jenkins : Continuous Integration tool
- Puppet, Chef, Ansible : Configuration Management and Deployment tools
- Docker : Containerization tool
- Nagios : Continuous Monitoring tool
For the second question, answer the tools that you have worked on.
11. What are the best practices for DevOps implementation?
- DevOps implementation differs from one company to another company. Nowadays the companies are trying to deliver the software quicker.
- Every company has a vision and goal. DevOps implementation should adhere to it. Change should be understood.
- There should be motivation of communication and coordination specifically between development and operations.
- The core element is automation and should be performed meticulously within the SDLC stages.
- CI and CD practices are the key factors of DevOps. Continuous integration of your code or continuous testing and performing continuous delivery is the essential factor.
- Cultivating the habit of getting feedback from the end user should be taken up. This leads to continuous improvement which acts as a major force for enhancing the process and delivering quality software.
13. What are the key components of DevOps?
- Continuous Integration
- Continuous Testing
- Continuous Delivery
- Continuous Monitoring
14. Explain Continuous Integration.
Continuous Integration is essential for Agile process. Generally developers take care of features within a sprint and commit their specific changes to the version control repository.
After the code is committed the total work of developers is integrated in a fine manner. Moreover the build is done on a frequent basis dependent on every check-in or schedule. Continuous integration encourages early feedback for the developers.
15. Explain Continuous Delivery.
Being an extension of Continuous Integration Continuous Delivery majorly assists to make the process of development reach the end users as early as possible. This process goes through several stages of QA, Staging etc. Later it goes for delivery in the production system.
16. Explain Continuous Testing.
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.
17. Explain Continuous Monitoring.
There is a requirement of monitoring the performance of an application as it is developed and deployed. Monitoring is also very essential since it will help in bringing out defects that would have been ignored earlier.
18. What is Version control?
Version Control is a system that records changes to a file or set of files with the evolution of time. This helps to recall specific versions at a later point.
19. What are containers?
Containers are a type of lightweight virtualization. They offer isolation among processes.
20. Describe two-factor authentication.?
Two-factor authentication refers to a security process in which the user gives two means of identification. This is obtained from separate categories of credentials.
21. How would you explain the concept of “infrastructure as code” (IaC)?
Infrastructure as Code is also sometimes termed as a programmable infrastructure. As implied from the name, the infrastructure is looked upon in the same way just like any other code.
Here you don’t manually make configuration changes or use one-off scripts to perform infrastructure adjustments. The operations infrastructure is controlled applying the same rules and structures that take care of code development.
The key best practices of DevOps including version control, continuous monitoring and virtualized tests are deployed on the underlying code the manages the formation and controlling of your infrastructure.
22.Discuss your experience building bridges between IT Ops, QA and development?
The key essence of DevOps is efficient communication and collaboration. Talk about how you have handled production concerns from operations and development sides. Also tell whether you have worked on a common vision and didn’t involve in the blame game.
23. How do you expect you would be required to multitask as a DevOps professional?
Concentrate on bridging communication gaps between Development and Operations teams.
Comprehend system design from the angle of an architect,, software development from a developer’s angle, operations and infrastructure from the angle of an experienced Systems Administrator.
Execute-to be in a position to do what actually needs to be carried out.