Serverless Framework একটি ওপেন সোর্স টুল যা serverless applications ডেভেলপ এবং ডিপ্লয় করতে ব্যবহৃত হয়, বিশেষ করে AWS Lambda এর সাথে। এটি ডেভেলপারদের ক্লাউড অ্যাপ্লিকেশন তৈরি, পরিচালনা এবং ডিপ্লয় করার জন্য একটি সহজ এবং দক্ষ উপায় প্রদান করে। Serverless Framework-এর সাহায্যে আপনি বিভিন্ন সার্ভিস যেমন AWS Lambda, API Gateway, DynamoDB, S3, ইত্যাদি দ্রুত এবং সহজে ম্যানেজ এবং ডিপ্লয় করতে পারেন।
এটি infrastructure as code ধারণা অনুসরণ করে, যার মাধ্যমে আপনি YAML বা JSON ফাইল ব্যবহার করে ইনফ্রাস্ট্রাকচার কনফিগারেশন লিখতে পারেন। Serverless Framework একাধিক ক্লাউড প্রোভাইডার সাপোর্ট করে, তবে সবচেয়ে বেশি ব্যবহৃত হয় AWS এর জন্য।
Serverless Framework দিয়ে Lambda ফাংশন ডেপ্লয়মেন্ট
Serverless Framework দিয়ে Lambda ফাংশন ডেপ্লয় করার জন্য প্রথমে কিছু প্রয়োজনীয় পদক্ষেপ অনুসরণ করতে হবে। চলুন দেখে নেওয়া যাক এর প্রক্রিয়া:
1. Serverless Framework ইনস্টল করা
Serverless Framework ইনস্টল করতে আপনার কম্পিউটারে Node.js এবং NPM থাকতে হবে। এরপর আপনি নিম্নলিখিত কমান্ড ব্যবহার করে Serverless Framework ইনস্টল করতে পারেন:
npm install -g serverless
2. Serverless প্রজেক্ট তৈরি করা
একটি নতুন Serverless প্রজেক্ট তৈরি করতে আপনি নিচের কমান্ড ব্যবহার করতে পারেন:
serverless create --template aws-nodejs --path my-service
cd my-service
এটি একটি নতুন প্রজেক্ট তৈরি করবে, যেখানে AWS Lambda ফাংশন, API Gateway এবং অন্যান্য কনফিগারেশন থাকবে।
3. serverless.yml কনফিগারেশন ফাইল সেটআপ করা
Serverless Framework-এ অ্যাপ্লিকেশন ডিপ্লয়মেন্টের জন্য serverless.yml ফাইলটি অত্যন্ত গুরুত্বপূর্ণ। এখানে আপনি আপনার Lambda ফাংশনের কনফিগারেশন, রিসোর্স, এবং সেবা সংক্রান্ত তথ্য নির্ধারণ করতে পারেন। একটি সাধারণ serverless.yml কনফিগারেশন হতে পারে:
service: my-service
provider:
name: aws
runtime: nodejs14.x
region: us-east-1
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
এখানে:
service: আপনার প্রজেক্টের নাম।provider: ক্লাউড প্রোভাইডার, এখানে AWS নির্বাচন করা হয়েছে।functions: এটি Lambda ফাংশনের কনফিগারেশন যেখানেhandlerফাইলের অবস্থান এবং ফাংশনের নাম উল্লেখ করা হয়।
4. Lambda ফাংশন কোড লিখা
এখন, আপনার Lambda ফাংশনের কোড handler.js ফাইলে লিখুন। উদাহরণস্বরূপ:
module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify(
{
message: 'Hello from Lambda!',
},
null,
2
),
};
};
এটি একটি সাধারণ Lambda ফাংশন যা HTTP GET রিকোয়েস্টের মাধ্যমে "Hello from Lambda!" মেসেজ রিটার্ন করবে।
5. ডিপ্লয়মেন্ট করা
Serverless Framework ব্যবহার করে Lambda ফাংশন এবং অন্যান্য রিসোর্স ডেপ্লয় করার জন্য নিচের কমান্ডটি চালান:
serverless deploy
এটি আপনার Lambda ফাংশন, API Gateway, এবং অন্যান্য রিসোর্স AWS-এ ডেপ্লয় করবে এবং ডিপ্লয়মেন্ট সম্পন্ন হলে আপনাকে একটি URL প্রদান করবে যেখান থেকে আপনি API রিকোয়েস্ট করতে পারবেন।
6. ডিপ্লয়মেন্ট পরবর্তী রেসপন্স চেক করা
ডিপ্লয়মেন্টের পরে, আপনি যে URL পাবেন তা ব্যবহার করে API তে GET রিকোয়েস্ট পাঠিয়ে ফাংশনটির রেসপন্স দেখতে পারবেন। উদাহরণস্বরূপ:
curl https://<api-id>.execute-api.<region>.amazonaws.com/hello
এটি "Hello from Lambda!" মেসেজ রিটার্ন করবে।
Serverless Framework দিয়ে Lambda ফাংশন আপডেট করা
Lambda ফাংশন আপডেট করার জন্য Serverless Framework ব্যবহার করা অত্যন্ত সহজ। শুধু আপনার handler.js ফাইলে কোড পরিবর্তন করুন এবং তারপর ডিপ্লয়মেন্ট করতে হবে। এর পরবর্তী পদক্ষেপগুলি হল:
1. কোড পরিবর্তন করা
ধরা যাক, আপনার Lambda ফাংশনের কোড পরিবর্তন করতে চান। আপনি handler.js ফাইলটি এডিট করতে পারেন, যেমন:
module.exports.hello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify(
{
message: 'Updated Hello from Lambda!',
},
null,
2
),
};
};
2. ডিপ্লয়মেন্ট আপডেট করা
আপডেটের পরে, আপনাকে ফাংশনটি আবার ডিপ্লয় করতে হবে:
serverless deploy
এই কমান্ডটি শুধুমাত্র পরিবর্তিত ফাংশন বা রিসোর্সগুলো আপডেট করবে, পুরো অ্যাপ্লিকেশন পুনরায় ডিপ্লয় না করে।
3. ডিপ্লয়মেন্ট চেক করা
আপডেটের পরে, API URL থেকে আবার রিকোয়েস্ট পাঠিয়ে নতুন আপডেটেড রেসপন্স চেক করুন:
curl https://<api-id>.execute-api.<region>.amazonaws.com/hello
এটি "Updated Hello from Lambda!" মেসেজ রিটার্ন করবে।
Serverless Framework এর সুবিধা
- অফলাইন ডেভেলপমেন্ট: Serverless Framework আপনাকে serverless-offline প্লাগইন ব্যবহার করে অফলাইন ডেভেলপমেন্টের সুবিধা দেয়।
- আইএমপ্লিমেন্টেশন সহজ: YAML কনফিগারেশন ফাইলের মাধ্যমে দ্রুত এবং সহজে ফাংশন এবং রিসোর্স ম্যানেজ করা যায়।
- অটোমেটিক ডিপ্লয়মেন্ট: সিকুয়েন্সিয়াল ডিপ্লয়মেন্ট প্রক্রিয়া সরল এবং দ্রুত করে তোলে।
- পারফরম্যান্স মনিটরিং: ডেপ্লয়মেন্টের পরে Lambda ফাংশনের কার্যক্ষমতা ট্র্যাক করতে পারবেন।
সারাংশ
Serverless Framework দিয়ে Lambda ফাংশন ডেপ্লয়মেন্ট এবং আপডেট প্রক্রিয়া অত্যন্ত সহজ এবং কার্যকর। YAML কনফিগারেশন ফাইল ব্যবহার করে Lambda ফাংশন, API Gateway, এবং অন্যান্য রিসোর্স কনফিগার করা যায়, এবং ফাংশনের কোড পরিবর্তন করার পর দ্রুত ডিপ্লয় করা যায়। Serverless Framework-এর সাহায্যে আপনি আপনার ক্লাউড অ্যাপ্লিকেশনকে আরও দ্রুত এবং নিরাপদভাবে ডেপ্লয় এবং ম্যানেজ করতে পারেন।
Read more