কম্পিউটার টিউটোরিয়াল

টপ সার্ভারলেস ডেটাবেস: লো-মেইনটেনেন্স, কাস্ট-ইফেক্টিভ সমাধান

সার্ভারলেস ডেভেলপারদের জন্য দুর্দান্ত যারা এন্ড-টু-এন্ড একটি অ্যাপ্লিকেশন বিল্ড করতে চান সবচেয়ে কম মেইনটেনেন্স এবং ফাইনান্সিয়াল কস্টে। সার্ভারলেস ফাংশন আপনাকে আপনার নিজস্ব কোড রান করতে দেয় ব্যাকএন্ড ইনফ্রা মেইনটেইন ছাড়া। কিন্তু সেগুলো ডিজাইন অনুযায়ী স্টেটলেস তাই আপনাকে একটি এক্সটার্নাল ডেটা স্টোর দরকার। তাই পরের প্রশ্ন হলো কোন ডেটাবেসগুলো সার্ভারলেসের জন্য সেরা ফিট? ভালো খবর হলো ডেটাবেস ভেন্ডররা সার্ভারলেস ট্রেন্ড দেখছে এবং সেগুলো হয় সার্ভারলেস অফারিং লঞ্চ করছে বা তাদের প্রোডাক্ট অ্যাডাপ্ট করার চেষ্টা করছে। এই আর্টিকেলে, আমি প্রথমে লিস্ট করব সেসব বিষয়গুলো যা একটি ডেটাবেসকে সার্ভারলেসের জন্য দুর্দান্ত করে তোলে। তারপর আমি সেসব ডেটাবেস লিস্ট করব যেগুলো আমি ব্যক্তিগতভাবে মনে করি সার্ভারলেসের জন্য সেরা ডেটাবেস হতে পারে।

কী একটি ডেটাবেসকে সার্ভারলেসের জন্য দুর্দান্ত করে তোলে? 🤔

  • ইজ অফ ইউজ: নেক্সট জেনারেশন ডেভেলপাররা দিন এবং সপ্তাহ খরচ করতে চান না টেকনোলজি শিখতে। তারা ইউটিউব ভিডিও দেখে শিখতে চায় পেজের পেজ ডক্স পড়ার বদলে। তাই সার্ভারলেসের জন্য একটি ডেটাবেস সিম্পল এবং ইন্টুইটিভ হওয়া উচিত।
  • সার্ভারলেস প্রাইসিং: প্রাইস শূন্যে স্কেল করতে পারা উচিত। আমি কেন কিছুটার জন্য পে করব যা আমি ব্যবহার করি না। প্রতি-ব্যান্ডউইথ বা প্রতি-রিকোয়েস্ট বেসড প্রাইসিং মডেল সার্ভারলেস যেহেতু আপনার একজ্যাক্ট ইউজেজের সাথে কোরিলেট করে। ব্যক্তিগতভাবে আমি প্রতি-রিকোয়েস্ট পছন্দ করি কারণ এটি ব্যান্ডউইথ চেয়ে সহজে এস্টিমেট করা যায়।
  • ডেভেলপার-ফ্রেন্ডলি প্রাইসিং: প্রাইসিং সিম্পল হওয়া উচিত ট্র্যাপ ছাড়া। কিছু প্রাইসিং পেজ এত কমপ্লেক্স যে সেগুলো ব্যাখ্যা করার জন্য এক্সট্রা আর্টিকেল এবং ব্লগ পোস্ট লাগে। কিছু ভেন্ডারের কমপ্লেক্স ক্যালকুলেটর আছে। দুর্ভাগ্যবশত অধিকাংশ ভেন্ডার কমপ্লেক্স প্রাইসিং পছন্দ করে তাদের রিস্ক মিনিমাইজ করার জন্য। তাই ইনভয়েস দেখার আগে কত টাকা পে করতে হবে সেটা অনুমান করা কঠিন।
  • সার্ভারলেস কানেকশনস: সার্ভারলেস ফাংশনগুলো সেকেন্ডে সেকেন্ডে হাজার হাজারে স্কেল করতে পারে। যদি আপনার ডেটাবেস পারসিস্টেন্ট কানেকশন চায় তবে আপনি সহজেই আপনার ডেটাবেসের কানেকশন লিমিট হিট করতে পারেন। HTTP-বেসড কানেকশনগুলোর এই সমস্যা নেই কারণ সেগুলো বেশি লাইটওয়েট এবং সাধারণত এত লিমিটেশন নেই।
  • কম লেটেন্সি: এক্সট্রা লেটেন্সি সার্ভারলেস ফাংশনে কস্ট। কিন্তু রিয়েল কস্ট হলো অনমনಸ್ಕ ব্যবহারকারীরা আপনার ওয়েবসাইটে অপেক্ষা করছে।
  • পোর্টেবিলিটি: যদি আপনি অন্য ক্লাউড ভেন্ডরে মুভ করতে চান, কি আপনাকে ডেটা লেয়ার রीरাইট করতে হবে। অথবা আপনি রিমোট ডেটাবেসে কানেক্ট ছাড়া আপনার ল্যাপটপে অ্যাপ্লিকেশন টেস্ট করতে পারেন।
  • কনসিস্টেন্সি: সাধারণত, কনসিস্টেন্সি এবং পারফরম্যান্সের মধ্যে একটি ট্রেড-অফ থাকে। ডেটাবেসগুলো কনসিস্টেন্সি এবং পারফরম্যান্স স্পেকট্রামের বিভিন্ন জায়গায় আছে। একটি ভালো ডেটাবেস স্পষ্টভাবে তার কনসিস্টেন্সি গ্যারান্টি ডিফাইন করা উচিত যাতে ইউজার পসিবল ইস্যু এবং রিস্ক সম্পর্কে অবগত থাকে।
  • স্কেলেবিলিটি: ডেটাবেসটি তালমেল রাখতে পারা উচিত যখন আপনার অ্যাপ্লিকেশন হাই থ্রুপুট পাওয়া শুরু করে। আদর্শভাবে, স্কেলিং অটোমেটিক বা ক্লাউড প্রোভাইডার দ্বারা ম্যানেজড হওয়া উচিত। আপনাকে এর চিন্তা করতে হবে না।
  • এজ-ফ্রেন্ডলি: ক্লাউডফ্লেয়ার ওয়ার্কার্স এবং ফাস্টলি কম্পিউট কুল টেকনোলজি যেগুলো আপনাকে আপনার সার্ভারলেস ফাংশনগুলো আপনার ইউজারের সবচেয়ে কাছাকাছি এজ-এ রান করতে দেয়। সেগুলো রেস্ট-বেসড কানেকশন চায় কিন্তু গ্লোবালি রেপ্লিকেটেড ডেটাবেসও লেটেন্সি মিনিমাইজ করার জন্য।
  • গ্লোবালিটি: যেহেতু আপনার অ্যাপ্লিকেশন গ্লোবালি জনপ্রিয় হয়, আপনাকে একটি ডেটাবেস দরকার যেটি পুরো বিশ্বে ভালো পারফরম্যান্স দেয়। মাল্টি-রিজন রেপ্লিকেশন এই ফিচার ইনাবল করার কী। কিন্তু প্রাইসিং চেক করুন সাবধান হয়ে। এই ফিচার এক্সপেনসিভ হতে পারে।

সার্ভারলেসের জন্য সেরা ডেটাবেসগুলো? 🏆

এই সেকশনে, আমি আমার ইমপ্রেশন এবং নোট শেয়ার করব নিচের ডেটাবেসগুলো ট্রাই করার পর থেকে। সেগুলো সায়েন্টিফিক অ্যানালিসিস বেসড নয় কিন্তু আশা করি আপনাকে একটি আইডিয়া দেবে কোনো রিয়েল তুলনা করার আগে।

MongoDB (Atlas)

  • ইজ অফ ইউজ: MongoDB এই লিস্টে সবচেয়ে জনপ্রিয় NoSQL ডেটাবেস এবং ডকুমেন্ট স্টোর। এর API খুব সিম্পল এবং ইন্টুইটিভ এর JSON-বেসড ডেটা মডেলের কারণে।

  • পোর্টেবিলিটি: প্রায় সব ক্লাউড প্রোভাইডারের ডেটাবেস প্রোডাক্ট আছে MongoDB API-র সাথে এবং আপনি MongoDB নিজে অন-প্রেমাইসে রান করতে পারেন। তাই পোর্টেবিলিটি ইস্যু নেই।

  • MongoDB Atlas সম্প্রতি এর সার্ভারলেস ডেটাবেস টাইপ ঘোষণা করেছে। আমার পারসোনাল ইমপ্রেশন হলো এটি একটি হোস্টেড MongoDB ইনস্ট্যান্সের মত বেশি সার্ভারলেস প্রাইসিং মডেলের অধীনে। যেমন এখানে দেখা যাচ্ছে অনেক ফিচার সার্ভারলেস ডেটাবেসের জন্য সাপোর্টেড নয়

  • সার্ভারলেস কানেকশনস: MongoDB Atlas আপনাকে একটি HTTP-বেসড (যেমন রেস্ট) এপিআই দেয় না। আপনি সহজেই কানেকশন লিমিট হিট করতে পারেন। তাই তারা আর্টিকেল পাবলিশ করে কীভাবে এটিকে এভয়েড করতে হয় এখানে।

    _(আপডেট) MongoDB Atlas একটি HTTP-বেসড ডেটা এপিআই লঞ্চ করেছে_

Cassandra (Datastax Astra)

  • Datastax Astra নেটিভ ক্যাসান্ড্রা ড্রাইভারের পাশাপাশি রেস্ট এবং GraphQL API প্রদান করে।
  • ইজ অফ ইউজ: আমার জন্য ক্যাসান্ড্রা শিখা MongoDB এবং রেডিস চেয়ে হার্ড ছিল। তবে, Datastax টিম কনসোল দিয়ে ভালো কাজ করেছিল, এটি খুব ইন্টুইটিভ ছিল। কিন্তু সিম্পলি আমি ডক্সে হারিয়ে যেতাম রেস্ট এপিআইর ভিন্ন ভার্সনগুলো নিয়ে।
  • ডেভেলপার-ফ্রেন্ডলি প্রাইসিং: Datastax Astra-র প্রাইসিং সিম্পল নয়। প্রতিটি ইউনিট আলাদা ক্যালকুলেটেড (রিডস, রাইটস, ব্যান্ডউইথ) এবং তাদের আলাদা প্রাইস আছে ক্লাউড প্রোভাইডার এবং এমনকি রিজনের উপর নির্ভর করে। Datastax-এর নিজস্ব রিড/রাইট ইউনিটের ডেফিনিশন আছে (RRU এবং WRU)।

DynamoDB (AWS)

  • ইজ অফ ইউজ: আপনি যদি AWS ইউজার হন, এটি শুরু করা এবং DynamoDB-এর সাথে কাজ করা সহজ। তবে আমি মনে করি MongoDB-র একটি সহজ এবং বেশি ইন্টুইটিভ কোয়েরি API আছে।
  • সার্ভারলেস কানেকশনস: DynamoDB কানেকশন HTTP-বেসড, তাই আপনার কোনো কানেকশন লিমিট সমস্যা নেই।
  • পোর্টেবিলিটি: সবচেয়ে বড় সমস্যা এখানে। আপনি DynamoDB কোথাও ব্যবহার করতে পারবেন না AWS ছাড়া।

FaunaDB

  • কনসিস্টেন্সি: FaunaDB সম্ভবত এই লিস্টে সেরা এই ক্যাটাগরিতে। এটি গ্লোবাল রেপ্লিকেশনের সাথে কনসিস্টেন্সি গ্যারান্টি দেয়। কিন্তু সতর্ক থাকুন এটি এক্সট্রা পারফরম্যান্স কস্টের সাথে আসে। বিবেচনা করুন আপনি কি রিয়েলি এত শক্তিশালী কনসিস্টেন্সি দরকার।
  • পারফরম্যান্স: এর লেটেন্সি অন্যদের চেয়ে বেশি তার স্ট্রং কনসিস্টেন্সির কারণে।
  • ইজ অফ ইউজ: আসল কথা, FQL এই লিস্টে আমার জন্য শিখা এবং ব্যবহার করা সবচেয়ে হার্ড ছিল। কিন্তু FaunaDB GraphQL API ও সাপোর্ট করে, তাই সেটি সহজ হতে পারে।
  • সার্ভারলেস কানেকশনস: এর HTTP-বেসড কানেকশনের 덕তে, FaunaDB কানেকশন লিমিট সমস্যা নেই।

Upstash

  • ইজ অফ ইউজ: রেডিস সম্ভবত এই লিস্টে শিখা সবচেয়ে সহজ API। আপস্ট্যাশ এটি ক্লাউডে ব্যবহার করা সহজ করে তোলে তার ইন্টুইটিভ এবং সিম্পল ইন্টারফেস দিয়ে।
  • ডেভেলপার-ফ্রেন্ডলি প্রাইসিং: আপস্ট্যাশ প্রাইসিং প্রতি-রিকোয়েস্ট বেসড। এছাড়া এটি প্রাইস-ক্যাপ সেট করে, তাই এটি গ্যারান্টি দেয় আপনি একটি প্রিডিটারমিনড অ্যামাউন্ট চেয়ে বেশি পে করবেন না।
  • পারফরম্যান্স: মেমরি-বেসড স্টোরেজের ধন্যবাদে, আপস্ট্যাশ সেরা লেটেন্সি নম্বর দেয়। এখানে চেক করুন একটি আইডিয়া পেতে।
  • যদি আপনার কমপ্লেক্স কোয়েরি ক্যাপাবিলিটি দরকার হয় (জয়েনস ইত্যাদি), রেডিস ডেটা স্ট্রাকচার প্র্যাক্টিক্যাল নাও হতে পারে। এমন কেসে আপনাকে बेटার SQL সাপোর্টের সাথে একটি ডেটাবেস দরকার হতে পারে।

Firestore

  • ইজ অফ ইউজ: Firestore এই লিস্টে এই ক্যাটাগরিতে সেরা একটি। UI এবং API খুব ইন্টুইটিভ।
  • পোর্টেবিলিটি: ঠিক DynamoDB-এর মত, Firestore-এ ভেন্ডর-লক সমস্যা আছে। এটি ভালো যতক্ষণ আপনি গুগল ক্লাউডে আছেন।
  • পারফরম্যান্স: আমি এর পারফরম্যান্স সম্পর্কে কিছু শিকায়েত শুনেছি আগে। আমি পერსোনালি এক্সপেরিয়েন্স করেছি এর লেটেন্সি অন্যদের চেয়ে খারাপ FaunaDB-এর সাথে মিলে। তাই এখানে একটি প্রশ্ন চিহ্ন আছে।

শেষ কথা 🎯

আমি মনে করি সার্ভারলেস ডেভেলপমেন্টের ভবিষ্যৎ এবং সার্ভারলেস দিয়ে একটি চলমান ট্রানজিশন আছে। সার্ভারলেস ডেভেলপাররা এবং ছোট কোম্পানিগুলোকে সক্ষম করে স্কেলেবল প্রোডাক্ট তৈরি করতে খুব সীমিত বাজেটে। ডেটাবেসগুলোর এই ট্রানজিশনের অংশ হওয়া উচিত অফারিংস দিয়ে যেগুলো সার্ভারলেস প্রিন্সিপলসের সাথে কোহেরেন্ট।

  1. সার্ভারলেস ডেটাবেস বেঞ্চмар্ক: DynamoDB, FaunaDB এবং Upstash (Redis)-এর লেটেন্সি তুলনা

  2. উইন্ডোজের জন্য টপ ২৫ বিশ্বস্ত এনক্রিপশন সফটওয়্যার: আজই আপনার পিসি সুরক্ষিত করুন

  3. পিসি জন্য টপ ১২ অ্যান্ড্রয়েড অপারেটিং সিস্টেম: পারফরম্যান্স ও অ্যাপ অ্যাক্সেস বাড়ান

  4. পিসি জন্য টপ ৯ নিন্টেন্ডো DS এমুলেটর— হাই-পারফরম্যান্স, সিকিউর এবং ফ্রি