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 approvalML-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
.envrepo-তে push — pipeline-এ secrets manager use করো। - Production-এ সরাসরি deploy — staging step skip কোরো না।
- Rollback strategy নেই — bad model দ্রুত revert করার পথ আগে বানাও।
Practice
চিন্তার অনুশীলন
- তোমার শেষ project-এর জন্য 6-stage pipeline YAML draft করো।
- প্রতিটি stage fail হলে কী হবে — লিখে রাখো।
- Manual approval gate কোথায় বসাবে?
Takeaway
মনে রাখো
CI/CD শুধু automation না — এটা confidence। প্রতি deploy যখন boring হয়ে যায়, তখন বুঝবে pipeline ঠিকঠাক।