CI/CD Pipeline তৈরি এবং কোড ডেপ্লয়মেন্ট প্রক্রিয়া OpenShift-এ সহজ এবং কার্যকর। নিচে একটি সম্পূর্ণ CI/CD Pipeline তৈরি এবং একটি উদাহরণ অ্যাপ্লিকেশন (Node.js) ডেপ্লয় করার প্রক্রিয়া উল্লেখ করা হলো।
১. Prerequisites
- OpenShift CLI (oc): OpenShift ক্লাস্টারের সাথে কাজ করার জন্য।
- Git: সোর্স কোড রিপোজিটরির জন্য।
- Node.js: অ্যাপ্লিকেশন তৈরি করার জন্য।
- Jenkins: CI/CD Pipeline পরিচালনার জন্য (অথবা OpenShift-এর অন্তর্ভুক্ত Jenkins ব্যবহার করা যেতে পারে)।
২. Node.js অ্যাপ্লিকেশন তৈরি করা
১. প্রকল্পের ডিরেক্টরি তৈরি করুন
mkdir my-node-app
cd my-node-app
২. package.json তৈরি করুন
{
"name": "my-node-app",
"version": "1.0.0",
"description": "A simple web application",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.17.1"
}
}
৩. app.js ফাইল তৈরি করুন
const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
app.get('/', (req, res) => {
res.send('Hello, OpenShift!');
});
app.listen(port, () => {
console.log(`App running on port ${port}`);
});
৪. Dependencies ইনস্টল করুন
npm install
৩. OpenShift ক্লাস্টারে ডেপ্লয় করা
১. OpenShift ক্লাস্টারে লগইন করুন
oc login <your-openshift-cluster-url>
২. নতুন প্রকল্প তৈরি করুন
oc new-project my-node-app-project
৪. Jenkins Pipeline সেটআপ করা
১. Jenkins ইনস্টল করুন
OpenShift ক্লাস্টারে Jenkins ইনস্টল করতে পারেন:
oc new-app jenkins
২. Jenkins Pipeline তৈরি করুন
Jenkins UI তে লগইন করুন এবং একটি নতুন Pipeline প্রজেক্ট তৈরি করুন। নিচের মতো একটি Jenkinsfile তৈরি করুন:
pipeline {
agent any
environment {
DOCKER_IMAGE = 'my-node-app'
DOCKER_REGISTRY = 'my-docker-registry'
}
stages {
stage('Clone') {
steps {
echo 'Cloning repository...'
git 'https://github.com/username/my-node-app.git'
}
}
stage('Build') {
steps {
echo 'Building Docker image...'
sh 'docker build -t $DOCKER_REGISTRY/$DOCKER_IMAGE:latest .'
}
}
stage('Test') {
steps {
echo 'Running tests...'
sh 'npm install'
sh 'npm test'
}
}
stage('Deploy') {
steps {
echo 'Deploying to OpenShift...'
sh 'oc apply -f k8s/deployment.yaml'
}
}
}
post {
success {
echo 'Pipeline completed successfully!'
}
failure {
echo 'Pipeline failed.'
}
}
}
৫. Kubernetes Deployment YAML
Kubernetes-এ ডেপ্লয়মেন্ট সেটআপ করার জন্য একটি deployment.yaml ফাইল তৈরি করুন:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-node-app
spec:
replicas: 2
selector:
matchLabels:
app: my-node-app
template:
metadata:
labels:
app: my-node-app
spec:
containers:
- name: my-node-app
image: my-docker-registry/my-node-app:latest
ports:
- containerPort: 8080
৬. Pipeline চালানো
- Jenkins UI-তে লগইন করুন।
- নতুন Pipeline প্রজেক্ট তৈরি করুন এবং Jenkinsfile-এর পাথ উল্লেখ করুন।
- Pipeline চালাতে Build Now বাটনে ক্লিক করুন।
৭. Pipeline পর্যবেক্ষণ
Pipeline চলাকালীন, Jenkins UI-তে লগ দেখতে পারবেন এবং প্রতিটি স্টেজের স্ট্যাটাস চেক করতে পারবেন। যদি Pipeline সফল হয়, তাহলে আপনার Node.js অ্যাপ Kubernetes ক্লাস্টারে সফলভাবে ডেপ্লয় হবে।
৮. অ্যাপ্লিকেশন পরীক্ষা করা
ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনি URL-এ গিয়ে অ্যাপ্লিকেশনটি পরীক্ষা করতে পারেন। উদাহরণস্বরূপ:
http://<your-route>.my-node-app-project.example.com
এখানে আপনি "Hello, OpenShift!" দেখতে পাবেন।
৯. Monitor এবং Scale করা
OpenShift CLI ব্যবহার করে আপনি আপনার পডগুলো মনিটর করতে পারেন এবং প্রয়োজনে সেগুলো স্কেল করতে পারেন:
oc get pods
oc scale --replicas=3 deployment/my-node-app
উপসংহার
এই উদাহরণে, আমরা OpenShift ব্যবহার করে একটি CI/CD Pipeline তৈরি করেছি, যা Node.js অ্যাপ্লিকেশন বিল্ড, টেস্ট এবং Kubernetes ক্লাস্টারে ডেপ্লয় করতে সাহায্য করে। CI/CD Pipeline স্বয়ংক্রিয় ডেভেলপমেন্ট এবং ডেপ্লয়মেন্টের মাধ্যমে সফটওয়্যার ডেলিভারির গতিশীলতা এবং কার্যকারিতা বাড়ায়।
Read more