CI/CD Flashcards

1
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the key goals and benefits of implementing Continuous Integration (CI), Continuous Deployment (CD), and Continuous Delivery (CD)?

A
  • CI: frequently integrate code changes into a shared repository. Promoteas early detection of integration issues and ensures a consistent codebase
  • CD: extends CI by automating the deployment process, enabling rapid and reliable releases
  • Continuous Delivery: ensures software is always in a deployable state
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do CI/CD practices contribute to improving software quality, development speed, and collaboration among teams?

A
  1. reducing manual errors
  2. improving testing
  3. encouraging smaller, manageable code changes
  4. faster development cycles and automated processes lead to quicker feature delivery
  5. collaborative practices foster communication and shared ownership
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Can you describe a specific example of how you’ve set up a robust CI/CD pipeline for a complex application?

A
  1. CI/CD pipeline comprised stages for linting, unit testing, integration testing, and artifact generation.
  2. GitHub for version control
  3. Docker containers for consistency across environments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How did you ensure a pipeline is reliable, efficient, and adaptable to changes in the development process?

A
  • ensured reliability by employing automated testing suites at each stage
  • used test-driven development practices
  • ensured adaptability by using infrastructure as code
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explain how you’ve integrated different types of tests (unit, integration, regression, etc.) into a CI/CD pipeline?

A
  • Unit tests validated individual components’ functionality
  • integration tests verified interactions between services
  • used parallel testing to run tests concurrently
  • prioritized smoke tests to quickly catch critical issues
  • employed feature toggles to enable/disable specific functionality during testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How would you approach managing database schema changes and migrations as part of your CD pipeline?

A
  • use database migration tools to manage schema changes and migrations as code
  • incorporate schema change scripts into our deployment process to ensure they are applied automatically with new releases
  • minimise downtime by using blue-green deployments or canary releases
  • maintain backward compatibility to ensure uninterrupted service
  • implement database monitoring to promptly address performance issues and regressions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How would you implement strategies like canary deployments or feature toggles to ensure a smooth and risk-controlled release process?

A
  1. Canary deployments involve releasing changes to a subset of users to validate their impact before full deployment
  2. Route a small percentage of user traffic to the new version while monitoring performance and errors
  3. Feature toggles allow enabling/disabling features dynamically
  4. Use these toggles to introduce new features gradually and manage risk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly