Postgres وMySQL وRedis مُدارة
استخدم إضافات قواعد البيانات المُدارة من المنصّة عبر الخدمات الموجودة في المشروع نفسه.
إضافات مُدارة
تعمل Postgres وMySQL وRedis المُدارة كخدمات مُقيّدة من المنصّة داخل مشروعك. تُنشئها وتديرها من لوحة التحكم، وتصلك بيانات الدخول عبر ربط الخدمات (service link)، دون أن تضعها في متغيّرات البيئة (environment variables) العادية.
تتولّى المنصّة إدارة محرّكات القواعد، وهي ثابتة: Postgres 16 وMySQL 8.4 وValkey 8 (المحرّك المتوافق مع Redis). تختار المحرّك وفئة الخادم (instance class)، وتتكفّل المنصّة بتشغيل الباقي وتحديثه.
أين تجد قواعد البيانات
Databases عنصر رئيسي في الشريط الجانبي للوحة التحكم. افتحه لترى كل قاعدة بيانات مُدارة في مشاريعك، مع محرّكها ومشروعها وحالتها ومواردها المحجوزة. من هنا تستطيع إنشاء قاعدة جديدة أو فتح صفحة تفاصيل أيّ قاعدة.
إنشاء قاعدة بيانات
اضغط New database لفتح نافذة الإنشاء. تختار:
- Project: المشروع الذي تنضمّ إليه القاعدة. لا تصل إليها سوى الخدمات الموجودة في المشروع نفسه، عبر DNS الداخلي.
- Engine: PostgreSQL أو MySQL أو Redis.
- Name: اسم سهل التذكّر. تحوّله المنصّة إلى slug (تراه أسفل الحقل مباشرةً بالصيغة التي سيُنشَر بها).
- Instance class: حزمة موارد ثابتة لها اسم. الذاكرة هي العنوان الأبرز، ويأتي
معها vCPU في الحزمة نفسها، فتختار الفئة بحسب حجم البيانات التي تحتاج أن تبقى في
الذاكرة. تتشارك Postgres وMySQL سُلّماً متوازناً (من
db.microحتىdb.xlarge)، بينما تستخدم Redis سُلّماً مُحسَّناً للذاكرة (منcache.microحتىcache.xlarge). تجد حدود هذه الفئات في إضافة Postgres أو MySQL أو Redis مُدارة. - Storage: مساحة قرص محجوزة للقاعدة، يُحدَّد حجمها بمعزل عن فئة الخادم. يمكن للمساحة أن تكبر لاحقاً لكنها لا تصغر أبداً.
- Version: تظهر لـPostgres (16) وMySQL (8.4). إصدار المحرّك مُدار، فلكلّ محرّك خيار واحد مدعوم. وتعمل Redis على Valkey 8.
- Redis options: لـRedis فقط، مفتاح persistence (مُفعَّل افتراضياً؛ أوقفه
إن أردت خادماً للكاش فقط) وeviction policy (سياسة الإخلاء،
maxmemory_policy، القيمة الافتراضيةallkeys-lru).
بإرسال النموذج تُنشأ القاعدة وتنتقل مباشرةً إلى صفحة تفاصيلها، حيث تُجهَّز في الخلفية.
تغطية النسخ الاحتياطي والاستعادة
تختلف التغطية بحسب المحرّك؛ فكلمة «مُدارة» لا تعني أن لكل المحرّكات مسار التعافي نفسه:
- يظهر لكل من PostgreSQL وMySQL تبويب Backups & restore للنسخ الاحتياطية عند الطلب والاستعادة إلى نقطة زمنية. تنشئ الاستعادة قاعدة جديدة كي تختبرها قبل إعادة ربط التطبيقات.
- لا توفّر المنصّة لـ Redis (Valkey) اليوم نسخاً احتياطية أو استعادة إلى نقطة زمنية. يتحكم خيار حفظ البيانات في طريقة كتابة Redis محلياً، ولا يُعد نسخة مستقلة.
لا تنشر المنصّة هدف RPO أو RTO واحداً يشمل المحرّكات الثلاثة. احتفظ بنسخة مستقلة ومُختبَرة من البيانات المهمة.
صفحة التفاصيل
تضمّ صفحة تفاصيل القاعدة بطاقة اتصال (connection card) وقسم الخدمات المربوطة (linked services).
تعرض بطاقة الاتصال تفاصيل الاتصال الداخلي التي تملؤها المنصّة عنك:
- Internal host: اسم DNS داخل العنقود. يستخدم دائماً namespace المشروع الذي
تديره المنصّة:
- مضيف Postgres للقراءة والكتابة:
<service>-rw.<namespace>.svc.cluster.local:5432. - مضيف MySQL:
moco-<service>-primary.<namespace>.svc.cluster.local:3306. - مضيف Redis:
<service>.<namespace>.svc.cluster.local:6379.
- مضيف Postgres للقراءة والكتابة:
- Port: المنفذ
5432(Postgres) أو3306(MySQL) أو6379(Redis). - Connection variable: متغيّر البيئة الذي يقرؤه تطبيقك:
DATABASE_URLلـPostgres وMySQL، وREDIS_URLلـRedis.
لا تُظهر البطاقة كلمة المرور أبداً. لا تُحقَن بيانات الدخول إلا عند ربط القاعدة بتطبيق Docker، وتبقى محفوظة في Kubernetes Secret.
كيف تصل بيانات الدخول إلى تطبيقك
لن ترى كلمة المرور أو تنسخها أو تضبطها يدوياً أبداً. من صفحة تفاصيل القاعدة،
استخدم Link to container لاختيار تطبيق Docker في المشروع نفسه. عندها
تَحقِن المنصّة متغيّر الاتصال (DATABASE_URL لـPostgres وMySQL، وREDIS_URL
لـRedis) في ذلك التطبيق كرابط اتصال واحد (المضيف مع بيانات الدخول)، موصولاً
بـKubernetes Secret عبر secretKeyRef، ثم تعيد تشغيل التطبيق ليصبح المتغيّر
متاحاً. يقرأ تطبيقك هذا المتغيّر الواحد بدل أن يكتب مضيفاً أو كلمة مرور.
القاعدة هي دائماً المزوِّد (provider) في الربط، أمّا المستهلك (consumer) فهو تطبيق Docker عام. وتعرض قائمة الخدمات المربوطة في صفحة التفاصيل كل تطبيق موصول بهذه القاعدة.
لإضافة قاعدة بيانات وربطها خطوةً بخطوة، راجع
إضافة Postgres أو MySQL أو Redis مُدارة. كما تشرح
تلك الصفحة مسار الـAPI (curl) للأتمتة.