হোম/Roadmap/Chapter 3.01
Phase 3 · Chapter 3.01

CI/CD Concepts

Code push করলেই automatic build, test, এবং deploy — production-এ মানুষের ভুলের জায়গা শূন্য করার শিল্প।

Hook

রাত ২টায় deploy কেন ভয় লাগে না?

একটা mature team-এ engineer git push করে ঘুমাতে যায়। Pipeline নিজে build করে, test চালায়, Docker image বানায়, staging-এ deploy করে, smoke test pass হলে production-এ যায়। এই পুরো যাদুর নাম CI/CD

Definition

CI vs CD vs CD

  • CI (Continuous Integration): প্রতি commit-এ code automatic build + test হয়। Branch merge করার আগেই bug ধরা পড়ে।
  • CD (Continuous Delivery): Test pass করা artifact deploy-ready থাকে — শুধু একটা button দরকার।
  • CD (Continuous Deployment): Button-ও লাগে না — pass করলে নিজেই production-এ যায়।
ML Pipeline Stages

একটা ML CI/CD pipeline-এ যা থাকে

yamlproduction
stages:
  - lint              # ruff, black, mypy
  - unit-test         # pytest src/
  - data-validation   # great_expectations / pandera
  - model-test        # accuracy >= baseline
  - build-image       # docker build .
  - security-scan     # trivy, snyk
  - push-registry     # ghcr.io / ecr
  - deploy-staging    # k8s apply
  - smoke-test        # curl /predict
  - deploy-prod       # manual approval
ML-Specific Challenges

Software CI আর ML CI এক না

  • Data dependency: Code ঠিক, কিন্তু training data বদলালে model behavior বদলায়।
  • Non-deterministic tests: Random seed না দিলে accuracy fluctuate করে।
  • Large artifacts: Model file 500MB+ — Git LFS / DVC / object storage দরকার।
  • GPU runners: Training stage-এ GPU runner চাই, inference test-এ CPU যথেষ্ট।
Common Mistakes

যা প্রায়ই ভুল হয়

  • Test শুধু pytest — model quality check নেই।
  • Secret .env repo-তে push — pipeline-এ secrets manager use করো।
  • Production-এ সরাসরি deploy — staging step skip কোরো না।
  • Rollback strategy নেই — bad model দ্রুত revert করার পথ আগে বানাও।
Practice

চিন্তার অনুশীলন

  1. তোমার শেষ project-এর জন্য 6-stage pipeline YAML draft করো।
  2. প্রতিটি stage fail হলে কী হবে — লিখে রাখো।
  3. Manual approval gate কোথায় বসাবে?
Takeaway

মনে রাখো

CI/CD শুধু automation না — এটা confidence। প্রতি deploy যখন boring হয়ে যায়, তখন বুঝবে pipeline ঠিকঠাক।