Google News
DevOps Interview Questions
KPI Means Key Performance Indicators are used to measure the performance of a DevOps team, identify mistakes and rectify them. This helps the DevOps team to increase productivity and which directly impacts revenue.
There are many KPIs which one can track in a DevOps team. Following are some of them :
Change Failure rates : This is used to measure the number of failures in deployments.

Meantime to recovery (MTTR) :
The time is taken to recover from a failed deployment.

Lead time :
This helps to measure the time taken to deploy on the production environment.

Deployment frequency :
This measures how frequently a new feature is deployed.

Change volume :
This is used to measure how much code is changed from the existing code.

Cycle time :
This is used to measure total application development time.

Customer Ticket :
This helps us to measure the number of errors detected by the end-user.

Availability :
This is used to determine the downtime of the application.

Defect escape rate :
This helps us to measure the number of issues that are needed to be detected as early as possible.

Time of detection :
This helps you understand whether your response time and application monitoring processes are functioning correctly.
Continuous deployment is fully automated, and the deployment to production needs no manual intervention in continuous deployment; whereas, in continuous delivery, the deployment to production requires some manual intervention for change management in the organization, and it needs to be approved by the manager or higher authorities to be deployed in production. According to your organization’s application risk factor, continuous deployment/delivery approach will be chosen.

continuous deployment and continuous delivery
* High availability
* Collaboration friendly
* Data redundancy and replication
* Only one Git directory per repository
* Superior disk utilization and network performance
* Can be used for any sort of projects
The command ‘git pull’ pulls any new commits from a branch from the central repository and then updates the target branch in the local repository.
But, ‘git fetch’ is a slightly different form of ‘git pull’. Unlike ‘git pull’, it pulls all new commits from the desired branch and then stores them in a new branch in the local repository.
In order to reflect these changes in your target branch, ‘git fetch’ must be followed with a ‘git merge’. The target branch will only be updated after merging with the fetched branch (where we performed ‘git fetch’). We can also interpret the whole thing with an equation like this:
git pull = git fetch + git merge
* Faster development of software and quick deliveries.
* Customer satisfaction is enhanced.
* DevOps methodology is flexible and adaptable to changes easily.
* Compared to the previous software development models confusion about the project is decreased due to which the product quality is increased.
* The gap between the development team and operation team is bridged. i.e, the communication between the teams has been increased.
* Efficiency is increased by the addition of automation of continuous integration and continuous deployment.
According to me, the most important thing that DevOps helps us achieve is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. This is the primary objective of DevOps. Learn more in this DevOps tutorial blog.

However, you can add many other positive effects of DevOps. For example, clearer communication and better working relationships between teams i.e. both the Ops team and Dev team collaborate together to deliver good quality software which in turn leads to higher customer satisfaction.
SSH stands for Secure Shell and is an administrative protocol that lets users have access and control the remote servers over the Internet to work using the command line.
SSH is a secured encrypted version of the previously known Telnet which was unencrypted and not secure. This ensured that the communication with the remote server occurs in an encrypted form.
SSH also has a mechanism for remote user authentication, input communication between the client and the host, and sending the output back to the client.
Configuration management (CM) is basically a practice of systematic handling of the changes in such a way that system does not lose its integrity over a period of time. This involves certain policies, techniques, procedures, and tools for evaluating change proposals, managing them, and tracking their progress along with maintaining appropriate documentation for the same.
CM helps in providing administrative and technical directions to the design and development of the appreciation.
The following diagram gives a brief idea about what CM is all about :
DevOps Configuration Management
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.

Different Phases in DevOps

 The above figure indicates the DevOps lifecycle.
Continuous monitoring in DevOps

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.