CI/CD Flashcards
What is CI/CD?
CI/CD stands for Continuous Integration/Continuous Deployment. It’s a software development practice where code changes are automatically built, tested, and deployed to production environments.
What are the benefits of CI/CD?
Benefits include faster time to market, reduced risk of integration issues, improved code quality, increased developer productivity, and better collaboration among team members.
What is the difference between Continuous Integration (CI) and Continuous Deployment (CD)?
Continuous Integration involves automatically building and testing code changes whenever they are committed to version control. Continuous Deployment extends CI by automatically deploying code changes to production after passing tests.
What is a build pipeline in CI/CD?
A build pipeline is a series of automated steps (e.g., build, test, package) that code changes go through before being deployed to production
What are artifacts in the context of CI/CD?
Artifacts are the output of a build process, such as compiled code, executable files, or deployment packages, that are generated and stored for use in subsequent stages of the CI/CD pipeline.
What is a Canary deployment in CD?
A Canary deployment is a technique where a new version of an application is deployed to a small subset of users or servers to test its performance and reliability before rolling it out to the entire production environment.
What is Blue/Green deployment in CD?
Blue/Green deployment is a technique where two identical production environments, “Blue” and “Green,” are maintained. One environment serves live traffic while the other is updated with new code changes. Once the update is successful, traffic is switched to the updated environment.
What is a Docker image, and how is it used in CI/CD?
A Docker image is a lightweight, standalone, executable package that contains everything needed to run a piece of software, including code, runtime, libraries, and dependencies. Docker images are commonly used in CI/CD for consistent and portable deployments.
How does TeamCity integrate with version control systems like Git?
TeamCity can monitor version control systems for code changes and trigger build pipelines automatically when new commits are pushed to repositories. It supports integration with Git, SVN, Mercurial, and others.
How does TeamCity support build pipelines and dependencies between builds?
TeamCity allows users to define dependencies between build configurations, enabling the creation of build pipelines where the output of one build triggers subsequent builds. This ensures a consistent flow of changes through different stages of the CI/CD process.
What is a build agent in TeamCity, and how does it contribute to parallel builds?
A build agent is a worker node responsible for executing build steps defined in build configurations. TeamCity can distribute builds across multiple agents to run them in parallel, improving build performance and scalability.
How does TeamCity support Gradle builds, and what integration features are available?