1. ভূমিকা
এই পোস্টে, আমরা দেখতে যাচ্ছি কিভাবে ক্লাউড রান এবং মঙ্গোডিবি সম্পূর্ণরূপে সার্ভারহীন MEAN স্ট্যাক অ্যাপ্লিকেশন বিকাশের অভিজ্ঞতা সক্ষম করতে একত্রিত হয়। আমরা শিখব কিভাবে ক্লাউড রান এবং মঙ্গোডিবি অ্যাটলাস , মঙ্গোডিবি-এর মাল্টি-ক্লাউড অ্যাপ্লিকেশন ডেটা প্ল্যাটফর্মের সাথে একটি সার্ভারহীন MEAN অ্যাপ্লিকেশন তৈরি করা যায়।
ক্লাউড রান কি?
ক্লাউড রান আপনাকে সম্পূর্ণরূপে পরিচালিত প্ল্যাটফর্মে যেকোন ভাষায় (Go, Python, Java, Node.js, .NET, এবং Ruby সহ) লেখা স্কেলেবল কন্টেইনারাইজড অ্যাপ তৈরি এবং স্থাপন করতে সক্ষম করে। ক্লাউড রান আমাদের সক্ষম করে লিগের বাইরে দাঁড়িয়েছে:
- একাধিক স্টেটলেস পাত্রে প্যাকেজ কোড যা অনুরোধ-সচেতন এবং এটি HTTP অনুরোধের মাধ্যমে আহ্বান করে
- শুধুমাত্র আপনার ব্যবহার করা সঠিক সম্পদের জন্য চার্জ করা হবে
- যেকোনো প্রোগ্রামিং ভাষা বা আপনার পছন্দের কোনো অপারেটিং সিস্টেম লাইব্রেরি বা কোনো বাইনারি সমর্থন করুন
সম্পূর্ণ প্রসঙ্গে আরও বৈশিষ্ট্যের জন্য এই লিঙ্কটি দেখুন।
MongoDB Atlas সহ সার্ভারহীন ডাটাবেস
মঙ্গোডিবি সার্ভারহীন দৃষ্টান্ত চালু করেছে, এই সমস্যা সমাধানের জন্য অ্যাটলাসে একটি নতুন সম্পূর্ণরূপে পরিচালিত, সার্ভারহীন ডাটাবেস স্থাপনা। সার্ভারবিহীন দৃষ্টান্তগুলির সাথে আপনাকে কখনই পরিকাঠামো নিয়ে ভাবতে হবে না — কেবল আপনার ডাটাবেস স্থাপন করুন এবং এটি চাহিদার উপর ভিত্তি করে নির্বিঘ্নে উপরে এবং নিচের দিকে স্কেল করবে — কোন হ্যান্ড-অন ম্যানেজমেন্টের প্রয়োজন নেই। এবং সর্বোত্তম অংশ, আপনি যে অপারেশনগুলি চালান তার জন্য আপনাকে চার্জ করা হবে। আমাদের আর্কিটেকচারকে সত্যিকারের সার্ভারহীন করতে, আমরা ক্লাউড রান এবং মঙ্গোডিবি অ্যাটলাস ক্ষমতাকে একত্রিত করব।
মানে স্ট্যাক
MEAN স্ট্যাক হল জাভাস্ক্রিপ্ট এবং JSON এর সাথে সম্পূর্ণ-স্ট্যাক ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য একটি প্রযুক্তি স্ট্যাক। MEAN স্ট্যাক চারটি প্রধান উপাদান নিয়ে গঠিত - MongoDB, Express, Angular, এবং Node.js।
- MongoDB ডেটা স্টোরেজের জন্য দায়ী।
- Express.js হল API তৈরির জন্য একটি Node.js ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক।
- Angular হল একটি ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট প্ল্যাটফর্ম।
- Node.js একটি সার্ভার-সাইড জাভাস্ক্রিপ্ট রানটাইম পরিবেশ। সার্ভার ডাটাবেসের সাথে সংযোগ করতে এবং ডেটা পুনরুদ্ধার ও সংরক্ষণ করতে MongoDB Node.js ড্রাইভার ব্যবহার করে।
আপনি কি নির্মাণ করবেন
আপনি MongoDB, Express JS, Angular JS এবং Node JS-এ একটি সম্পূর্ণ স্ট্যাক কর্মচারী-চাকরীর ভূমিকার আবেদন লিখবেন। এতে রয়েছে:
- নোড জেএস এবং এক্সপ্রেস জেএস-এ একটি সার্ভার অ্যাপ্লিকেশন, কন্টেইনারাইজড
- AngularJS-এ একটি ক্লায়েন্ট অ্যাপ্লিকেশন বিল্ড, কনটেইনারাইজড
- উভয় অ্যাপ্লিকেশন ক্লাউড রানে স্থাপন করা হয়
- সার্ভার অ্যাপ MongoDB NodeJS ড্রাইভার ব্যবহার করে সার্ভারলেস MongoDB উদাহরণের সাথে সংযোগ করে
- সার্ভার API ডাটাবেসের সাথে রিড-রাইট ইন্টারঅ্যাকশন বহন করে
- ক্লায়েন্ট অ্যাপ্লিকেশন হল কর্মচারী-চাকরি ভূমিকা অ্যাপ্লিকেশনের জন্য ব্যবহারকারী ইন্টারফেস
আপনি কি শিখবেন
- কিভাবে একটি সার্ভারহীন MongoDB ইনস্ট্যান্স তৈরি করবেন
- কিভাবে একটি ক্লাউড রান প্রকল্প সেট আপ করবেন
- গুগল ক্লাউড রানে কীভাবে ওয়েব অ্যাপ্লিকেশনগুলি স্থাপন করবেন
- কিভাবে একটি MEAN স্ট্যাক অ্যাপ্লিকেশন তৈরি এবং স্থাপন করবেন
2. প্রয়োজনীয়তা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্প যাতে আপনার ক্লাউড রান এবং মঙ্গোডিবি অ্যাটলাস উদাহরণ রয়েছে
- পরবর্তী বিভাগে MEAN স্ট্যাক অ্যাপ্লিকেশন তৈরির পদক্ষেপের তালিকা রয়েছে
3. MongoDB সার্ভারলেস ইনস্ট্যান্স এবং ডাটাবেস তৈরি করুন
- শুরু করতে, Google ক্লাউডে MongoDB Atlas দিয়ে শুরু করুন
- একবার আপনি সাইন আপ করলে, একটি নতুন সার্ভারহীন উদাহরণ তৈরি করতে "একটি ডেটাবেস তৈরি করুন" বোতামে ক্লিক করুন৷ নিম্নলিখিত কনফিগারেশন নির্বাচন করুন:
- একবার আপনার সার্ভারহীন দৃষ্টান্তের ব্যবস্থা করা হলে, আপনার এটি চালু এবং চলমান দেখতে হবে
- একটি সংযোগ আইপি ঠিকানা এবং একটি ডাটাবেস ব্যবহারকারী যোগ করতে "সংযোগ" বোতামে ক্লিক করুন৷
- এই কোডল্যাবের জন্য, আমরা "যেকোন জায়গা থেকে অ্যাক্সেসের অনুমতি দিন" সেটিং ব্যবহার করব। MongoDB Atlas নিরাপত্তা এবং অ্যাক্সেস বৈশিষ্ট্যের একটি সেট সহ আসে। আপনি নিরাপত্তা বৈশিষ্ট্য ডকুমেন্টেশন নিবন্ধে তাদের সম্পর্কে আরো জানতে পারেন
- ডাটাবেসের ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য আপনার পছন্দের শংসাপত্র ব্যবহার করুন। এই পদক্ষেপগুলি সম্পূর্ণ হয়ে গেলে, আপনাকে নিম্নলিখিতগুলি দেখতে হবে:
- "একটি সংযোগ পদ্ধতি চয়ন করুন" বোতামে ক্লিক করে এবং তারপর "আপনার অ্যাপ্লিকেশন সংযুক্ত করুন" নির্বাচন করে এগিয়ে যান
- আপনি যে সংযোগ স্ট্রিংটি দেখেন সেটি অনুলিপি করুন এবং আপনার নিজের পাসওয়ার্ডটি প্রতিস্থাপন করুন। আমরা নিম্নলিখিত বিভাগে আমাদের ডাটাবেসের সাথে সংযোগ করতে সেই স্ট্রিংটি ব্যবহার করব
4. একটি ক্লাউড রান প্রকল্প সেট আপ করুন৷
- প্রথমে, ক্লাউড কনসোলে সাইন ইন করুন, একটি নতুন প্রকল্প তৈরি করুন, বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷
- আপনার তৈরি করা প্রকল্পের জন্য প্রকল্প আইডি মনে রাখবেন
- নীচে একটি চিত্র রয়েছে যা নতুন প্রকল্প পৃষ্ঠা দেখায়, যেখানে আপনি এটি তৈরি করার সাথে সাথে আপনার প্রকল্প আইডি দেখতে পাবেন
- তারপরে, ক্লাউড শেল থেকে ক্লাউড রান API সক্ষম করুন:
- ক্লাউড কনসোল থেকে ক্লাউড শেল সক্রিয় করুন। শুধু সক্রিয় ক্লাউড শেল ক্লিক করুন
- একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রকল্পটি ইতিমধ্যেই আপনার প্রকল্প আইডিতে সেট করা আছে৷ যদি, কোন কারণে, প্রকল্পটি সেট করা না হয়, কেবল নিম্নলিখিত কমান্ডটি জারি করুন:
gcloud config set project PROJECT_ID
- নিচের কমান্ডটি ব্যবহার করুন:
gcloud services enable run.googleapis.com
- আমরা কোড রেফারেন্সের জন্য ক্লাউড শেল এবং ক্লাউড শেল এডিটর ব্যবহার করব। ক্লাউড শেল এডিটর অ্যাক্সেস করতে, ক্লাউড শেল টার্মিনাল থেকে ওপেন এডিটর ক্লিক করুন:
5. ক্লোন মানে স্ট্যাক প্রকল্প
- আমরা একটি কর্মচারী ব্যবস্থাপনা ওয়েব অ্যাপ্লিকেশন স্থাপন করব। REST API এক্সপ্রেস এবং Node.js দিয়ে নির্মিত; কৌণিক সহ ওয়েব ইন্টারফেস; এবং ডেটা মঙ্গোডিবি অ্যাটলাস ইনস্ট্যান্সে সংরক্ষণ করা হবে যা আমরা আগে তৈরি করেছি
- ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি কার্যকর করে প্রকল্প সংগ্রহস্থল ক্লোন করুন:
git clone https://github.com/mongodb-developer/mean-stack-example.git
6. Express এবং Node.js REST API স্থাপন করুন
ডকার কনফিগারেশন ফাইল
- প্রথমে, আমরা Express REST API-এর জন্য একটি ক্লাউড রান পরিষেবা স্থাপন করব। আমাদের স্থাপনার জন্য সবচেয়ে গুরুত্বপূর্ণ ফাইল হল ডকার কনফিগারেশন ফাইল। এক নজরে দেখে নেওয়া যাক:
mean-stack-example/server/Dockerfile
# Use the official lightweight Node.js 12 image.
# https://hub.docker.com/_/node
FROM node:17-slim
WORKDIR /usr/app
COPY ./ /usr/app
# Install dependencies and build the project.
RUN npm install
RUN npm run build
# Run the web service on container startup.
CMD ["node", "dist/server.js"]
- কনফিগারেশন Node.js সেট আপ করে এবং প্রকল্পটি কপি করে এবং তৈরি করে। যখন ধারকটি শুরু হয়, নীচের কমান্ডটি পরিষেবাটি শুরু করে
node dist/server.js
- একটি নতুন ক্লাউড রান স্থাপনা শুরু করতে, বাম সাইডবারে ক্লাউড রান আইকনে ক্লিক করুন:
- তারপরে, ডিপ্লয় টু ক্লাউড রান আইকনে ক্লিক করুন:
- নিম্নরূপ পরিষেবা কনফিগারেশন পূরণ করুন:
- পরিষেবার নাম: node-express-api
- স্থাপনার প্ল্যাটফর্ম: ক্লাউড রান (সম্পূর্ণভাবে পরিচালিত)
- অঞ্চল: বিলম্ব কমাতে আপনার ডাটাবেস অঞ্চলের কাছাকাছি একটি অঞ্চল নির্বাচন করুন
- প্রমাণীকরণ: অননুমোদিত আহ্বানের অনুমতি দিন
- রিভিশন সেটিংসের অধীনে, সেগুলি প্রসারিত করতে অ্যাডভান্সড সেটিংস দেখাতে ক্লিক করুন:
- কন্টেইনার পোর্ট: 5200
- পরিবেশ পরিবর্তনশীল. নিম্নলিখিত কী-মান জোড়া যোগ করুন এবং নিশ্চিত করুন যে আপনি আপনার নিজের মঙ্গোডিবি অ্যাটলাস স্থাপনার জন্য সংযোগ স্ট্রিং যুক্ত করেছেন:
ATLAS_URI:mongodb+srv:/<username>:<password>@sandbox.pv0l7.mongodb.net/meanStackExample?retryWrites=true&w=majority
- বিল্ড পরিবেশের জন্য, ক্লাউড বিল্ড নির্বাচন করুন
- অবশেষে, বিল্ড সেটিংস বিভাগে, নির্বাচন করুন:
- নির্মাতা: ডকার
- ডকার: গড়-স্ট্যাক-উদাহরণ/সার্ভার/ডকারফাইল
- ডিপ্লয় বোতামে ক্লিক করুন এবং তারপর আপনার প্রথম ক্লাউড রান পরিষেবার স্থাপনা অনুসরণ করতে বিস্তারিত লগ দেখান!
- বিল্ড শেষ হওয়ার পরে, আপনি স্থাপন করা পরিষেবার URL দেখতে হবে:
- URL টি খুলুন এবং শেষে '/employees' যোগ করুন
- আপনার একটি খালি অ্যারে দেখতে হবে কারণ বর্তমানে, ডাটাবেসে কোনো নথি নেই।
ইউজার ইন্টারফেস স্থাপন করা যাক যাতে আমরা কিছু যোগ করতে পারি!
7. কৌণিক ওয়েব অ্যাপ্লিকেশন স্থাপন করুন
আমাদের কৌণিক অ্যাপ্লিকেশনটি ক্লায়েন্ট ডিরেক্টরিতে রয়েছে। এটি স্থাপন করতে, আমরা Nginx সার্ভার এবং ডকার ব্যবহার করব। শুধু একটি চিন্তা, আপনার কৌণিক অ্যাপ্লিকেশন স্থাপনার জন্য Firebase হোস্টিং ব্যবহার করার একটি বিকল্পও রয়েছে কারণ আপনি সরাসরি একটি CDN (কন্টেন্ট ডেলিভারি নেটওয়ার্ক) এ আপনার সামগ্রী পরিবেশন করতে পারেন৷
কনফিগারেশন ফাইল
আসুন কনফিগারেশন ফাইলগুলি একবার দেখে নেওয়া যাক:
mean-stack-example/client/nginx.conf
events{}
http {
include /etc/nginx/mime.types;
server {
listen 8080;
server_name 0.0.0.0;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
}
- Nginx কনফিগারেশনে, আমরা ডিফল্ট পোর্ট-8080, এবং শুরুর ফাইল- index.html নির্দিষ্ট করি।
mean-stack-example/client/Dockerfile
FROM node:17-slim AS build
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
# Install dependencies and copy them to the container
RUN npm install
COPY . .
# Build the Angular application for production
RUN npm run build --prod
# Configure the nginx web server
FROM nginx:1.17.1-alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=build /usr/src/app/dist/client /usr/share/nginx/html
# Run the web service on container startup.
CMD ["nginx", "-g", "daemon off;"]
- ডকার কনফিগারেশনে, আমরা Node.js নির্ভরতা ইনস্টল করি এবং প্রকল্পটি তৈরি করি। তারপরে, আমরা কন্টেইনারে নির্মিত ফাইলগুলি অনুলিপি করি, কনফিগার করি এবং Nginx পরিষেবা শুরু করি
- অবশেষে, আমাদের REST API-তে URL কনফিগার করতে হবে যাতে আমাদের ক্লায়েন্ট অ্যাপ্লিকেশন এটিতে অনুরোধ পাঠাতে পারে। যেহেতু আমরা প্রোজেক্টে শুধুমাত্র একটি ফাইলে ইউআরএল ব্যবহার করছি, তাই আমরা ইউআরএলটিকে হার্ডকোড করব। বিকল্পভাবে, আপনি উইন্ডো অবজেক্টের সাথে এনভায়রনমেন্ট ভেরিয়েবল সংযুক্ত করতে পারেন এবং সেখান থেকে এটি অ্যাক্সেস করতে পারেন।
mean-stack-example/client/src/app/employee.service.ts
...
@Injectable({
providedIn: 'root'
})
export class EmployeeService {
// Replace with the URL of your REST API
private url = 'https://node-express-api-vsktparjta-uc.a.run.app';
...
- আমরা ক্লাউড রানে স্থাপন করার জন্য প্রস্তুত! নিম্নলিখিত কনফিগারেশন সেটিংস সহ একটি নতুন স্থাপনা শুরু করুন:
- Service Settings: Create a service
- পরিষেবার নাম: কৌণিক-ওয়েব-অ্যাপ
- স্থাপনার প্ল্যাটফর্ম: ক্লাউড রান (সম্পূর্ণভাবে পরিচালিত)
- প্রমাণীকরণ: অননুমোদিত আহ্বানের অনুমতি দিন
- বিল্ড পরিবেশের জন্য, ক্লাউড বিল্ড নির্বাচন করুন
- অবশেষে, বিল্ড সেটিংস বিভাগে, নির্বাচন করুন:
- নির্মাতা: ডকার
- ডকার: গড়-স্ট্যাক-উদাহরণ/ক্লায়েন্ট/ডকারফাইল
- আবার সেই ডিপ্লয় বোতামটি ক্লিক করুন এবং লগগুলি দেখুন যেহেতু আপনার অ্যাপটি ক্লাউডে পাঠানো হয়েছে! স্থাপনা সম্পূর্ণ হলে, আপনার ক্লায়েন্ট অ্যাপের URL দেখতে হবে
- URL খুলুন, এবং আপনার অ্যাপ্লিকেশনের সাথে খেলুন!
8. পরিষ্কার করুন
এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন৷
MongoDB দৃষ্টান্ত বন্ধ করুন
- MongoDB ইনস্ট্যান্স ক্লাস্টারে যান
- ক্লাস্টার নির্বাচন করুন, আপনার তৈরি করা উদাহরণ
- ক্লাস্টার নামের পাশে উপবৃত্তগুলিতে ক্লিক করুন এবং তালিকা থেকে শেষ নির্বাচন করুন
ক্লাউড রান স্থাপনাগুলি মুছুন
- গুগল ক্লাউড কনসোলে ক্লাউড রান পৃষ্ঠায় যান
- আপনি যে ক্লাউড রান পরিষেবাটি মুছতে চান তা নির্বাচন করুন
- কনসোলের উপরে ডিলিট আইকনে ক্লিক করুন
9. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে ক্লাউড রানে MEAN স্ট্যাক ওয়েব অ্যাপ্লিকেশন তৈরি করেছেন!