انتخاب‌های پایگاه داده برای پردازش ابری


انتخاب‌های پایگاه داده برای پردازش ابری

 

رایانش ابری، در حال گسترش مدل (RDMS) “سیستم مدیریت پایگاه‌ داده‌ی ارتباطی” تا حد اعلای خود می‌باشد. گر مگناسون (Geir Magnusson) متخصص رایانش ابری گزینه‌های مختلفی را که برنامه‌نویسان در اختیار دارند مورد بررسی قرار می‌دهد تا در مورد نحوه‌ی طراحی، توسعه، بهره‌برداری و مدیریت کاربری‌های ابری، از آن بهره گیرند.
 options-for-cloudیک کارشناس رایانش ابری، زمانی که نقاط قوت و ضعف رایانش ابری را فهرست می‌کرد این‌گونه اظهار داشت که اگر چه یک سیستم مدیریت پایگاه‌داده‌ی ارتباطی، چیزی است که اکثر برنامه‌نویسان به کار کردن با آن عادت کرده‌اند اما حقیقت این است که نمی‌توانید آن را در ابر به کار ببرید.

 

گر مگناسون در سمینار وب ۲ اکسپو این‌گونه اظهار کرد که: «یک “سیستم مدیریت پایگاه ‌داده‌ رابطه‌ای” (RDBMS)، چیزی است که به آن نیاز دارید اما نه در یک ابری.» تهیه‌ی نقشه‌ی شیء/رابطه (O/R)، روشی برای رهایی از مشکل عدم تطابق بین زبان‌های اشیاء و داده‌های ذخیره شده در یک سیستم رابطه‌ای است. به گفته‌ی مگناسون: «تهیه‌ی نقشه‌ی O/R، قدرت یک RDBMS را با سهولت برنامه‌نویسی «سیستم مدیریت پایگاه‌داده‌ی اشیاء» (ODBMS) ترکیب می‌کند» و در پایان با اشاره به پشتیبانی از نگاشت O/R در زبان‌هایی چون ساخت نقشه‌ی O/R در دات‌نت، پایتون، جاوا و گوروی می‌گوید: «نگاشت O/R امروزه همه‌جا هست!»

مگناسون در یک سخنرانی که تحت عنوان «پی‌آیندی بر سیکوئل (SQL): چرا RDBMS خود را در ابرها پیدا نمی‌کنید؟» “ابر” را به عنوان “منابع و یا خدمات پردازشی بی‌نام و یا غیرمتمرکز” تعریف کرده است. او در ادامه‌ی سخنرانی خود انواع مختلف گزینه‌های رایانش ابری را به این صورت بیان نمود: “نرم‌افزار به عنوان خدمات” که توسط Salesforce.com مورد تأیید و استفاده قرار گرفته است. “بستره به عنوان خدمات” گزینه‌ی دیگری است که گوگل، آن را مورد تأیید قرار داده و در حال گسترش آن است. بعد از آن “ابزار به عنوان خدمات” را داریم که به وسیله‌ی پایگاه‌داده‌ی آمازون معرفی شده و در پایان “سخت افزار به عنوان خدمات” که توسط EC2 یا همان پردازش‌گر ابری انعطاف‌پذیر آمازون ارائه می‌شود.

ابر به دلیل مزایا و کاهش هزینه‌های محاسباتی آن، نظیر کاهش هزینه‌های عملیاتی و سرمایه‌ای و همچنین فرصتی برای خدمات‌دهی بهتر به مشتریان با حضور و در دسترس بودن هر چه بهتر بسیار پرطرفدار شده است. اما یک نکته نیز در این میان وجود دارد. مگناسون در این باره می‌گوید: «از دیدگاه داده‌ای، داده همیشه لازم است که توزیع و کپی‌برداری شود» به گفته‌ی او، برای مجموعه‌های بزرگ داده، داده‌ها باید تفکیک و مرتب‌سازی شوند.

مگناسون سپس در ادامه‌ی توضیحات مفهوم سخت افزار به عنوان خدمات، ویژگی “بشقاب چرخانی در EC2″ را مورد بحث قرار داد. در این حالت چندین ماشین مجازی در مای‌سیکوئل با یک سرویس‌ دهنده و چندین سرویس گیرنده‌ی دیگر وجود دارد و اگر سرویس دهنده از بین برود می‌توانید از ماشین مجازی‌های باقی‌مانده سرویس دهنده‌ی جدیدی ایجاد کنید. اما به گفته‌ی وی: «این عقیده‌ی من درباره‌ی رایانش ابری نیست؛ شما با این کار در واقع کلاسترسازی انجام می‌دهید.»

مگناسون در خلال صحبت‌های خود، بیگ‌تیبل (BigTable) شرکت گوگل را مورد بررسی قرار داد که گوگل در AppEngine خود، از آن استفاده کرده است. بیگ‌تیبل یک سیستم ذخیره‌سازی توزیع شده برای مدیریت داده‌های دارای ساختار می‌باشد و برای گسترش در ابعادی بسیار بزرگ‌تر پیش‌بینی شده است؛ به گونه‌ای که پتابایت‌هایی از داده را در هزاران سرور قابل جابه‌جایی پشتیبانی می‌کند. اما بیگ‌تیبل محدودیت‌هایی نیز دارد. فهرست‌ها برای تمامی پرس‌‌ و جوها لازم بوده و درخواست‌ها باید محدود به هزار عدد باشند.

سیمپل‌دی‌بی (SimpleDB) شرکت آمازون یک سیستم ذخیره‌سازی فهرست‌وار می‌باشد. مگناسون در این باره این‌طور می‌گوید: «فکر می‌کنم یک جور ذخیره‌ی فراداده‌ای برای سیستم ذخیره‌سازی ساده‌ی آمازون (SimpleStorageService) باشد.» سیمپل‌دی‌بی از فهرست‌سازی خودکار پشتیبانی می‌کند که در پایان به صورت فهرست ثابت درخواهند آمد. البته باید به خاطر داشت که پرس و جوی هم‌زمان به ۲۵۰ آرایه محدود است و ارتباط بین دامنه‌های داده مجاز نیست.

در این میان پایگاه داده‌ی مونگو (Mongo) که توسط شرکت ۱۰gen برای بستره خود به همین نام طراحی شده در حال ساخت فناوری جدیدی از نوع بستره به عنوان خدمات می‌باشد که هدف اصلی آن کمک به برنامه‌نویسان است تا با سرعت و به راحتی برنامه‌ و وب‌سایت‌های پویا، قابل تغییر و توانمند طراحی کنند. ساختار نرم‌افزار ۱۰gen را می‌توان با App Engine گوگل مقایسه کرد چرا که همانند آن کتابخانه‌ای از ابزارهای جدید را ارائه می‌کند. این ابزارها شامل پایگاه‌داده، کنترل توری‌ها و سرور برنامه‌های کاربردی می‌شوند که دقیقا برای این منظور طراحی شده‌اند تا بتوانند در محیط ابری کار کنند.

به گفته مگناسون، مونگو یک سیستم ذخیره‌سازی مبتنی بر سند/شیء می‌باشد. وی می‌افزاید: «آن را باید یک جور نمادسازی شیء جاوا اسکریپت از نوع باینری (Binary JavaScript Object Notation) در نظر گرفت.» به عبارتی مونگو یک زبان پویا از نوع ODBMS است که مختص ابر طراحی شده است.

گزینه‌ی دیگر در رایانش ابری AppJet است که شباهت‌های بسیاری به ۱۰gen دارد. هر چند مگناسون در این‌باره می‌گوید «سرور برنامه‌ی کاربردی جاوا اسکریپت رویایی بیش نیست! هیچ‌کس هنوز به صورت رابطه‌ای کار نمی‌کند و با داده به صورت کلاستربندی شده برخورد می‌شود.»

در ادامه، مگناسون، یک سری فناوری‌های دیگر را نیز برای مطالعه توصیه کرده است. اولین آن‌ها دریزل (Drizzle) در واحد سیکوئل شرکت سان‌میکروسیستم است که در حقیقت یک پایگاه‌داده‌ی سیکوئل ویژه برای ابر و شبکه می‌باشد. مگناسون در این‌باره می‌افزاید: «در واقع شاخه‌ای از پایگاه‌داده‌ی مای‌سیکوئل که برای کاربری‌های شبکه‌ای و رایانش ابری، بهینه‌سازی شده است.»

فناوری دیگر توصیه‌ی شده‌ی مگناسون  (CouchDB) است که در حقیقت یک پایگاه‌داده‌ی سند‌گرا بر اساس هسته‌ی نرم‌افزار آپاچی است که با زبان برنامه‌نویسی Erlang نوشته شده است.  وی پس از آن، Hadoop را جهت مطالعه توصیه می‌کند و آن را به صورت ترکیبی از موتور MapReduce گوگل و سیستم فایل‌های توزیع شده، تشریح می‌کند.

در پایان مگناسون با توجه به این همه گزینه‌ای که برای انتخاب کردن وجود دارد و محیط عظیم ابری که به دنبال رفع نیازهای خود است؛ می‌گوید: «برنامه‌نویسی به زودی تحول پیدا می‌کند و من فکر می‌کنم همه چیز، واقعا جذاب‌تر خواهد شد!»