دورة حياة بعد الإنشاء
Scale وBackup وRestore وUpgrade وRecovery إجراءات من الدرجة الأولى.

DATABASE LIFECYCLE CONTROL PLANE
Control Plane لدورة حياة عشرة محركات قواعد بيانات مع طوبولوجيا 1/2/3 عقد ودلالات HA أصلية للمحرك وBackup/Restore وUpgrade والتحقق من Runtime.
مكوّنات DBaaS Enterprise: مستوى تحكم واحد وعشرة محركات قواعد بيانات
مشكلة المنتج
Replication وQuorum وBackup وRestore وUpgrade وFailover تختلف بين المحركات. يحافظ DBaaS على هذه الاختلافات ويعرض سطح تشغيل موحداً ودائماً.
Scale وBackup وRestore وUpgrade وRecovery إجراءات من الدرجة الأولى.
تبقى InnoDB وPatroni وSentinel وGalera بدلالاتها الأصلية.
Promotion وFencing وRejoin لها قواعد قبل الحادثة.
Membership وEndpoint وClient I/O يجب أن تؤكد النتيجة.
القدرات
يرى المشغل دورة حياة متسقة بينما يحتفظ كل محرك بنموذج التنسيق الحقيقي الذي يحتاجه.
Engine وVersion وTopology وNodes مع Preflight.
إضافة أعضاء من دون اعتبار عقدتين HA تلقائياً.
نسخ أصلي للمحرك مع Integrity evidence وتحقق بعد Restore.
Version edge مدعوم وBackup Gate وRuntime read-back.
Promotion واعٍ بالمحرك أو Galera routing reconciliation.
Tenant FQDN يبقى ثابتاً عبر تغييرات الطوبولوجيا.
Host/DB telemetry وservice-level probes.
الوصول وكل عملية مضبوطة وقابلة للتتبع في Control Plane.
نموذج النشر
ملفات المحركات العلائقية وKey-value (MySQL وPostgreSQL وRedis وValkey وMariaDB) تبدأ بعقدة واحدة، تمر بعقدتين من دون Failover تلقائي، وتصل إلى HA تلقائي عند ثلاث عقد وفق نموذج التنسيق الأصلي.
| الملف | المحركات | سلوك الفشل | الآلية الأصلية |
|---|---|---|---|
| 1 node | MySQL · PostgreSQL · Redis · Valkey · MariaDB | Non-HA | Single member + stable endpoint |
| 2 nodes | MySQL · PostgreSQL · Redis · Valkey · MariaDB | Automatic failover disabled | Primary/Mirror أو Galera بعقدتين بلا أغلبية |
| 3 nodes | MySQL · PostgreSQL · Redis · Valkey · MariaDB | Automatic HA | InnoDB Cluster · Patroni/etcd · Sentinel · Galera quorum |
المعمارية
القصد وحالة Job الدائمة في Manager؛ أما Runtime وMembership وRouting المحلي فتبقى على عقد قاعدة البيانات.
| الحد | الآلية | العقد التشغيلي |
|---|---|---|
| Manager | Control plane only | ليس DB member أو witness أو quorum voter أو failover target. |
| Stable endpoint | Tenant FQDN | هوية العميل لا تتغير مع topology. |
| Routing | Local Router/HAProxy على DB nodes | الوصول لأي عقدة خدمة يمكن أن يقود للدور الصحيح. |
| Coordination | Engine-native quorum/election | لا witness خارجي لاختراع HA. |
| المرحلة | Authority / Component | العقد التقني |
|---|---|---|
| Admission | Panel / Product API | يتم فحص Engine وTopology وPermission وConfirmation؛ قبول الطلب لا يعني اكتماله. |
| Durable state | PostgreSQL | تُحفظ Operation وJob قبل أي Mutation؛ ولا يُسمح إلا بعملية Mutation نشطة واحدة لكل Tenant، وتُرفض العملية الثانية بدل وضعها في الطابور. |
| Dispatch | Transactional Outbox → RabbitMQ → Celery Worker | نشر العمل مرتبط بالحالة التراكنشية ويستلم Worker تنفيذاً serialized. |
| Execution fence | Execution lease + signed source manifest | يجب أن تطابق شجرة Runtime هوية Release المتوقعة؛ أي Drift يوقف تنفيذ Playbook. |
| Engine execution | Project-local Ansible | يعمل Playbook الأصلي للمحرك فقط على DB nodes الخاصة بالـ Tenant؛ Manager لا يدخل Data Plane. |
| Verification | Engine runtime + stable endpoint | تُقرأ Membership/Quorum وReplication وDNS/TLS وClient read/write من Runtime الحقيقي. |
| Evidence | Job-scoped evidence | النتيجة وCorrelation تبقيان مع نفس Operation؛ HTTP acceptance لا تتحول وحدها إلى Completion. |
دورة الحياة
كل mutation تُقبل وتُحفظ وتُنفذ وتُقرأ من Runtime ثم تُتحقق أو تنتقل إلى حالة استعادة صريحة.
ملفات المحركات
الـ Control Plane مشترك، لكن Replication وElection/Quorum وLocal Routing وBackup وFailover/Recovery تتبع المعمارية الأصلية لكل Engine.

| Engine | Native topology / routing | 1 node | 2 nodes | 3 nodes | Data protection |
|---|---|---|---|---|---|
| MySQL | InnoDB ReplicaSet (1–2) · InnoDB Cluster / Group Replication (3) · MySQL Router على DB nodes | Non-HA | Manual promotion | Automatic HA | XtraBackup |
| PostgreSQL | Patroni + Streaming Replication · etcd + PgBouncer + HAProxy على DB nodes | Non-HA | Manual promotion | Patroni automatic HA | pg_basebackup |
| Redis OSS | Replication + Sentinel + HAProxy؛ تبقى Sentinel والـ Proxy على DB nodes | Non-HA | Manual promotion | Sentinel automatic HA | RDB / AOF |
| Valkey | Replication + Sentinel + HAProxy؛ محرك مستقل وليس alias لـ Redis | Non-HA | Manual promotion | Sentinel automatic HA | RDB / AOF |
| MariaDB | Galera (wsrep) + HAProxy؛ Multi-primary cluster مع Write Target تحت Routing المنتج | Single-member Galera | No automatic failover | Galera quorum HA | MariaBackup / Logical Dump |
| MongoDB | مستندية (Document) | الطوبولوجيا وHA وحماية البيانات وفق الدلالات الأصلية للمحرك نفسه، تحت Control Plane ودورة الحياة نفسيهما. | |||
| ClickHouse | عمودية تحليلية (Columnar / OLAP) | الطوبولوجيا وHA وحماية البيانات وفق الدلالات الأصلية للمحرك نفسه، تحت Control Plane ودورة الحياة نفسيهما. | |||
| OpenSearch | البحث وتحليل السجلات (Search) | الطوبولوجيا وHA وحماية البيانات وفق الدلالات الأصلية للمحرك نفسه، تحت Control Plane ودورة الحياة نفسيهما. | |||
| ScyllaDB | Wide-column | الطوبولوجيا وHA وحماية البيانات وفق الدلالات الأصلية للمحرك نفسه، تحت Control Plane ودورة الحياة نفسيهما. | |||
| Qdrant | متجهية (Vector) | الطوبولوجيا وHA وحماية البيانات وفق الدلالات الأصلية للمحرك نفسه، تحت Control Plane ودورة الحياة نفسيهما. | |||
الحالة والتدفقات
Mutation واحدة نشطة لكل Tenant تمنع تغييرات طوبولوجيا متداخلة؛ Runtime evidence يغلق Job.
لا ينتقل Stable Endpoint إلا بعد إثبات دور Serving الجديد.
يجب التحقق من Recovery Point قبل دخولها إلى Serving Path.
Observed Membership تحدد هل يمكن Rejoin أم يجب Replace.
من Intent إلى Service-level read-back.
النمو من دون اختراع HA بعقدتين.
الحماية تكتمل فقط باستعادة قابلة للتحقق.
تغيير الإصدار staged ويُقرأ من Runtime.
Fencing وQuorum قبل Promotion.
مساران من عمليات Day‑2 لا يقلان أهمية عن Provision الأولي.
إعادة العضو المتعافي من دون إفساد Membership الحالية.
إزالة أو استبدال Hardware مع حماية Quorum والأعضاء السليمة.
| الإجراء | شروط القبول | مالك التنفيذ | معيار النجاح | الفشل / الاستعادة |
|---|---|---|---|---|
| Create Service | Tenant/Project صالحان + Engine/Version + Nodes | DBaaS worker + engine playbook | Membership + endpoint + client I/O | Failed job يحتفظ بالدليل؛ reconcile قبل retry |
| Scale | Cluster صحي + عقدة جديدة محددة | Serialized tenant mutation | Exact member count + replication/quorum | Partial join يُصالح |
| Backup | Engine compatible + destination | Engine-native backup | Artifact + integrity metadata | Incomplete backup invalid |
| Restore | Verified backup + compatibility + maintenance gate | Cluster-locked restore | Service + replication + endpoint + I/O | Unknown outcome يحتاج read-back |
| Upgrade | Supported edge + backup + health | Staged engine-aware upgrade | Exact version + health + client I/O | يُرفض edge غير المدعوم/downgrade؛ التوقف والاستعادة عند المرحلة الفاشلة |
| Failover | Eligible topology + fencing/quorum | Promotion أو Galera routing reconcile | Serving role جديد + stable endpoint | Rejoin/reconcile منفصلان |
سطح المشغل
المشغل يعمل مع نية دورة الحياة بدلاً من تسلسلات Shell محفوظة.
Deployment واعٍ بالمحرك مع Preflight وVerification.
Prepare ثم Join وSync وVerify.
Backup مجدول مع Retention وVerify؛ وNative backup مع Integrity evidence.
Compatibility وService-level verification.
Supported edge وRuntime read-back.
Switchover مخطط وFailover مع Promotion واعٍ بالـ quorum/fencing.
إعادة العقدة إلى عضوية صحيحة.
Topology وReplication وEndpoint وTelemetry.
إنشاء ومنح صلاحيات وتدوير كلمات المرور وحذف عبر مسار Job نفسه.
حالة الشهادات وتجديدها وإعادة إصدارها وتدوير CA المنتج.
ملفات إعداد مناسبة لموارد العقدة تُطبَّق بإعادة تشغيل مرتّبة وآمنة.
Remote MCP بلا سلطة موازية. OAuth 2.1 مع Authorization Code + PKCE: الـ Panel هو Authorization Server وMCP Addon هو Resource Server؛ ويرتبط الـ grant بـ mcp_clients وRBAC وscope وrate-limit القائمة دون نظام وصول ثانٍ.
يبقى Control Plane متسقاً ويحتفظ كل Engine بطوبولوجيته ودلالات فشله الحقيقية.