Control Plane ی DBaaS Enterprise و موتورهای پایگاه داده روی سکوهای جدا.

DATABASE LIFECYCLE CONTROL PLANE

DBaaS EnterpriseDatabase Operations, not just Provisioning

DBaaS Enterprise ده موتور دیتابیس را زیر یک Control Plane مشترک اما Engine-aware اداره می‌کند. Provision، Scale، Backup/Restore، Upgrade، Failover/Recovery، Stable Endpoint و Runtime Verification در یک چرخه‌ی عملیاتی یکپارچه قرار می‌گیرند.

MySQLPostgreSQLRedis OSSValkeyMariaDBMongoDBClickHouseOpenSearchScyllaDBQdrant

اجزای DBaaS Enterprise: یک Control Plane و ده موتور دیتابیس

  1. ۱Control Planeپذیرش درخواست، RBAC و عملیات ماندگار برای همه‌ی موتورها؛ Manager عضو مسیر داده‌ی سرویس نیست.
  2. ۲وضعیت ماندگار عملیاتهر عملیات پذیرفته‌شده پیش از اجرا در PostgreSQL ثبت می‌شود و از طریق Transactional Outbox به Worker می‌رسد.
  3. ۳Worker و اتوماسیونWorker با Execution Lease و Source Manifest Fence اجرا را قفل می‌کند و Ansible را روی نودهای دیتابیس اجرا می‌کند.
  4. ۴MySQLInnoDB ReplicaSet برای ۱ و ۲ نود و InnoDB Cluster / Group Replication در ۳ نود؛ MySQL Router روی نودهای دیتابیس.
  5. ۵PostgreSQLPatroni با Streaming Replication و etcd؛ PgBouncer و HAProxy در کنار نودهای دیتابیس.
  6. ۶MariaDBGalera چندنویسنده (Multi-primary) با HAProxy؛ سه عضو حدنصاب HA را فراهم می‌کنند.
  7. ۷Redis OSSReplication، Sentinel و HAProxy؛ Failover خودکار دو نودی عمداً غیرفعال است.
  8. ۸Valkeyهمان مدل Replication + Sentinel + HAProxy با شناسه‌ی پایدار FQDN برای کلاینت.
  9. ۹MongoDBپایگاه داده‌ی سندمحور؛ توپولوژی و HA با semantics بومی همین موتور، زیر همان Control Plane.
  10. ۱۰ClickHouseپایگاه داده‌ی ستونی برای تحلیل؛ توپولوژی و HA با semantics بومی همین موتور، زیر همان Control Plane.
  11. ۱۱OpenSearchجست‌وجو و تحلیل لاگ؛ توپولوژی و HA با semantics بومی همین موتور، زیر همان Control Plane.
  12. ۱۲ScyllaDBپایگاه داده‌ی Wide-column؛ توپولوژی و HA با semantics بومی همین موتور، زیر همان Control Plane.
  13. ۱۳Qdrantپایگاه داده‌ی برداری؛ توپولوژی و HA با semantics بومی همین موتور، زیر همان Control Plane.
۰۱PROBLEM & OUTCOME

مسئله‌ی محصول

راه‌اندازی کردن دیتابیس ساده است؛ اداره‌کردن آن سخت است.

Replication، Quorum، Backup، Restore، Upgrade و Failover در هر موتور رفتار متفاوتی دارند. DBaaS این تفاوت‌ها را به فرایندهای روشن تبدیل می‌کند تا اپراتور به‌جای حفظ دستورالعمل‌های عملیاتی پراکنده، یک مسیر عملیاتی واحد داشته باشد.

۰۱DAY-2 OPERATIONS

روز دوم مهم‌تر از روز اول

ساخت سرویس فقط نقطه‌ی شروع است؛ تغییر ظرفیت، نگه‌داری و بازیابی باید همان‌قدر ساده و کنترل‌شده باشند.

۰۲ENGINE SEMANTICS

هر موتور منطق خودش را دارد

موتورها با یک abstraction مصنوعی یکسان نمی‌شوند؛ تفاوت واقعی Replication، Quorum و Failover حفظ می‌شود.

۰۳FAILURE

خرابی یک حالت طراحی‌شده است

Promotion، Fencing، Quorum و بازیابی از قبل در مدل محصول جای دارند و در زمان حادثه اختراع نمی‌شوند.

۰۴TRUTH

موفقیت از خود محیط اجرا خوانده می‌شود

پذیرفته‌شدن درخواست کافی نیست؛ عضویت، Replication، Endpoint و خواندن/نوشتن باید نتیجه را تأیید کنند.

۰۲CAPABILITY SNAPSHOT

نمای قابلیت‌ها

از ساخت سرویس تا بازیابی، یک سطح عملیاتی واحد.

قابلیت‌ها حول چرخه‌ی عمر واقعی سرویس سازمان‌دهی شده‌اند، نه حول منوهای فنی هر موتور.

۰۱PROVISION

ساخت سرویس دیتابیس

انتخاب موتور، نسخه، توپولوژی و نودها همراه با Preflight قبل از تغییر.

۰۲SCALE

مقیاس‌دهی متناسب با توپولوژی

افزودن عضو با آماده‌سازی، عضویت، همگام‌سازی و بررسی سلامت پس از هر مرحله.

۰۳BACKUP / RESTORE

پشتیبان‌گیری و بازیابی

بررسی سازگاری، Integrity و بازگردانی تا تأیید کامل سرویس.

۰۴UPGRADE

ارتقای کنترل‌شده

مسیر نسخه‌ی مجاز، Backup، Health Gate و بازخوانی وضعیت نسخه‌ی محیط اجرا.

۰۵FAILOVER

Failover و Promotion

رفتار متناسب با موتور و توپولوژی با حفاظت از Quorum.

۰۶ENDPOINT

Endpoint پایدار

نام سرویس ثابت می‌ماند و Routing محلی نودها تغییر Primary را پوشش می‌دهد.

۰۷OBSERVABILITY

مانیتورینگ واقعی

Host و DB Metrics از منبع واقعی خوانده می‌شوند و نبود داده جعل نمی‌شود.

۰۸SECURITY

TLS، RBAC و Audit

دسترسی و عملیات در Control Plane کنترل و قابل‌ردیابی می‌مانند.

۰۳TOPOLOGY / DEPLOYMENT MODEL

مدل استقرار

Topology متناسب با معماری هر موتور.

پروفایل‌های رابطه‌ای و Key-value (MySQL، PostgreSQL، Redis، Valkey و MariaDB) از ۱ نود شروع می‌شوند و همان سرویس می‌تواند به ۲ و ۳ نود رشد کند. توپولوژی ۲ نود عمداً HA تلقی نمی‌شود: در MySQL، PostgreSQL، Redis و Valkey مسیر Primary/Mirror با Promotion صریح است و در MariaDB دو عضو Galera اکثریت لازم برای Failover خودکار ندارند. HA خودکار در توپولوژی سه‌نودی و با quorum/election بومی همان موتور فعال می‌شود.

اندازهموتورهارفتار خرابیمدل عملیاتی
۱ نودMySQL · PostgreSQL · Redis · Valkey · MariaDBNon-HA / single-member serviceRuntime بومی موتور با Stable Endpoint و Local Router/Proxy؛ بدون ادعای افزونگی.
۲ نودMySQL · PostgreSQL · Redis · Valkey · MariaDBAutomatic failover disabledMySQL/PostgreSQL/Redis/Valkey: Primary + Mirror با Promotion صریح؛ MariaDB: Galera دو عضوی بدون quorum اکثریت.
۳ نودMySQL · PostgreSQL · Redis · Valkey · MariaDBAutomatic HAInnoDB Cluster، Patroni/etcd، Sentinel یا Galera quorum بر اساس semantics بومی همان موتور.
۰۴ARCHITECTURE

معماری

Control Plane از Data Plane جدا می‌ماند.

درخواست ابتدا Admit و Persist می‌شود، سپس Worker عملیات مخصوص هر موتور را اجرا می‌کند و در پایان نتیجه از محیط اجرا خوانده و به شواهد تبدیل می‌شود.

ENTRYPanel / APITenant، Project، موتور، توپولوژی و Permission.
↓
DURABLE STATEمرجع عملیات و JobOperation پیش از هر تغییر Persist می‌شود و وضعیت، Lock و Correlation دارد.
↓
EXECUTIONموتور AutomationAction مخصوص موتور روی نودهای همان سرویس اجرا می‌شود.
↓
DATA PLANEنودهای دیتابیس + Local Proxy/Routerخود دیتابیس، Replication، Routing محلیِ موتور و Endpoint behavior.
مرزقرارداد فنیاثر عملیاتی
ManagerControl Plane onlyعضو DB، quorum، witness، Router/Proxy مستقل یا Failover target نیست.
Stable endpointTenant FQDNClient با یک نام پایدار به سرویس می‌رسد؛ تغییر topology نام سرویس را عوض نمی‌کند.
RoutingRouter/Proxy روی همان DB nodesStale DNS همچنان به یک DB node می‌رسد و Routing محلی مسیر درست را حفظ می‌کند.
CoordinationEngine-native quorum/electionetcd، Sentinel، Group Replication و Galera روی خود DB nodeها اجرا می‌شوند؛ witness خارجی وجود ندارد.
TECH

Execution Pipeline. در DBaaS پذیرش درخواست با موفقیت عملیات یکی نیست؛ مسیر mutation تا زمانی که Runtime read-back و Evidence کامل نشوند به پایان نمی‌رسد.

مرحلهAuthority / Componentقرارداد فنی
AdmissionPanel / Product APIEngine، topology، permission و confirmation بررسی می‌شوند؛ درخواست صرفاً Admit می‌شود.
Durable statePostgreSQLOperation و Job پیش از mutation پایدار می‌شوند؛ هر tenant فقط یک mutation فعال دارد و درخواست دوم به‌جای قرارگرفتن در صف رد می‌شود.
DispatchTransactional Outbox → RabbitMQ → Celery Workerانتشار کار از state تراکنشی جدا نمی‌شود و Worker اجرای serialized را می‌گیرد.
Execution fenceExecution lease + signed source manifestRuntime tree باید با release identity مورد انتظار هم‌خوان باشد؛ drift اجرای playbook را متوقف می‌کند.
Engine executionProject-local AnsiblePlaybook بومی همان Engine فقط روی DB nodeهای tenant اجرا می‌شود؛ Manager وارد Data Plane نمی‌شود.
VerificationEngine runtime + stable endpointMembership/quorum، replication، DNS/TLS و client read/write از محیط واقعی دوباره خوانده می‌شوند.
EvidenceJob-scoped evidenceنتیجه و correlation با همان Operation نگه‌داری می‌شود؛ HTTP acceptance به completion تبدیل نمی‌شود.
۰۵LIFECYCLE

چرخه‌ی عمر

چرخه‌ی عمر دیتابیس باید تکرارپذیر باشد.

هر مرحله ورودی، محدودیت، Health Gate و بازخوانی وضعیت خودش را دارد؛ از اولین Preflight تا بازیابی.

۰۱ساختپیش‌بررسی، موتور، نسخه، توپولوژی
۰۲مقیاس‌دهیآماده‌سازی، عضویت، همگام‌سازی
۰۳پشتیبان‌گیریArtifact و Integrity
۰۴بازیابی Restoreپیش‌بررسی، بازگردانی، تأیید
۰۵ارتقاEdge، مرحله‌بندی، read-back
۰۶FailoverFence، Promote یا Reconcile
۰۷Rejoinهمگرایی عضویت
۰۸خروج عضوحذف امن عضو
۰۶ENGINE PROFILES

پروفایل موتور

ده موتور، هر کدام با semantics بومی خودش، زیر یک Control Plane.

Control Plane مشترک است، اما Replication، Election/Quorum، Local Routing، Backup و Failover/Recovery هر موتور با معماری Native خودش مدل می‌شود.

مسیر DBaaS Enterprise برای ده موتور دیتابیس: نیازسنجی، انتخاب موتور، ساخت توپولوژی، عملیات و پایش، پشتیبان‌گیری و بازیابی، مقیاس و Failover.
EngineNative topology / routing۱ نود۲ نود۳ نودData Protection
MySQLInnoDB ReplicaSet (1–2) · InnoDB Cluster / Group Replication (3) · MySQL Router روی DB nodesNon-HAManual promotionAutomatic HAXtraBackup
PostgreSQLPatroni + Streaming Replication · etcd + PgBouncer + HAProxy روی DB nodesNon-HAManual promotionPatroni automatic HApg_basebackup
Redis OSSReplication + Sentinel + HAProxy؛ Sentinel و Proxy روی همان DB nodesNon-HAManual promotionSentinel automatic HARDB / AOF
ValkeyReplication + Sentinel + HAProxy؛ موتوری مستقل، نه alias برای RedisNon-HAManual promotionSentinel automatic HARDB / AOF
MariaDBGalera (wsrep) + HAProxy؛ Multi-primary cluster با Write Target تحت Routing محصولSingle-member GaleraNo automatic failoverGalera quorum HAMariaBackup / Logical Dump
MongoDBسندمحور (Document)توپولوژی، HA و Data Protection با semantics بومی همان موتور، زیر همان Control Plane و چرخه‌ی عمر.
ClickHouseستونی و تحلیلی (Columnar / OLAP)توپولوژی، HA و Data Protection با semantics بومی همان موتور، زیر همان Control Plane و چرخه‌ی عمر.
OpenSearchجست‌وجو و تحلیل لاگ (Search)توپولوژی، HA و Data Protection با semantics بومی همان موتور، زیر همان Control Plane و چرخه‌ی عمر.
ScyllaDBWide-columnتوپولوژی، HA و Data Protection با semantics بومی همان موتور، زیر همان Control Plane و چرخه‌ی عمر.
Qdrantبرداری (Vector)توپولوژی، HA و Data Protection با semantics بومی همان موتور، زیر همان Control Plane و چرخه‌ی عمر.
۰۷ACTION & WORKFLOW CONTRACT

فلو و State Machine

پذیرش درخواست، موفقیت عملیات نیست.

هر mutation به Job پایدار تبدیل می‌شود؛ عملیات یک tenant با هم overlap نمی‌کنند و موفقیت فقط پس از read-back از Engine، endpoint و client path ثبت می‌شود.

۰۱AdmissionENGINE · TOPOLOGY · RBAC
۰۲PersistDURABLE OPERATION
۰۳QueuedQUEUED
۰۴ExecuteRUNNING
۰۵Read-backVERIFYING
۰۶TerminalSUCCEEDED / FAILED
FAILOVER PATH

Failover با Fencing و Quorum

Stable Endpoint فقط پس از اثبات نقش جدید جابه‌جا می‌شود.

STABLE ENDPOINT
↓
PRIMARY
⇄
REPLICA
↓
QUORUM
+ FENCE
Failure → membership read-back → fence → promotion → route update → client verify
RECOVERY FORK

Restore: Promote یا Abort

Recovery point پیش از ورود به serving path باید verify شود.

BACKUP + CHECKSUM
↓
RESTORE
VALID?
↓
PROMOTE
RESTORED
↙ ↘
ABORT
ISOLATE
Compatibility · ownership · disk · engine health · client read/write
RECONCILIATION LOOP

Rejoin / Replace Loop

Observed membership تعیین می‌کند عضو باید Rejoin شود یا Replace.

DESIRED
MEMBERS
→
RECONCILE
↓
READ
BACK
↑
OBSERVED
MEMBERS
←
DRIFT /
FAILED NODE
Rejoin eligibility → re-seed if needed → membership sync → endpoint verify
ADDITIONAL OPERATIONAL FLOWS

فلوهای عملیاتی تکمیلی

دو مسیر Day‑2 که در عملیات واقعی به‌اندازه‌ی Provision مهم‌اند.

Action / FlowAdmission / PreconditionsExecution / LockSuccess CriterionFailure / Recovery
Create Database ServiceTenant/Project، Engine/Version، topology و node inventory معتبرJob serialization؛ Ansible فقط روی DB nodeهای همان tenantMembership/quorum، Stable Endpoint، DNS/TLS و client read/write تأیید شوندFailure با Job/Evidence حفظ می‌شود؛ قبل از retry وضعیت runtime دوباره خوانده می‌شود
Scale 1→2→3Cluster سالم، member count فعلی و عضو جدید دقیقاً شناخته‌شدهعضو جدید قبل از membership mutation آماده می‌شود؛ retained nodeها sanitize نمی‌شوندتعداد دقیق اعضا، replication/quorum و هم‌خوانی endpoint تأیید شونددر failure عضویت نیمه‌کاره reconcile می‌شود؛ عملیات متداخل پذیرفته نمی‌شود
BackupEngine/version و مقصد/فضا قابل‌استفاده؛ Job متداخل وجود نداردBackup بومی موتور با metadata و integrity evidenceArtifact/metadata و integrity قابل‌خواندن و قابل‌ردیابی باشندBackup ناقص success تلقی نمی‌شود و مبنای Restore قرار نمی‌گیرد
RestoreBackup checksum، ownership/mode، free disk، compatibility و maintenance state بررسی شدهRestore تحت cluster lock و مسیر مخصوص EngineService + membership/replication + endpoint + DNS/TLS + client read/writeOutcome نامعلوم نیازمند reconcile است؛ completion از صرف خروج ابزار استنتاج نمی‌شود
UpgradeUpgrade edge صریح، backup تأییدشده و health gate اولیهمرحله‌ای با lock؛ نسخه در هر مرحله read-back می‌شودExact runtime version و health و client read/write بعد از upgradeUnsupported/downgrade edge رد می‌شود؛ failure در همان مرحله متوقف و بازیابی می‌شود
Failover / RecoveryTopology باید اجازه دهد؛ fencing/quorum قبل از mutation بررسی می‌شودPromotion برای Primary-based engines یا routing/quorum reconciliation برای GaleraPrimary/route/quorum جدید + Stable Endpoint + client I/O از runtime تأیید شودMinority partition force-promote نمی‌شود؛ rejoin/reconcile مسیر مستقل recovery است
۰۸OPERATIONS CATALOG

کاتالوگ عملیات

عملیات مهم، همان‌جایی که اپراتور انتظار دارد.

کاتالوگ عملیات حول هدف کاربر سازمان‌دهی می‌شود، نه دستورهای داخلی موتور.

Create Database Serviceساخت سرویس با موتور، Version و توپولوژی مشخص.
Scaleافزودن عضو و همگام‌سازی بدون دست‌کاری نودهای Retained.
BackupBackup زمان‌بندی‌شده با Retention و Verify؛ همراه با Metadata و Integrity قابل‌بررسی.
Restoreبازگردانی همراه با Endpoint و Client Read/Write verification.
Upgradeحرکت روی مسیرهای Version مجاز با کنترل‌های مرحله‌ای.
FailoverSwitchover برنامه‌ریزی‌شده و Failover؛ Promotion/Fencing برای موتورهای Primary-based و quorum و Routing reconciliation برای Galera.
بازیابیRejoin، Reconcile و بازگرداندن سرویس به حالت پایدار.
Observeسلامت نود، موتور، Replication، Endpoint و Metrics.
کاربر و دیتابیسساخت، دسترسی، چرخش رمز و حذف کاربر و دیتابیس از همان مسیر Job.
TLSوضعیت، تمدید و صدور دوباره‌ی گواهی‌ها و چرخش CA محصول.
Tuningاعمال پروفایل پیکربندی متناسب با منابع نود، با ری‌استارت ترتیب‌دار و امن.
MCP

Remote MCP بدون authority موازی. OAuth 2.1 با Authorization Code + PKCE در Panel نقش Authorization Server را دارد و MCP Addon نقش Resource Server؛ grant نهایی به همان mcp_clients، RBAC، scope و rate-limit موجود متصل می‌شود و یک سیستم دسترسی دوم نمی‌سازد.

دیتابیس را به‌عنوان یک سرویس اداره کنید، نه یک مجموعه دستورالعمل عملیاتی.

DBaaS Enterprise فاصله‌ی میان دانش موتور و عملیات تکرارپذیر را کم می‌کند.

بازگشت به محصولات 4SO ←