۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

پایگاه داده بدون سرور چیست؟ محاسبه الاستیک برای ردیف داده

پایگاه داده‌های بدون سرور، ذخیره‌سازی و بازیابی داده‌ها را بسیار مقیاس‌پذیر و مبتنی بر ابر ارائه می‌کنند، بدون اینکه نیازی به تهیه CPU یا ذخیره‌سازی پیش از موعد داشته باشید.

پایگاه داده‌های بدون سرور، ذخیره‌سازی و بازیابی داده‌ها را بسیار مقیاس‌پذیر و مبتنی بر ابر ارائه می‌کنند، بدون اینکه نیازی به تهیه CPU یا ذخیره‌سازی پیش از موعد داشته باشید.

خدمات محاسبات ابری بدون سرور با AWS Lambda شروع شد، که به شما امکان می‌دهد کد را بدون تهیه یا مدیریت سرورها اجرا کنید. AWS Lambda نمونه‌ای از عملکرد به‌عنوان سرویس یا FaaS است و سایر پیاده‌سازی‌های FaaS به سرعت در Microsoft Azure و Google Cloud دنبال می‌شوند. بعدها، ارائه دهندگان ابری شروع به ارائه خدمات دیگر به صورت بدون سرور کردند. بدون سرور روش جدیدی برای تفکر در مورد خدمات ابری بود، و در عمل معماری های بدون سرور اغلب هزینه کسری از ارائه نمونه های سرور دائمی را برای اجرای بارهای مشابه دارند.

بی سرور توضیح داده شد

علی رغم آنچه از نام آن پیداست، بدون سرور به این معنی نیست که هیچ سروری استفاده نمی شود. در عوض، به این معنی است که شما نیازی به تهیه، مدیریت یا پرداخت برای سرورهای اساسی ندارید.

وقتی درخواستی برای یک سرویس بدون سرور وارد می‌شود، ارائه‌دهنده ابر یک نمونه (ماشین مجازی) یا پاد (مجموعه‌ای منطقی از کانتینرها که معمولاً توسط Kubernetes مدیریت می‌شود) را برای رسیدگی به درخواست از Pool خود اختصاص می‌دهد. هنگامی که کد بدون سرور خارج می شود، منابع اختصاص داده شده به استخر بازگردانده می شود. به طور کلی، شما برای منابعی که استفاده می کنید بر اساس ظرفیت CPU، تخصیص RAM و زمان فعال آنها، هزینه پرداخت می کنید.

توابع و سرویس های بدون سرور می توانند یکدیگر را فراخوانی کنند، می توانند سرویس های دیگر را فراخوانی کنند و می توانند در سیستم های فایل مشترک و پایگاه داده بنویسند. یکی از بزرگترین مزیت های فنی توابع بدون سرور، مقیاس پذیری فوق العاده آنهاست: بر خلاف سرورهای تدارکاتی، که به راحتی می توانند توسط افزایش ترافیک غرق شوند، نمونه های عملکرد بدون سرور جدید برای هر رویدادی که به آنها نیاز دارد راه اندازی می شوند و همه نمونه ها به طور خودکار به استخر باز می گردند. مورد نیاز نیستند.

وقتی یک نمونه (یا pod) با اندازه مناسب در استخر در دسترس نباشد، چه اتفاقی می‌افتد؟ ارائه دهنده ابر باید یک سرویس جدید ایجاد کند. این باعث تاخیر در رسیدگی به درخواست می شود. اگر تأخیر برای مورد استفاده شما مشکلی ایجاد می کند، می توانید برای تنظیم اولیه و آماده نگه داشتن برخی از توابع برای پاسخگویی هزینه کنید. AWS این همزمانی تدارک دیده شده را می نامد. سایر ارائه‌دهندگان ابر از نام‌های متفاوتی استفاده می‌کنند، اما همه آن‌ها به گرم نگه داشتن برخی از نمونه‌ها برای کاهش تأخیر متکی هستند.

عملکردها و خدمات بدون سرور معمولاً در دسترس هستند. اگر از یک سرور، ماشین مجازی، یا کانتینر برای اجرای یک سرویس استفاده می‌کنید، احتمال قطع شدن سرویس از دستگاه یا مرکز داده زیاد است. ارائه‌دهندگان ابر معمولاً ظرفیت محاسباتی اضافی را برای عملکردهای بدون سرور در چندین منطقه در دسترس (مراکز داده در مکان‌های فیزیکی متفاوت اما نزدیک) در هر منطقه خدمات جغرافیایی حفظ می‌کنند.

13 ابزاری که Kubernetes را بهتر می کند

علاوه بر توابع و خدمات بدون سرور ارائه‌دهندگان ابری، بسیاری از چارچوب‌ها و SDK‌های مبتنی بر cloud-agnostic برای ایجاد برنامه‌های بدون سرور وجود دارد. اینها عبارتند از Kubeless، Pulumi، OpenFaaS، OpenWhisk و Framework بدون سرور.

پایگاه داده های بدون سرور توضیح داده شد

به گفته جیم واکر از آزمایشگاه سوسک، پایگاه داده بدون سرور به ۹ اصل اصلی پایبند است:

  1. مدیریت دستی سرور کم است
  2. مقیاس برنامه/سرویس خودکار و کشسان
  3. ارتباط داخلی و خدمات ذاتاً تحمل خطا
  4. همیشه در دسترس و دسترسی فوری
  5. رتبه بندی یا مکانیسم صورتحساب مبتنی بر مصرف
  6. در هر دامنه شکستی، از جمله مناطق، زنده بمانید
  7. مقیاس جغرافیایی
  8. ضمانت‌های معاملاتی
  9. (ظرافت SQL رابطه ای)

اصول ۱ و ۵ را می توان برای هر سرویس بدون سرور اعمال کرد، اما اصول ۶ تا ۹ مختص پایگاه های داده SQL جهانی است. به نظر می رسد شماره ۹ به نفع پایگاه های داده SQL توزیع شده مانند CockroachDB تعصب دارد، به همین دلیل است که من پرانتزهایی را در اطراف آن مورد اضافه کرده ام.

روش سنتی اتصال به اکثر پایگاه های داده ایجاد یک اتصال TCP دائمی از مشتری به سرور است. این برای پایگاه داده های بدون سرور مناسب نیست، زیرا راه اندازی یک اتصال TCP می تواند زمان بر باشد. در حالت ایده‌آل، کلاینت باید تقریباً فوراً (زیر ۱۰۰ میلی‌ثانیه) به نقطه پایانی بدون سرور متصل شود و در عرض یک ثانیه برای سؤالات ساده پاسخ دریافت کند. برخی از پایگاه‌های داده بدون سرور (برای مثال Amazon Aurora Serverless) از اتصالات HTTP (ترجیحا HTTPS) پشتیبانی می‌کنند و از ادغام اتصال مورد نیاز برای پشتیبانی از مقیاس‌بندی و ایجاد اتصالات تقریباً فوری مراقبت می‌کنند.

چگونه پایگاه داده های بدون سرور می توانند در هزینه شما صرفه جویی کنند

پایگاه‌های اطلاعاتی سنتی باید برای حداکثر بار مورد انتظار و ظرفیت ذخیره‌سازی اندازه شوند. اگر پایگاه داده می‌تواند بدون نیاز به انتقال داده‌ها، بزرگ‌تر و پایین‌تر شود، می‌توانید با تنظیم CPU در زمان‌های ترافیک سنگین و کاهش در دوره‌های ترافیک کم، در هزینه خود صرفه‌جویی کنید.

پایگاه داده های بدون سرور معمولاً نیازی به اندازه گیری ندارند. شما هزینه ای برای CPU دریافت نمی کنید مگر اینکه درخواستی ارسال کنید و در آن مرحله به اندازه نیاز درخواست خود ظرفیت دریافت می کنید. سپس برای ظرفیت استفاده شده ضربدر زمان فعال بودن پایگاه داده از شما هزینه دریافت می شود. متأسفانه، هنوز هزینه ذخیره سازی داده از شما دریافت می شود. طبق گفته آمازون، شما می توانید تا ۹۰ درصد از هزینه پایگاه داده خود را با Aurora Serverless در مقایسه با هزینه تامین ظرفیت برای اوج بار صرفه جویی کنید.

وقتی پایگاه داده های بدون سرور کمتر از حد مطلوب هستند

موارد استفاده توصیه شده برای پایگاه‌های داده بدون سرور، بارهای کاری متغیر، بارهای کاری غیرقابل پیش‌بینی، مدیریت ناوگان پایگاه داده سازمانی، برنامه‌های کاربردی نرم‌افزار به‌عنوان سرویس، و پایگاه‌های داده کوچک‌شده تقسیم‌شده در چندین سرور است.

JVM چیست؟ معرفی ماشین مجازی جاوا

پایگاه‌های داده‌ای که بارهای ثابت و قابل پیش‌بینی دارند با استقرار سرورهای سنتی بهتر مدیریت می‌شوند. حتی پایگاه‌های اطلاعاتی که روزهای هفته شلوغ هستند و در تعطیلات آخر هفته و تعطیلات بیکار هستند، معمولاً با سرورها بهتر مدیریت می‌شوند تا بدون سرور، با این شرط که سرورها را هر آخر هفته و تعطیلات تعطیل کنید. برای اطمینان باید محاسبات را انجام دهید، اما می توانید از جداول قیمت گذاری و الگوهای استفاده خود برای تعیین اینکه کدام رویکرد مقرون به صرفه تر است استفاده کنید.

نمونه هایی از پایگاه داده های بدون سرور

نه پایگاه داده بدون سرور زیر تا لحظه نگارش در دسترس هستند. دهمین، MongoDB Atlas، نمونه های بدون سرور را در یک پیش نمایش ارائه می دهد. اگر سایر فروشندگان پایگاه داده با نسخه های ابری، مانند Oracle، نسخه های بدون سرور را در آینده ای اضافه کنند، تعجب آور نخواهد بود.

بدون سرور آمازون Aurora

Amazon Aurora Serverless v2، که در حال حاضر در پیش نمایش است، فوراً از صدها تا صدها هزار تراکنش در کسری از ثانیه مقیاس می شود. همانطور که مقیاس می‌شود، ظرفیت را با افزایش‌های ریز تنظیم می‌کند تا مقدار مناسبی از منابع پایگاه داده را که برنامه به آن نیاز دارد، ارائه کند. هیچ ظرفیت پایگاه داده ای برای مدیریت وجود ندارد و شما فقط برای ظرفیتی که برنامه مصرف می کند هزینه می پردازید. آمازون ادعا می کند که می توانید تا ۹۰٪ از هزینه پایگاه داده خود را در مقایسه با هزینه تامین ظرفیت برای اوج بار صرفه جویی کنید. Amazon Aurora Serverless v2 با MySQL سازگار است.

Amazon DynamoDB

Amazon DynamoDB یک پایگاه داده NoSQL کاملاً مدیریت شده، بدون سرور و با ارزش کلیدی است که برای اجرای برنامه های کاربردی با کارایی بالا در هر مقیاسی طراحی شده است. DynamoDB امنیت داخلی، پشتیبان گیری مداوم، تکثیر خودکار چند منطقه ای، کش در حافظه و ابزارهای صادرات داده را ارائه می دهد.

بدون سرور پایگاه داده Azure SQL

Serverless یک ردیف محاسباتی برای پایگاه‌های داده منفرد در پایگاه داده Azure SQL است که به‌طور خودکار محاسبه را بر اساس تقاضای حجم کار و صورت‌حساب‌ها برای مقدار محاسبه استفاده شده در هر ثانیه مقیاس می‌دهد. ردیف محاسباتی بدون سرور همچنین به‌طور خودکار پایگاه‌های داده را در طول دوره‌های غیرفعال که فقط هزینه ذخیره‌سازی صورت‌حساب می‌شود، متوقف می‌کند و پس از بازگشت فعالیت، به‌طور خودکار پایگاه‌های داده را از سر می‌گیرد. Azure SQL Database Serverless نسخه ای از Microsoft SQL Server است.

بدون سرور Azure Synapse

Azure Synapse Serverless به شما این امکان را می دهد که از T-SQL برای پرس و جوی داده ها از دریاچه داده خود در Azure استفاده کنید تا منابع را زودتر تهیه کنید. شما فقط برای پرس و جوهای اجرا شده پرداخت می کنید و قیمت گذاری بر اساس میزان داده پردازش شده توسط هر پرس و جو است.

بدون سرور CockroachDB

CockroachDB Serverless یک گزینه همیشه رایگان است که در حال حاضر در نسخه بتا، در فضای ابری Cockroach Labs سازگار با PostgreSQL است. می تواند از خوشه های بسیار در دسترس در AWS یا Google Cloud در یک پیکربندی چند مستاجر استفاده کند. محدودیت های استفاده رایگان ۲۵۰ میلیون واحد درخواست در ماه و ۵ گیگابایت فضای ذخیره سازی است. فراتر از آن، هزینه ها ۱ دلار برای ۱ گیگابایت در ماه و ۱ دلار برای ۱۰ میلیون روبل در ماه است.

مقیاس دهی توان و عملکرد در یک سیستم پایگاه داده اشتراکی

فون

Fauna یک پایگاه داده تراکنشی انعطاف پذیر، سازگار با توسعه دهندگان است که به عنوان یک API ابری بدون سرور امن و مقیاس پذیر با GraphQL بومی ارائه می شود. Fauna انعطاف پذیری سیستم های NoSQL را با قابلیت های پرس و جوی رابطه ای و تراکنشی پایگاه های داده SQL ترکیب می کند. Fauna هم از Fauna Query Language و هم GraphQL پشتیبانی می کند.

Google Firebase

Cloud Firestore یک پایگاه داده بدون سرور NoSQL و سند محور است که بخشی از Google Firebase است. برخلاف پایگاه داده SQL، Cloud Firestore هیچ جدول یا ردیفی ندارد. در عوض، داده ها را در اسنادی که در مجموعه ها سازماندهی شده اند ذخیره می کنید. هر سند حاوی مجموعه ای از جفت های کلید-مقدار است.

Cloud Firestore برای ذخیره مجموعه های بزرگی از اسناد کوچک بهینه شده است. تمام اسناد باید در مجموعه ها ذخیره شوند. اسناد می‌توانند شامل مجموعه‌های فرعی و اشیاء تودرتو باشند، که هر دو می‌توانند شامل فیلدهای ابتدایی مانند رشته‌ها یا اشیاء پیچیده مانند فهرست‌ها باشند.

PlanetScale

PlanetScale یک پلت فرم پایگاه داده بدون سرور سازگار با MySQL است که توسط Vitess طراحی شده است. Vitess یک سیستم خوشه‌بندی پایگاه داده برای مقیاس افقی MySQL (و همچنین Percona و MariaDB) است. Vitess همچنین Slack، Square، GitHub، YouTube، و موارد دیگر را تامین می‌کند.

Redis Enterprise Cloud

Redis Enterprise Cloud یک پایگاه داده کاملاً مدیریت شده، بدون سرور و درون حافظه است که روی AWS، Azure و Google Cloud اجرا می شود. ماژول‌های سازمانی می‌توانند Redis را از یک ذخیره‌سازی ساختار داده با ارزش کلیدی ساده گسترش دهند تا از بسیاری از مدل‌ها و عملکردهای داده، از جمله جستجو، نمودار، JSON، سری‌های زمانی و هوش مصنوعی پشتیبانی کند. Redis Enterprise با حفظ تأخیر کم و توان عملیاتی بالا برای بارهای تراکنش، اشتراک گذاری و تعادل مجدد خودکار را انجام می دهد. Redis on Flash، یکی از ویژگی‌های Redis Enterprise، می‌تواند داده‌های داغی که اغلب به آنها دسترسی پیدا می‌کند را در حافظه و مقادیر سردتر را در Flash یا حافظه دائمی مانند Intel Optane DC قرار دهد.

همان‌طور که دیدیم، پایگاه‌های داده بدون سرور، ذخیره‌سازی و بازیابی داده‌های مبتنی بر ابر را بسیار مقیاس‌پذیر و بدون نیاز به ارائه CPU یا ذخیره‌سازی از قبل ارائه می‌کنند. همه پایگاه‌های داده بدون سرور، مدلی را ارائه می‌دهند که به ازای آن چه استفاده می‌کنید، و تعداد کمی برای پایگاه‌های داده کوچک با سرعت انفجار محدود رایگان هستند.