⚙️ Week 6: CI/CD + DevOps Lifecycle

Day 2: CI/CD Concepts & Pipelines

⏱ Duration: 5 Hours

📚 Learning Objectives

  • Understand Continuous Integration (CI)
  • Understand Continuous Delivery/Deployment (CD)
  • Learn pipeline components
  • Design a basic pipeline

📖 Core Concepts

Continuous Integration (CI)

Developers frequently merge code changes into a shared repository. Each merge triggers automated builds and tests.

CI Benefits: - Early bug detection - Reduced integration problems - Faster feedback - Higher code quality CI Process: 1. Developer pushes code 2. CI server detects change 3. Build application 4. Run automated tests 5. Report results

Continuous Delivery vs Deployment

Continuous Delivery: Code → Build → Test → [Manual Approval] → Deploy (Human decides when to release) Continuous Deployment: Code → Build → Test → Deploy (Automatic release after tests pass)

Pipeline Stages

Typical Pipeline: ┌─────────┬─────────┬─────────┬─────────┬─────────┐ │ Build │ Test │ Scan │ Package │ Deploy │ ├─────────┼─────────┼─────────┼─────────┼─────────┤ │ Compile │ Unit │Security │ Docker │ Staging │ │ Install │ Integr. │ Lint │ Push │ Prod │ └─────────┴─────────┴─────────┴─────────┴─────────┘

🔬 Hands-on Lab

Design Your First Pipeline

Map out pipeline stages for a Python web application:

  • What happens in each stage?
  • What tools would you use?
  • What triggers the pipeline?