Top CI CD DevOps Interview Questions(2020)
In this post we will look at Continuous Integration(CI) and Continuous Delivery(CD) Interview questions. Examples are provided with explanation.
What is meant by CI-CD?CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment. CI/CD is a solution to the problems integrating new code can cause for development and operations teams.It typically involves the creation of a largely automated pipeline that orchestrates the build, test and deployment of software across staged environments, ultimately leading to deployment in production.
What is Continuous Deployment (CD)?Continuous Deployment (CD) is a software release process that uses automated testing to validate if changes to a codebase are correct and stable for immediate autonomous deployment to a production environment. The software release cycle has evolved over time.
What is Continuous Integration (CI)?Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project.The version control system is also supplemented with other checks like automated code quality tests, syntax style review tools, and more.
What does CI CD pipeline mean?A CI/CD pipeline is a series of steps that must be performed in order to deliver a new version of software. Continuous integration/continuous delivery (CI/CD) pipelines are a practice focused on improving software delivery using either a DevOps or site reliability engineering (SRE) approach.
What does Containerization mean?
- Containerisation is a type of virtualization strategy that emerged as an alternative to traditional hypervisor-based virtualization.In containerization, the operating system is shared by the different containers rather than cloned for each virtual machine.
- For example Docker provides a container virtualization platform that serves as a good alternative to hypervisor-based arrangements.
What are benefits of CI-CD ?
- Smaller code changes are simpler (more atomic) and have fewer unintended consequences.
- Fault isolation is simpler and quicker.
- Mean time to resolution (MTTR) is shorter because of the smaller code changes and quicker fault isolation.
- Testability improves due to smaller, specific changes. These smaller changes allow more accurate positive and negative tests.
- Elapsed time to detect and correct production escapes is shorter with a faster rate of release.
- The backlog of non-critical defects is lower because defects are often fixed before other feature pressures arise.
- The product improves rapidly through fast feature introduction and fast turn-around on feature changes.
- Upgrades introduce smaller units of change and are less disruptive.
- CI-CD product feature velocity is high. The high velocity improves the time spent investigating and patching defects.
- Feature toggles and blue-green deploys enable seamless, targeted introduction of new production features.
- You can introduce critical changes during non-critical (regional) hours. This non-critical hour change introduction limits the potential impact of a deployment problem.
What is the need for DevOps?
- Increase deployment frequency.
- Lower failure rate of new releases.
- Shortened lead time between fixes.
- Faster mean time to recovery in the event of new release crashing. DevOps fulfills all these requirements and helps in achieving seamless software delivery.
What is Docker?Docker is a containerization platform which packages your application and all its dependencies together in the form of containers so as to ensure that your application works seamlessly in any environment be it development or test or production.This guarantees that the software will always run the same, regardless of its environment.
What is Hypervisor?A hypervisor, also known as a virtual machine monitor or VMM, is software that creates and runs virtual machines (VMs). A hypervisor allows one host computer to support multiple guest VMs by virtually sharing its resources, such as memory and processing.
VMware and Hyper-V are two key examples of hypervisor.