4 min read
Day 01: What is DevOps? ডেবঅপস কি? SDLC vs DevOps এবং CI/CD কনসেপ্ট

DevOps কি?

সহজ কথায় বলতে গেলে, DevOps হলো দুটি শব্দের সমন্বয়:

  • Dev = Development (কোডিং করা, নতুন ফিচার তৈরি করা)
  • Ops = Operations (অ্যাপ্লিকেশন ডেপ্লয় করা, মনিটর করা, ইনফ্রাস্ট্রাকচার ম্যানেজ করা)

সংজ্ঞা: DevOps হলো একটি সাংস্কৃতিক এবং প্রযুক্তিগত পদ্ধতি যা সফটওয়্যার ডেভেলপমেন্ট (Dev) এবং IT অপারেশনস (Ops) টিমকে একসাথে কাজ করতে সাহায্য করে। এর মূল লক্ষ্য হলো সফটওয়্যার ডেভেলপমেন্ট লাইফ সাইকেল (SDLC) ছোট করা এবং দ্রুত ও উচ্চমানের অ্যাপ্লিকেশন ডেলিভারি নিশ্চিত করা।

DevOps Concept


DevOps-এর মূল ধারণা (Key Concepts)

DevOps মূলত কয়েকটি স্তম্ভের ওপর দাঁড়িয়ে আছে:

  1. Continuous Integration (CI): অটোমেটিক্যালি কোড টেস্ট করা এবং মেইন ব্রাঞ্চে মার্জ করা।
  2. Continuous Delivery/Deployment (CD): অটোমেটিক্যালি কোড সার্ভারে পৌঁছে দেওয়া বা ডেপ্লয় করা।
  3. Infrastructure as Code (IaC): কোডের মাধ্যমে সার্ভার বা ইনফ্রাস্ট্রাকচার ম্যানেজ করা (যেমন: Terraform ব্যবহার করে)।
  4. Monitoring & Feedback: অ্যাপ্লিকেশন ঠিকঠাক চলছে কিনা তা সারাক্ষণ নজরে রাখা এবং দ্রুত ফিডব্যাক পাওয়া।

বাস্তব উদাহরণ (Real-World Example)

কল্পনা করুন আপনি একটি ওয়েব অ্যাপ বানাচ্ছেন:

  • ট্রেডিশনাল পদ্ধতিতে: ডেভেলপার কোড লেখে, আর অপারেশনস টিম তা সার্ভারে আপলোড করে। অনেক সময় এদের মধ্যে যোগাযোগের অভাবে ভুল হয় এবং ডেপ্লয়মেন্টে কয়েক দিন সময় লেগে যায়।
  • DevOps পদ্ধতিতে: ডেভেলপার এবং অপারেশনস টিম একসাথে কাজ করে। তারা Jenkins বা GitHub Actions-এর মতো অটোমেশন টুল ব্যবহার করে কয়েক মিনিটের মধ্যেই অ্যাপ ডেপ্লয় করে ফেলে।

SDLC বনাম DevOps

বিষয়চিরাচরিত SDLCDevOps
প্রক্রিয়াসিকোয়েন্সিয়াল (Sequential)কন্টিনিউয়াস (CI/CD Pipeline)
টিম কোলাবোরেশনDev ও Ops আলাদা থাকেDev ও Ops একসাথে কাজ করে
ডেলিভারিধীরগতি এবং ম্যানুয়ালদ্রুত এবং অটোমেটেড
ফিডব্যাকঅনেক পরে পাওয়া যায়রিয়েল-টাইম এবং কন্টিনিউয়াস
টুলসম্যানুয়াল টেস্টিং ও স্ক্রিপ্টিংCI/CD, Docker, Kubernetes

DevOps সাইকেল এবং ডায়াগ্রাম

DevOps কোনো নির্দিষ্ট গন্তব্য নয়, এটি একটি লুপ বা চক্র (Cycle):

PLAN → DEVELOP → BUILD → TEST → RELEASE → DEPLOY → OPERATE → MONITOR

এই চক্রটি চলতেই থাকে এবং প্রতিবার মনিটরিং শেষে যে ফিডব্যাক পাওয়া যায়, তা আবার প্ল্যানিং ধাপে পাঠিয়ে কোড ইমপ্রুভ করা হয়। একেই বলে Continuous Feedback


CI/CD কি?

টার্মপূর্ণরূপবর্ণনা
CIContinuous Integrationপ্রতিটি কোড চেঞ্জে অটোমেটিক বিল্ড ও টেস্টিং।
CDContinuous Delivery/Deploymentঅটোমেটিক্যালি কোড সার্ভারে ডেলিভার বা ডেপ্লয় করা।

উদাহরণ ওয়ার্কফ্লো:

  1. ডেভেলপার GitHub-এ কোড পুশ করে।
  2. GitHub Actions বা Jenkins অটোমেটিক্যালি কোড বিল্ড করে।
  3. বিল্ড পাস হলে অটোমেটিক টেষ্ট রান করে।
  4. সব ঠিক থাকলে তা প্রোডাকশন সার্ভারে ডেপ্লয় হয়ে যায়।

DevOps টুলস ওভারভিউ

স্টেজটুলসকাজ
PlanJira, Trelloপ্রজেক্ট এবং টাস্ক ট্র্যাকিং
DevelopGit, GitHubসোর্স কোড ম্যানেজমেন্ট
BuildMaven, npmঅটোমেশন বিল্ড
CI/CDJenkins, GitHub Actionsঅটোমেটেড টেস্টিং ও ডেপ্লয়মেন্ট
TestJUnit, Seleniumঅটোমেটেড টেস্টিং
DeployAnsible, Terraformইনফ্রাস্ট্রাকচার ডেপ্লয়মেন্ট
ContainerizeDockerঅ্যাপ্লিকেশন কন্টেইনারাইজ করা
OrchestrateKubernetesকন্টেইনার ম্যানেজমেন্ট
MonitorGrafana, Prometheusলগ এবং পারফরম্যান্স মনিটরিং

রিয়েল-টাইম ওয়ার্কফ্লো উদাহরণ

ধরুন আপনি একটি Node.js অ্যাপ ডেপ্লয় করবেন:

  1. ডেভেলপার: GitHub-এ কোড পুশ করলেন।
  2. Jenkins: পুশ ডিটেক্ট করে পাইপলাইন শুরু করল।
  3. Testing: Jest দিয়ে ইউনিট টেস্ট রান করল।
  4. Docker: অ্যাপের একটি ইমেজ বিল্ড করে Docker Hub-এ পুশ করল।
  5. Terraform/Ansible: সার্ভার বা কোড দিয়ে ইনফ্রাস্ট্রাকচার তৈরি করল।
  6. Kubernetes: নতুন কন্টেইনারগুলো ডেপ্লয় করে দিল।
  7. Grafana: সার্ভারের অবস্থা মনিটর করা শুরু করল।

প্রো টিপ: DevOps কোনো টুল নয়, এটি একটি সংস্কৃতি (Culture) এবং অটোমেশনের সমন্বয়। এর লক্ষ্য হলো আরও দ্রুত রিলিজ, কম বাগ এবং ব্যবহারকারীর সন্তুষ্টি।