Rolling Update এবং Blue-Green Deployment হল দুটি জনপ্রিয় Deployment Strategy যা OpenShift এবং Kubernetes-এ অ্যাপ্লিকেশন আপডেটের জন্য ব্যবহৃত হয়। নিচে উভয় কৌশলের সংজ্ঞা, বৈশিষ্ট্য, সুবিধা এবং কিছু উদাহরণ দেওয়া হলো।
১. Rolling Update
সংজ্ঞা
Rolling Update হল একটি Deployment Strategy যেখানে পুরানো Pods ধীরে ধীরে নতুন Pods দ্বারা প্রতিস্থাপিত হয়। এটি অ্যাপ্লিকেশন আপডেট করার একটি ধারাবাহিক এবং স্বচ্ছ উপায়, যা ডাউনটাইম কমিয়ে আনে।
বৈশিষ্ট্য
- দীর্ঘস্থায়ী চলমানতা: কিছু Pods চলমান অবস্থায় থাকে, তাই ব্যবহারকারীরা পরিষেবাটি গ্রহণ অব্যাহত রাখতে পারেন।
- ক্রমাগত আপডেট: ধাপে ধাপে আপডেট করা হয়, তাই একটি সময়ে একটি নির্দিষ্ট সংখ্যক Pods বন্ধ হয়।
- নির্ধারিত প্যারামিটার:
maxUnavailableএবংmaxSurgeপ্যারামিটারগুলি কনফিগার করা যায়, যা নিয়ন্ত্রণ করে কতগুলি Pods আপডেট করা যাবে একসাথে।
সুবিধা
- কম ডাউনটাইম: ব্যবহারকারীরা সেবা ব্যবহার করতে পারে যখন আপডেট চলমান থাকে।
- সহজ রোলব্যাক: যদি নতুন সংস্করণে সমস্যা হয়, পুরানো Pods দ্রুত পুনরুদ্ধার করা যায়।
উদাহরণ YAML কনফিগারেশন
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1 # সর্বাধিক 1টি Pod অনুপলব্ধ থাকতে পারে
maxSurge: 1 # সর্বাধিক 1টি নতুন Pod একযোগে চালু হবে
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example-container
image: nginx:latest
ports:
- containerPort: 80
২. Blue-Green Deployment
সংজ্ঞা
Blue-Green Deployment হল একটি Deployment Strategy যেখানে দুটি পরিবেশ (Blue এবং Green) তৈরি করা হয়। একটি পরিবেশ বর্তমানে চলমান থাকে, যখন অপরটি নতুন সংস্করণের জন্য প্রস্তুত করা হয়। পরীক্ষার পর, ট্রাফিক নতুন পরিবেশে স্থানান্তর করা হয়।
বৈশিষ্ট্য
- দুটি পৃথক পরিবেশ: Blue পরিবেশ (পুরানো সংস্করণ) এবং Green পরিবেশ (নতুন সংস্করণ) আলাদা থাকে।
- পরীক্ষা করার সুযোগ: নতুন সংস্করণ চালু করার আগে Green পরিবেশে পরীক্ষা করা যায়।
- নির্দেশনার ট্রাফিক: পরীক্ষা সফল হলে, সমস্ত ট্রাফিক Green পরিবেশে সরিয়ে নেওয়া হয়।
সুবিধা
- শূন্য ডাউনটাইম: ব্যবহারকারীরা সেবার মধ্যে কোনও বিঘ্নের সম্মুখীন হয় না।
- সহজ রোলব্যাক: যদি নতুন সংস্করণে সমস্যা হয়, দ্রুত পুরানো Blue পরিবেশে ফিরে যাওয়া যায়।
উদাহরণ YAML কনফিগারেশন
apiVersion: apps/v1
kind: Deployment
metadata:
name: blue-deployment
spec:
replicas: 3
selector:
matchLabels:
app: example-blue
template:
metadata:
labels:
app: example-blue
spec:
containers:
- name: example-container
image: nginx:1.19 # পুরানো সংস্করণ
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: green-deployment
spec:
replicas: 3
selector:
matchLabels:
app: example-green
template:
metadata:
labels:
app: example-green
spec:
containers:
- name: example-container
image: nginx:latest # নতুন সংস্করণ
ports:
- containerPort: 80
সারসংক্ষেপ
Rolling Update এবং Blue-Green Deployment উভয়ই অ্যাপ্লিকেশন আপডেটের জন্য কার্যকর পদ্ধতি, তবে তাদের মধ্যে কিছু মূল পার্থক্য রয়েছে:
- Rolling Update: ধাপে ধাপে আপডেট করে, পুরানো Pods ক্রমাগত চলমান থাকে এবং নতুন Pods ধীরে ধীরে যুক্ত হয়।
- Blue-Green Deployment: দুটি আলাদা পরিবেশ তৈরি করে, যেখানে নতুন সংস্করণ সম্পূর্ণরূপে পরীক্ষার পরে ট্রাফিক পুনরায় নির্দেশ করা হয়।
প্রত্যেক কৌশলের নিজস্ব সুবিধা এবং ব্যবহার পরিস্থিতি রয়েছে, যা একটি সংস্থার প্রয়োজন অনুযায়ী নির্বাচন করা যেতে পারে।
Read more