Top CI CD DevOps Interview Questions(2021) | CodeUsingJava
















Top CI CD DevOps Interview Questions(2021)

In this post we will look at Continuous Integration(CI) and Continuous Delivery(CD) Interview questions. Examples are provided with explanation.
Continuous Integration(CI) and Continuous Delivery(CD) Interview Questions
  1. What is meant by CI-CD?
  2. What is Continuous Deployment (CD)?
  3. What is Continuous Integration (CI)?
  4. Name the factors for Continuous Integration?
  5. What does CI CD pipeline mean?
  6. What does Containerization mean?
  7. What are benefits of CI-CD?
  8. What is Docker?
  9. What is Hypervisor?
  10. What is CI CD in DevOps?
  11. Factors for Continuous Integration?
  12. What is the need for DevOps?
  13. What are the top DevOps tools?
  14. What is the difference between a Docker image and a container?
  15. Why and When to use CICD Pipeline?
  16. How CI/CD is different from DevOps?
  17. Explain Blue-Green Deployment Technique?
  18. What is Continuous Testing (CT) ?
  19. What are the Automation Testing Tools in Continuous Testing?
  20. What is Virtualization?
  21. What are 7 DevOps roles?
  22. What are the differences between continuous integration, continuous delivery, and continuous deployment?
  23. What are Microservices?
  24. What is Microservices Architecture?
  25. Who Uses Microservices?
  26. Name the three important DevOps KPIs?
  27. What is the use of SSH?
  28. What is Chef?
  29. Explain the workflow of Chef?


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.

Name the factors for Continuous Integration?

Factors for CI are as follows:
  • Maintain a code repository
  • Automate the build
  • Make the build self-testing
  • Everyone commits to the baseline every day
  • Every commit (to baseline) should be built
  • Keep the build fast
  • Test in a clone of the production environment
  • Make it easy to get the latest deliverables
  • Automate deployment

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.
CI-CD Pipeline Interview Questions

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.


What is CI CD in DevOps?

Continuous integration (CI) is a software engineering practice where members of a team integrate their work with increasing frequency and Continuous delivery (CD) is to packaging and deployment what CI is to build and test.

Factors for Continuous Integration?

  • Maintain a code repository
  • Automate the build
  • Make the build self-testing
  • Everyone commits to the baseline every day
  • Every commit (to baseline) should be built
  • Keep the build fast
  • Test in a clone of the production environment
  • Make it easy to get the latest deliverables

What is the need for DevOps?

DevOps is important because it's a software development and operations approach that enables faster development of new products and easier maintenance of existing deployments.This has many advantages like quick feedback from customers, better quality of software etc. which in turn leads to high customer satisfaction. To achieve this, companies are required to:
  • 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.

What are the top DevOps tools?

The Top DevOps Tools are as follows:
  • Git used as Version Control System tool
  • Jenkins used as Continuous Integration tool
  • Selenium used as Continuous Testing tool
  • Puppet, Chef, Ansible used as Configuration Management and Deployment tools
  • Nagios used as Continuous Monitoring tool
  • Docker used as Containerization tool

What is the difference between a Docker image and a container?

A Docker image is an immutable (unchangeable) file that contains the source code, libraries, dependencies, tools, and other files needed for an application to run.

Docker image
A Docker container is a virtualized run-time environment where users can isolate applications from the underlying system. These containers are compact, portable units in which you can start up an application quickly and easily.

container


Why and When to use CICD Pipeline?

CI enables to detect the errors at early stage or when code is being integrated. CI is a set of principles that helps developers to manage code integrations and detect early stage bugs and rectify them.
CD ensures the automation of delivering new code with minimum efforts. Some extra checks are also performed during CD process such as performance test for production environment.
Continuous deployment is most critical stage in pipeline. In this process code changes are automatically deployed to production environment where end customers or users are using the application. It is achieved by taking the benefit of continuous delivery by automating new stage (Production) in the pipeline. There is very less human interaction at this stage and it helps to reduce delay in making code changes live.

CICD Pipeline


How CI/CD is different from DevOps?

CI/CD and DevOps are two related concepts rather than different. CI/CD emphasize the automation of activities carried along the software-defined life cycle from building to delivery. DevOps refers core set of practices for quality software development and focus on culture that removes barriers between operations and engineering team.
DevOps is an agile development practice and mindset that uses agile principles to streamline software building, testing, and release. CI/CD is a DevOps tactic, which makes use of the right automated testing tools to implement agile development.


Explain Blue-Green Deployment Technique?

Blue-green deployment is a technique that reduces downtime and risk by running two identical production environments called Blue and Green. At any time, only one of the environments is live, with the live environment serving all production traffic.
This technique can eliminate downtime due to application deployment. In addition, blue-green deployment reduces risk: if something unexpected happens with your new version on Green, you can immediately roll back to the last version by switching back to Blue.


What is Continuous Testing (CT) ?

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate.It establishes a stable test environment with valid test data at all stages of development Tests should be wide to adapt to an applicaon's change, which affects funconality.

What are the Automation Testing Tools in Continuous Testing?

  • Testsigma - used for producing steps and is easy for manual testers.It supports connuous tesng and has features such as Test Data Management, Object Repository, and integraon with CI/CD tools.
  • Selenium - used for supporting mulple operang systems and browsers along with various programming languages such as Java, Groovy, Python, C#, PHP, Ruby, and Perl.
  • IBM Raonal Funconal Testeris - helps in enabling Shi-Le tesng and helps developers by idenfying bugs early in the development cycle.
  • Tricens Tosca - helps in maintaining and reducing costs, when changes are made to the models they are automatically synchronized for fotting the new model.
  • Unified Functional Testing(UFT) - helps in converting manual tests to automated tests and in reducing redundancy.

What is Virtualization?

Virtualization is the process of creating a software-based, or virtual, representation of something, such as virtual applications, servers, storage and networks. It is the single most effective way to reduce IT expenses while boosting efficiency and agility for all size businesses.
Virtualization relies on software to simulate hardware functionality and create a virtual computer system. This enables IT organizations to run more than one virtual system - and multiple operating systems and applications - on a single server. The resulting benefits include economies of scale and greater efficiency.
virtualisation


What are 7 DevOps roles?

  • The DevOps evangelist
  • The release manager
  • The automation architect
  • The software developer/tester
  • The experience assurance (XA) professional
  • The security engineer
  • The utility technology player

What are the differences between continuous integration, continuous delivery, and continuous deployment?

Continuous integration merge their changes back to the main branch as often as possible. By doing so, you avoid the integration hell that usually happens when people wait for release day to merge their changes into the release branch.
Continuous delivery is an extension of continuous integration to make sure that you can release new changes to your customers quickly in a sustainable way. This means that on top of having automated your testing, you also have automated your release process and you can deploy your application at any point of time by clicking on a button.
Continuous deployment goes one step further than continuous delivery. With this practice, every change that passes all stages of your production pipeline is released to your customers. There's no human intervention, and only a failed test will prevent a new change to be deployed to production.


What are Microservices?

Microservices is an architectural style that helps in structuring an application as a collection of services which are: Highly Maintable and Testable, Loosely Coupled, Independently Deployable, Owned by a Small Team, and hemps in enabling rapid, frequent and reliable delivery of large, complex applications and in envolving technology stack.This services helps in allowing and improving business capabilities and also helps in updating without disrupting other services in application.

Microservices


What is Microservices Architecture?

Microservices Architecture is an independent service which can be altered, updated and taken down without affecting the rest of the application.It helps in adding features which are required in reconfiguring and updating to security within the applications.This architecture is designed for solving problems and are created individually and deployed separately from one another.Microservices Architecture has the following attributes:
Application is broken into modular, loosely coupled components.
Application can be distributed across clouds and data centers.
Adding new features only requires those individual microservices to be updated.
Network services must be software-defined and run as a fabric for each microservice to connect to.

Microservices


Who uses Microservices?

Microservices are used by Social Media Pages such as Facebook and Twitter, retailers like Amazon, media provider like Netflix, ride-sharing services like Uber and Lyft, and many of the world's largest financial services companies all use microservices.
The trend has seen enterprises moving from a monolithic architecture to microservices applications, setting new standards for container technology and proving the benefits of using this architectural design.


What are DevOps' core functions?

Core development activites of DevOps are as follows:
Infrastructure-
  • Provisioning
  • Configuration
  • Orchestration
  • Packaging
  • Deployment
Software development-
  • Code building
  • Code coverage
  • Unit testing
  • Packaging
  • Deployment


Name the three important DevOps KPIs?

The 3 important DevOps KPIs are as follows:
  • Meantime Failure Recovery - the average time taken used for recovering a failure.
  • Deployment Frequency - used when the development occurs.
  • Percentage of Failed Deployment - used for counting the deployment fails.

What is the use of SSH?

Secure Shell acts as an administrative protocol which helps the users to have access and control the remote servers over the internet for using the command line and is an encrypted version of the well known Telnet that is not encrypted and not secured.It helps in ensuring the communication with the remote servers occur in an encrypted form.SSH has a mechanism for remoting user authentication and inputing communication between the client and the host, it also sends the output back to the client.

What is Chef?

Chef helps in transforming infrastructure into code, it is a tool used for writing scripts and in automating processes.There are 3 types of chefs:
Chef Server - used for storing infrastructure configuration data and also in storing the data necessary for configuring nodes and provides powerful tools which allows for configuring the data.
Chef Node - helps in running our nodes and contacting the chef server for necessary information for configuring the nodes.
Chef Workstation - helps for hosting and modifying cookbooks and all the configuration data.


Explain the workflow of Chef?

Chef helps in providing ways for defining infrastructure as code and in managing it by writing Automating Infrastructure rather than using manual processes.

Chef