সর্বনিম্ন রক্ষণাবেক্ষণ এবং আর্থিক খরচের সাথে শেষ থেকে শেষ পর্যন্ত একটি অ্যাপ্লিকেশন তৈরি করতে চান এমন বিকাশকারীদের জন্য সার্ভারলেস দুর্দান্ত। সার্ভারহীন ফাংশন আপনাকে ব্যাকএন্ড ইনফ্রা বজায় না রেখে আপনার নিজস্ব কোড চালাতে সক্ষম করে। কিন্তু তারা নকশা দ্বারা রাষ্ট্রহীন তাই আপনার একটি বহিরাগত ডেটা স্টোর প্রয়োজন। তাই পরবর্তী প্রশ্ন হল কোন ডাটাবেস সার্ভারহীনের জন্য উপযুক্ত? ভাল খবর হল ডাটাবেস বিক্রেতারা সার্ভারহীন প্রবণতা দেখতে পান এবং তারা হয় সার্ভারহীন অফার চালু করছে বা তাদের পণ্য মানিয়ে নেওয়ার চেষ্টা করছে। এই নিবন্ধে, আমি প্রথমে এমন জিনিসগুলির তালিকা করব যা সার্ভারহীনের জন্য একটি ডাটাবেসকে দুর্দান্ত করে তোলে। তারপর আমি সেই ডাটাবেসের তালিকা করব যা আমি ব্যক্তিগতভাবে সার্ভারলেস এর জন্য দুর্দান্ত ডাটাবেস হতে প্রার্থী বলে মনে করি৷
সার্ভারলেস এর জন্য কি একটি ডাটাবেসকে দুর্দান্ত করে তোলে?
- ব্যবহারের সহজলভ্যতা: পরবর্তী প্রজন্মের বিকাশকারীরা প্রযুক্তিগুলি শিখতে দিন এবং সপ্তাহ ব্যয় করতে চান না। তারা ডক্সের পৃষ্ঠাগুলি পড়ার পরিবর্তে ইউটিউব ভিডিও দেখে শিখতে চায়। তাই সার্ভারহীনের জন্য একটি ডাটাবেস সহজ এবং স্বজ্ঞাত হওয়া উচিত।
- সার্ভারহীন মূল্য: মূল্য শূন্য স্কেল করা উচিত. কেন আমি এমন কিছুর জন্য অর্থ প্রদান করব যা আমি ব্যবহার করি না। প্রতি-ব্যান্ডউইথ বা প্রতি-অনুরোধের উপর ভিত্তি করে মূল্য নির্ধারণের মডেলগুলি সার্ভারহীন কারণ তারা আপনার সঠিক ব্যবহারের সাথে সম্পর্কযুক্ত। ব্যক্তিগতভাবে আমি প্রতি-অনুরোধ পছন্দ করি কারণ ব্যান্ডউইথের চেয়ে অনুমান করা সবসময় সহজ।
- ডেভেলপার বান্ধব মূল্য: দাম ফাঁদ ছাড়া সহজ হতে হবে. কিছু মূল্যের পৃষ্ঠাগুলি এতটাই জটিল যে বিশদ ব্যাখ্যা করার জন্য অতিরিক্ত নিবন্ধ এবং ব্লগ পোস্ট রয়েছে। কিছু বিক্রেতা জটিল ক্যালকুলেটর আছে. দুর্ভাগ্যবশত বেশিরভাগ বিক্রেতারা তাদের ঝুঁকি কমানোর জন্য একটি জটিল মূল্য পছন্দ করে। তাই চালান দেখার আগে আপনি কত টাকা দেবেন তা আন্দাজ করা কঠিন।
- সার্ভারহীন সংযোগ: সার্ভারহীন ফাংশন সেকেন্ডে শত শত এমনকি হাজার হাজার পর্যন্ত স্কেল করতে পারে। যদি আপনার ডাটাবেসের অবিরাম সংযোগের প্রয়োজন হয় তবে আপনি সহজেই আপনার ডাটাবেসের সংযোগ সীমাতে আঘাত করতে পারেন। এইচটিটিপি ভিত্তিক সংযোগগুলিতে তেমন সমস্যা নেই কারণ সেগুলি বেশি হালকা এবং সাধারণত এই ধরনের সীমাবদ্ধতা থাকে না৷
- কম লেটেন্সি: সার্ভারহীন ফাংশনে অতিরিক্ত লেটেন্সি খরচ হয়। কিন্তু আসল খরচ হল অসুখী ব্যবহারকারীরা আপনার ওয়েবসাইটে অলসভাবে অপেক্ষা করছে।
- পোর্টেবিলিটি: আপনি যদি অন্য ক্লাউড বিক্রেতার কাছে যেতে চান তবে আপনাকে কি ডেটা স্তরটি পুনরায় লিখতে হবে। অথবা আপনি কি দূরবর্তী ডাটাবেসের সাথে সংযোগ না করে আপনার ল্যাপটপে আপনার অ্যাপ্লিকেশন পরীক্ষা করতে পারবেন৷
- সঙ্গতি: সাধারণত, ধারাবাহিকতা এবং কর্মক্ষমতা মধ্যে একটি লেনদেন আছে. ডেটাবেসগুলি ধারাবাহিকতা এবং কর্মক্ষমতা বর্ণালীতে বিভিন্ন স্থানে রয়েছে। একটি ভাল ডাটাবেসের সুস্পষ্টভাবে তার সামঞ্জস্যের গ্যারান্টিকে সংজ্ঞায়িত করা উচিত যাতে ব্যবহারকারী সম্ভাব্য সমস্যা এবং ঝুঁকি সম্পর্কে সচেতন হতে পারে
- মাপযোগ্যতা: যখন আপনার অ্যাপ্লিকেশন উচ্চ থ্রুপুট পেতে শুরু করে তখন ডাটাবেসটি রাখা উচিত। আদর্শভাবে, স্কেলিং স্বয়ংক্রিয় বা ক্লাউড প্রদানকারী দ্বারা পরিচালিত হওয়া উচিত। এটা নিয়ে আপনার চিন্তা করা উচিত নয়।
- এজ ফ্রেন্ডলি: ক্লাউডফ্লেয়ার ওয়ার্কার্স এবং ফাস্টি কম্পিউট হল দুর্দান্ত প্রযুক্তি যা আপনাকে আপনার ব্যবহারকারীর সবচেয়ে কাছের প্রান্তে আপনার সার্ভারহীন ফাংশন চালাতে সক্ষম করে। সেগুলির জন্য REST ভিত্তিক সংযোগের প্রয়োজন হয় তবে লেটেন্সি কমাতে বিশ্বব্যাপী প্রতিলিপিকৃত ডাটাবেসও প্রয়োজন৷
- গ্লোবালিটি: আপনার অ্যাপ্লিকেশনটি বিশ্বব্যাপী জনপ্রিয় হওয়ার সাথে সাথে আপনার একটি ডাটাবেস প্রয়োজন যা সারা বিশ্বে ভাল কার্যকারিতা প্রদান করে। মাল্টি অঞ্চল প্রতিলিপি এটি সক্ষম করার মূল বৈশিষ্ট্য। কিন্তু সাবধান, মূল্য চেক করুন. এই বৈশিষ্ট্যটি ব্যয়বহুল হতে পারে৷
সার্ভারলেস জন্য সেরা ডাটাবেস?
এই বিভাগে, আমি নিম্নলিখিত ডেটাবেসগুলি চেষ্টা করে আমার ইমপ্রেশন এবং নোটগুলি ভাগ করব৷ এগুলি বৈজ্ঞানিক বিশ্লেষণের উপর ভিত্তি করে নয় তবে আমি আশা করি যে কোনও বাস্তব তুলনা বিশ্লেষণ করার আগে আপনাকে একটি ধারণা দিতে হবে৷
মঙ্গোডিবি (অ্যাটলাস)
-
ব্যবহারের সহজতা:MongoDB হল সবচেয়ে জনপ্রিয় NoSQL ডাটাবেস এবং ডকুমেন্ট স্টোর। JSON ভিত্তিক ডেটা মডেলের জন্য এর API খুবই সহজ এবং স্বজ্ঞাত।
-
পোর্টেবিলিটি:প্রায় সব ক্লাউড প্রদানকারীর কাছে MongoDB API সহ ডাটাবেস পণ্য রয়েছে এবং সেইসাথে আপনি নিজেই MongoDB চালাতে পারেন। তাই পোর্টেবিলিটির কোন সমস্যা নেই।
-
MongoDB Atlas সম্প্রতি তার সার্ভারলেস ডাটাবেস টাইপ ঘোষণা করেছে। আমার ব্যক্তিগত ধারণা হল যে এটি একটি সার্ভারহীন মূল্যের মডেলের অধীনে হোস্ট করা মঙ্গোডিবি উদাহরণের মতো ছিল। এখানে দেখা গেছে Node.js SDK সহ সার্ভারলেস ডাটাবেসের জন্য অনেক বৈশিষ্ট্য সমর্থিত নয়।
-
সার্ভারহীন সংযোগ:MongoDB Atlas আপনাকে HTTP ভিত্তিক (যেমন REST) API প্রদান করে না। আপনি সহজেই সংযোগ সীমা আঘাত করতে পারেন. এই কারণেই তারা এই https://docs.atlas.mongodb.com/best-practices-connecting-from-aws-lambda/
এড়াতে নিবন্ধ প্রকাশ করে** _(আপডেট) MongoDB Atlas একটি HTTP ভিত্তিক ডেটা API চালু করেছে
ক্যাসান্ড্রা (ডেটাস্ট্যাক্স অ্যাস্ট্রা)
- ডেটাস্ট্যাক্স অ্যাস্ট্রা স্থানীয় ক্যাসান্দ্রা ড্রাইভার ছাড়াও REST এবং GraphQL API প্রদান করে।
- ব্যবহারের সহজলভ্যতা:আমার জন্য MongoDB এবং Redis এর তুলনায় Cassandra শেখা কঠিন ছিল। যাইহোক, Datastax টিম কনসোলের সাথে একটি ভাল কাজ করেছে, এটি খুব স্বজ্ঞাত ছিল। কিন্তু তবুও আমার মনে আছে আমি REST API এর বিভিন্ন সংস্করণের ডক্সে হারিয়ে গিয়েছিলাম।
- ডেভেলপার বান্ধব মূল্য:Datastax Astra-এর মূল্য নির্ধারন সহজ নয়। প্রতিটি ইউনিট আলাদাভাবে গণনা করা হয় (পড়া, লেখা, ব্যান্ডউইথ) এবং ক্লাউড প্রদানকারী এবং এমনকি অঞ্চলের উপর নির্ভর করে তাদের আলাদা মূল্য রয়েছে। ডেটাস্ট্যাক্সের রিড/রাইট ইউনিটের (RRU এবং WRU) নিজস্ব সংজ্ঞা রয়েছে।
DynamoDB (AWS)৷
- ব্যবহারের সহজলভ্যতা:আপনি যদি একজন AWS ব্যবহারকারী হন তবে DynamoDB এর সাথে শুরু করা এবং কাজ করা সহজ। তবে আমি মনে করি MongoDB এর একটি সহজ এবং আরও স্বজ্ঞাত ক্যোয়ারী API আছে।
- সার্ভারলেস সংযোগ:DynamoDB সংযোগগুলি http ভিত্তিক, আপনার কোন সংযোগ সীমা সমস্যা নেই৷
- পোর্টেবিলিটি:সবচেয়ে বড় সমস্যা এখানে। আপনি AWS ছাড়া কোথাও DynamoDB ব্যবহার করতে পারবেন না।
FaunaDB
- সংগতি:সামঞ্জস্যের দিক থেকে সম্ভবত FaunaDB এই তালিকায় সেরা। এটি বিশ্বব্যাপী প্রতিলিপি সহ ধারাবাহিকতার গ্যারান্টি দেয়। কিন্তু সতর্ক থাকুন যে এটি অতিরিক্ত কর্মক্ষমতা খরচে আসে। আপনার সত্যিই এত শক্তিশালী ধারাবাহিকতা প্রয়োজন কিনা তা বিবেচনা করুন।
- পারফরম্যান্স:এটির দৃঢ় সামঞ্জস্যের কারণে অন্যদের তুলনায় এটির লেটেন্সি বেশি।
- ব্যবহারের সহজলভ্যতা:সত্যি বলতে, FQL আমার জন্য শেখা এবং ব্যবহার করা সবচেয়ে কঠিন ছিল। কিন্তু FaunaDB এছাড়াও GraphQL API সমর্থন করে, তাই এটি সহজ হতে পারে।
- সার্ভারলেস সংযোগ:এটির HTTP ভিত্তিক সংযোগের জন্য ধন্যবাদ, FaunaDB এর সংযোগ সীমা নিয়ে সমস্যা নেই।
আপস্ট্যাশ
- ব্যবহারের সহজলভ্যতা:Redis সম্ভবত এই তালিকায় API শেখার সবচেয়ে সহজ। আপস্ট্যাশ তার স্বজ্ঞাত এবং সহজ ইন্টারফেসের সাথে ক্লাউডে ব্যবহার করা সহজ করে তোলে।
- ডেভেলপার বান্ধব মূল্য:Upstash মূল্য প্রতি-অনুরোধের উপর ভিত্তি করে। এটি মূল্য-ক্যাপও সেট করে, তাই এটি গ্যারান্টি দেয় যে আপনি পূর্বনির্ধারিত পরিমাণের বেশি অর্থ প্রদান করবেন না।
- পারফরম্যান্স:মেমরি ভিত্তিক স্টোরেজের জন্য ধন্যবাদ, Upstash সেরা লেটেন্সি নম্বর দেয়। একটি ধারণা পেতে এটি পরীক্ষা করুন৷
- যদি আপনার জটিল ক্যোয়ারী ক্ষমতার প্রয়োজন হয় (যোগদান ইত্যাদি), রেডিস ডেটা স্ট্রাকচার ব্যবহারিক নাও হতে পারে। এই ধরনের ক্ষেত্রে আপনার আরও ভাল SQL সমর্থন সহ একটি ডাটাবেসের প্রয়োজন হতে পারে।
ফায়ারস্টোর
- ব্যবহারের সহজলভ্যতা:ফায়ারস্টোর এই বিভাগের জন্য এই তালিকার অন্যতম সেরা। UI এবং API বেশ স্বজ্ঞাত।
- পোর্টেবিলিটি:DynamoDB এর মতই, ফায়ারস্টোরের একটি ভেন্ডর-লক সমস্যা আছে। আপনি যতক্ষণ Google ক্লাউডে আছেন ততক্ষণ এটি ভাল৷
- পারফরম্যান্স:এর পারফরম্যান্স নিয়ে আগেও কিছু অভিযোগ শুনেছি। আমি ব্যক্তিগতভাবে অনুভব করেছি যে এটির বিলম্বিতা FaunaDB এর সাথে অন্যদের চেয়ে খারাপ। তাই এখানে একটি প্রশ্নবোধক চিহ্ন রয়েছে।
ক্লোজিং শব্দ
আমি বিশ্বাস করি যে সার্ভারহীন উন্নয়নের ভবিষ্যত এবং সার্ভারহীনের দিকে একটি চলমান রূপান্তর রয়েছে। সার্ভারলেস ডেভেলপার এবং ছোট কোম্পানিগুলিকে খুব সীমিত বাজেটের সাথে মাপযোগ্য পণ্য তৈরি করতে সক্ষম করে। ডেটাবেসগুলি অফারগুলির সাথে এই রূপান্তরের অংশ হওয়া উচিত যা সার্ভারহীন নীতিগুলির সাথে সুসঙ্গত৷