FRESHERS INTERVIEW Q&A- Devops Part 2
1. How is DevOps different from agile methodology?
DevOps is a culture that allows the development and the operations team to work together. This results in continuous development, testing, integration, deployment, and monitoring of the software throughout the lifecycle.
Agile is a software development methodology that focuses on iterative, incremental, small, and rapid releases of software, along with customer feedback. It addresses gaps and conflicts between the customer and developers.
2. What is Continuous Testing?
Continuous Testing constitutes the running of automated tests as part of the software delivery pipeline to provide instant feedback on the business risks present in the most recent release. In order to prevent problems in step-switching in the Software delivery life-cycle and to allow Development teams to receive immediate feedback, every build is continually tested in this manner. This results in a significant increase in speed in a developer’s productivity as it eliminates the requirement for re-running all the tests after each update and project re-building.
3. Which are some of the most popular DevOps tools?
The most popular DevOps tools include:
Selenium
Puppet
Chef
Git
Jenkins
Ansible
Docker
4. What are the different phases in DevOps?
The various phases of the DevOps lifecycle are as follows:
Plan: Initially, there should be a plan for the type of application that needs to be developed. Getting a rough picture of the development process is always a good idea.
Code: The application is coded as per the end-user requirements.
Build: Build the application by integrating various codes formed in the previous steps.
Test: This is the most crucial step of the application development. Test the application and rebuild, if necessary.
Integrate: Multiple codes from different programmers are integrated into one.
Deploy: Code is deployed into a cloud environment for further usage. It is ensured that any new changes do not affect the functioning of a high traffic website.
Operate: Operations are performed on the code if required.
Monitor: Application performance is monitored. Changes are made to meet the end-user requirements.
5. Mention some of the core benefits of DevOps.
The core benefits of DevOps are as follows:
Technical benefits
Continuous software delivery
Less complex problems to manage
Early detection and faster correction of defects
Business benefits
Faster delivery of features
Stable operating environments
Improved communication and collaboration between the teams
6. How will you approach a project that needs to implement DevOps?
The following standard approaches can be used to implement DevOps in a specific project:
Stage 1
An assessment of the existing process and implementation for about two to three weeks to identify areas of improvement so that the team can create a road map for the implementation.
Stage 2
Create a proof of concept (PoC). Once it is accepted and approved, the team can start on the actual implementation and roll-out of the project plan.
Stage 3
The project is now ready for implementing DevOps by using version control/integration/testing/deployment/delivery and monitoring followed step by step.
By following the proper steps for version control, integration, testing, deployment, delivery, and monitoring, the project is now ready for DevOps implementation.
7. What is Automation Testing?
Test automation or manual testing Automation is the process of automating a manual procedure in order to test an application or system. Automation testing entails the use of independent testing tools that allow you to develop test scripts that can be run repeatedly without the need for human interaction.
8. What is the role of configuration management in DevOps?
Enables management of and changes to multiple systems.
Standardizes resource configurations, which in turn, manage IT infrastructure.
It helps with the administration and management of multiple servers and maintains the integrity of the entire infrastructure.
9. How does continuous monitoring help you maintain the entire architecture of the system?
Continuous monitoring in DevOps is a process of detecting, identifying, and reporting any faults or threats in the entire infrastructure of the system.
Ensures that all services, applications, and resources are running on the servers properly.
Monitors the status of servers and determines if applications are working correctly or not.
Enables continuous audit, transaction inspection, and controlled monitoring.
10. What is the role of AWS in DevOps?
AWS has the following role in DevOps:
Flexible services: Provides ready-to-use, flexible services without the need to install or set up the software.
Built for scale: You can manage a single instance or scale to thousands using AWS services.
Automation: AWS lets you automate tasks and processes, giving you more time to innovate
Secure: Using AWS Identity and Access Management (IAM), you can set user permissions and policies.
Large partner ecosystem: AWS supports a large ecosystem of partners that integrate with and extend AWS services.
11. Name three important DevOps KPIs.
The three important KPIs are as follows:
Meantime to failure recovery: This is the average time taken to recover from a failure.
Deployment frequency: The frequency in which the deployment occurs.
Percentage of failed deployments: The number of times the deployment fails.
12. Explain the term “Infrastructure as Code” (IaC) as it relates to configuration management.
Writing code to manage configuration, deployment, and automatic provisioning.
Managing data centers with machine-readable definition files, rather than physical hardware configuration.
Ensuring all your servers and other infrastructure components are provisioned consistently and effortlessly.
Administering cloud computing environments, also known as infrastructure as a service (IaaS).
13. How is IaC implemented using AWS?
Start by talking about the age-old mechanisms of writing commands onto script files and testing them in a separate environment before deployment and how this approach is being replaced by IaC. Similar to the codes written for other services, with the help of AWS, IaC allows developers to write, test, and maintain infrastructure entities in a descriptive manner, using formats such as JSON or YAML. This enables easier development and faster deployment of infrastructure changes.
14. What are the anti-patterns of DevOps?
Patterns are common practices that are usually followed by organizations. An anti-pattern is formed when an organization continues to blindly follow a pattern adopted by others but does not work for them. Some of the myths about DevOps include:
Cannot perform DevOps → Have the wrong people
DevOps ⇒ Production Management is done by developers
The solution to all the organization’s problems ⇒ DevOps
DevOps == Process
DevOps == Agile
Cannot perform DevOps → Organization is unique
A separate group needs to be made for DevOps
15. What are the benefits of using version control?
Here are the benefits of using Version Control:
All team members are free to work on any file at any time with the Version Control System (VCS). Later on, VCS will allow the team to integrate all of the modifications into a single version.
The VCS asks to provide a brief summary of what was changed every time we save a new version of the project. We also get to examine exactly what was modified in the content of the file. As a result, we will be able to see who made what changes to the project.
Inside the VCS, all the previous variants and versions are properly stored. We will be able to request any version at any moment, and we will be able to retrieve a snapshot of the entire project at our fingertips.
A VCS that is distributed, such as Git, lets all the team members retrieve a complete history of the project. This allows developers or other stakeholders to use the local Git repositories of any of the teammates even if the main server goes down at any point in time.