پایگاه دادههای بدون سرور (Serverless Databases) یکی از تکنولوژیهای جدید در دنیای ابری هستند که به توسعهدهندگان این امکان را میدهند که بدون نیاز به مدیریت زیرساخت، از پایگاه دادههای مقیاسپذیر و قابل اطمینان استفاده کنند. در این مستندات، به بررسی پایگاه دادههای بدون سرور، نحوه پیادهسازی آنها بر روی سرورهای ابری و نمونههای کد برای راهاندازی و استفاده از این پایگاهها پرداخته میشود.
الزامات
- سرور ابری با دسترسی ریشه (Root Access)
- سیستمعامل اوبونتو ۲۰.۰۴ یا بالاتر
- آشنایی با پایگاههای داده SQL و NoSQL
- نصب Docker برای اجرای پایگاه دادههای بدون سرور
۱. مقدمهای بر پایگاههای داده بدون سرور
پایگاه دادههای بدون سرور (Serverless Databases) به پایگاههایی اشاره دارند که به صورت خودکار و بدون نیاز به مدیریت و پیکربندی سرورها، مقیاسدهی و مدیریت میشوند. این نوع پایگاهها براساس نیاز مقیاس میشوند و هزینهها فقط بر اساس میزان مصرف محاسبه میشود. برخلاف پایگاههای سنتی که نیازمند پیکربندی سرورهای فیزیکی یا مجازی هستند، پایگاههای بدون سرور به طور خودکار منابع مورد نیاز را مدیریت میکنند.
۲. پیادهسازی پایگاه داده بدون سرور با استفاده از FaunaDB
یکی از پایگاههای داده معروف بدون سرور، FaunaDB است که قابلیتهای قدرتمندی برای مقیاسدهی و مدیریت دادهها بدون نیاز به زیرساختهای پیچیده ارائه میدهد. در این بخش به نحوه پیادهسازی و استفاده از FaunaDB بر روی سرورهای ابری میپردازیم.
مرحله ۱: نصب Docker
برای اجرای FaunaDB در حالت بدون سرور، ابتدا باید Docker را بر روی سرور خود نصب کنید:
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
مرحله ۲: اجرای FaunaDB با Docker
پس از نصب Docker، میتوانید FaunaDB را در یک کانتینر Docker اجرا کنید. ابتدا یک کانتینر FaunaDB ایجاد و آن را اجرا کنید:
docker run -d --name fauna -p 8443:8443 fauna/faunadb
این دستور FaunaDB را بر روی پورت ۸۴۴۳ اجرا میکند.
مرحله ۳: اتصال به FaunaDB
برای اتصال به FaunaDB و مدیریت پایگاه داده، میتوانید از رابط خط فرمان fauna-shell
استفاده کنید. ابتدا آن را نصب کنید:
npm install -g fauna-shell
سپس، به FaunaDB متصل شوید و کلید دسترسی را ایجاد کنید:
fauna create-key admin
این دستور یک کلید دسترسی مدیر ایجاد میکند که میتوانید از آن برای مدیریت پایگاه داده استفاده کنید.
۳. مدیریت پایگاه داده در FaunaDB
مرحله ۱: ایجاد یک پایگاه داده جدید
برای ایجاد یک پایگاه داده جدید در FaunaDB، از دستور زیر استفاده کنید:
fauna shell
> CreateDatabase({ name: "mydatabase" })
این دستور یک پایگاه داده به نام mydatabase
ایجاد میکند.
مرحله ۲: ایجاد مجموعه (Collection) و درج دادهها
برای ایجاد یک مجموعه (جدول) جدید و اضافه کردن دادهها:
> CreateCollection({ name: "users" })
> CreateDocument(Collection("users"), { data: { name: "John Doe", age: 30 } })
این دستورات یک مجموعه به نام users
ایجاد کرده و یک سند (رکورد) جدید در آن درج میکنند.
مرحله ۳: بازیابی دادهها
برای بازیابی دادهها از پایگاه داده، میتوانید از دستور زیر استفاده کنید:
> Get(Match(Index("users_by_name"), "John Doe"))
این دستور دادههایی را که با نام “John Doe” مطابقت دارند بازیابی میکند.
۴. ادغام FaunaDB با یک برنامه
برای ادغام FaunaDB با یک برنامه، میتوانید از زبانهای مختلف مانند Python استفاده کنید. در اینجا نمونهای از استفاده از FaunaDB با Python ارائه شده است.
مرحله ۱: نصب کتابخانه FaunaDB برای Python
ابتدا باید کتابخانه FaunaDB را برای Python نصب کنید:
pip install faunadb
مرحله ۲: اتصال به FaunaDB و مدیریت دادهها
سپس، میتوانید به FaunaDB متصل شوید و دادهها را مدیریت کنید. به عنوان مثال:
from faunadb import query as q
from faunadb.client import FaunaClient
client = FaunaClient(secret="YOUR_FAUNADB_SECRET_KEY")
# ایجاد یک سند جدید
client.query(q.create(q.collection("users"), {
"data": {
"name": "Alice",
"age": 25
}
}))
# بازیابی سند
result = client.query(q.get(q.match(q.index("users_by_name"), "Alice")))
print(result)
این کد یک کاربر جدید با نام “Alice” را به مجموعه users
اضافه میکند و سپس اطلاعات وی را بازیابی میکند.
۵. استفاده از CockroachDB به عنوان پایگاه داده بدون سرور
CockroachDB یک پایگاه داده SQL توزیعشده است که برای اجرای در محیطهای ابری و بدون سرور طراحی شده است. CockroachDB نیز از قابلیت مقیاسدهی خودکار و تحمل خطا پشتیبانی میکند.
مرحله ۱: نصب و راهاندازی CockroachDB
برای راهاندازی CockroachDB بر روی سرور ابری، ابتدا Docker را نصب کنید و سپس از دستورات زیر برای اجرای CockroachDB استفاده کنید:
docker run -d --name cockroachdb -p 26257:26257 -p 8080:8080 cockroachdb/cockroach start --insecure
مرحله ۲: اتصال به CockroachDB
برای اتصال به CockroachDB و اجرای دستورات SQL:
docker exec -it cockroachdb ./cockroach sql --insecure
مرحله ۳: ایجاد پایگاه داده و جدول
در محیط CockroachDB، میتوانید یک پایگاه داده و جدول جدید ایجاد کنید:
CREATE DATABASE mydatabase;
USE mydatabase;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name STRING,
age INT
);
مرحله ۴: درج داده و بازیابی آن
برای درج داده در جدول users
و بازیابی آن:
INSERT INTO users (name, age) VALUES ('John Doe', 30);
SELECT * FROM users;
نتیجهگیری
در این مستندات، به بررسی پایگاه دادههای بدون سرور (Serverless Databases) و نحوه پیادهسازی آنها بر روی سرورهای ابری پرداخته شد. از FaunaDB و CockroachDB به عنوان دو نمونه از پایگاههای داده بدون سرور استفاده شد و مراحل پیادهسازی، اتصال، و مدیریت دادهها توضیح داده شد. با استفاده از این راهنما، شما میتوانید پایگاه دادههای بدون سرور را به راحتی در محیط ابری پیادهسازی کرده و از امکانات پیشرفته آنها بهرهمند شوید.