শব্দ | পূর্ণরূপ | মানে |
---|---|---|
CI | Continuous Integration | বারবার কোড চেঞ্জ করে টেস্ট ও বিল্ড করে অটোমেটেডভাবে |
CD | Continuous Delivery / Continuous Deployment | কোড টেস্টে পাশ করলে সেটিকে প্রোডাকশন সার্ভারে পৌঁছে দেওয়া |
🧪 CI (Continuous Integration) — কী ও কেন?
CI মানে হলো —
"যখনই কোডে পরিবর্তন হবে (যেমন Git push), তখনই Jenkins বা অন্য টুল সেই কোড অটোমেটেডভাবে টেস্ট ও বিল্ড করবে।"
🔧 এর ফলে:
- টিমে অনেক ডেভেলপার একসাথে কাজ করলেও কোনো বাগ আগেই ধরা পড়ে
- ভুল কোড প্রোডাকশনে যায় না
✅ উদাহরণ:
তুমি GitHub এ কোড push করলে Jenkins:
- কোড টানে
- npm install, mvn clean install, বা যেকোনো build command চালায়
- Unit test চালায়
- ফলাফল দেখায় (সফল/ব্যর্থ)
🚚 CD (Continuous Delivery / Deployment) — কী ও পার্থক্য?
CD-র দুইটা রূপ আছে:
1. Continuous Delivery:
- সবকিছু (Build, Test) সফল হলে কোড ডিপ্লয়ের জন্য প্রস্তুত থাকে
- কিন্তু ম্যানুয়ালি "Deploy" চাপতে হয়
2. Continuous Deployment:
- সব টেস্টে পাশ করলে স্বয়ংক্রিয়ভাবে প্রোডাকশন সার্ভারে ডিপ্লয় হয়ে যায়
- কোন ম্যানুয়াল ধাপ লাগে না
🔁 CI/CD এর সহজ জীবনচক্র
কোড লেখা → GitHub এ Push → Jenkins টেস্ট করে → (সফল হলে) Deploy করে
🎯 কেন শিখবো CI/CD?
✅ সময় বাঁচায়
✅ মান নিশ্চিত করে (Quality assurance)
✅ প্রোডাকশনে কোড পাঠানোর ঝামেলা কমায়
✅ DevOps এর মূল ভিত্তি
🛠️ Jenkins কী?
Jenkins হলো একটি ওপেন-সোর্স অটোমেশন সার্ভার, যা মূলত Continuous Integration (CI) এবং Continuous Delivery (CD) এর জন্য ব্যবহৃত হয়।
💡 Jenkins দিয়ে কী করা যায়?
- কোড বিল্ড (Build automation)
- ইউনিট টেস্ট রান করা
- সফটওয়্যার ডেপ্লয়মেন্ট (deployment)
- বিভিন্ন সিস্টেমের সাথে ইন্টিগ্রেশন (Git, Docker, Maven ইত্যাদি)
- Cron job এর মতো কাজের সময় নির্ধারণ করে চালানো
0 Comments