معظم الفرق الصغيرة لا تحتاج Kubernetes. بل تحتاج نشرا موثوقا يعمل على VPS واحد مع نسخ تثق بها وتراجع بثوانٍ. والنمط الشائع هو Docker Compose مع Postgres وRedis ونظام محتوى وNext.js بوضع standalone على سيرفر واحد يُنشر عبر GitHub Actions بـ SSH.
يغطي هذا الدليل خط الأنابيب للاستخدام الإنتاجي.
1. بنية تناسب الفرق الصغيرة
مضيف واحد يشغل Postgres 16 مع pgvector للبحث وRedis للتخزين والطوابير وخلفية النظام وواجهة Next.js وCaddy لـ TLS. والملفات إلى تخزين S3 مع دورة يومية للأرشيف البارد. وCloudflare في الأمام لـ DNS وCDN وWAF.
ولماذا لا Kubernetes. فهي تضيف ترقيات عناقيد وشبكات وكلفة لا يقدر عليها فريق مطورين. وملفات Compose مقروءة وقابلة للفرق في git وقابلة للاستعادة من أي مستقل. وعندما تتجاوز مضيفا واحدا حوالي 50 ألف طلب يومي افصل قاعدة البيانات أولا لا المنسق.
ولـ Next.js ابنِ output standalone للحفاظ على الصور تحت 200MB. وللنظام ثبت النسخ الثانوية ولقط المخطط في git عند كل تغيير. ولـ Postgres فعّل أرشفة WAL إلى S3 من اليوم الأول.
2. خط GitHub Actions خطوة بخطوة
مراحل الخط هي فحص وتحقق نوع واختبارات وحدة وبناء ودفع صورة ثم نشر. والفحص يجب أن يشمل منع الوعود العائمة للمدفوعات. والتحقق صارم. والاختبارات تغطي تقريب ضريبة وتحليل webhook ومساعدي RTL. والبناء يستخدم تخزين طبقات.
ومهمة النشر تتصل SSH بمفتاح نشر مقيد وتسحب وسم الصورة الجديد وتشغل الترحيل مع نسخة أولا ثم تعيد الخدمات واحدة واحدة مع فحوص صحة. وفحص الصحة يضرب /api/health الذي يفحص DB وRedis والقرص. وإذا فشل مرتين تستعيد المهمة الوسم السابق تلقائيا.
وأبق صورتين على المضيف دائما للتراجع الفوري. ونظام الوسوم latest مع sha. والتراجع تبديل وسم Compose وإعادة تحت 30 ثانية.
3. ترحيل قاعدة بدون توقف
خزن لقطات مخطط النظام مع ترحيلات SQL في git. وقبل النشر pg_dump إلى S3 بطابع. وطبق الترحيل مع مهلات عبارة وقفل لتتجنب أقفال الجداول بساعات عمل السعودية. ولتغييرات خطرة مثل إضافة NOT NULL للطلبات افعل توسع ثم املأ ثم قيد عبر نشرين.
واختبر الاستعادة شهريا على مضيف تجريبي. ونسخة غير مختبرة ليست نسخة. ووثق خطوات الاستعادة عربيا وإنجليزيا ليتابع المناوب 2 فجرا.
4. النسخ والمراقبة والأسرار
نسخ يومية مشفرة Postgres مع ملفات إلى S3 مع احتفاظ 30 يوما وأرشيف 6 سنوات لفواتير فاتورة. وثبات Redis مع AOF. والأسرار في GitHub Environments مع خزنة مضيف وليست في ملفات Compose أبدا. ودور كلمات الإدارة وتوكن API ربعيا.
وراقب القرص فوق 80 بالمئة والذاكرة وانتهاء الشهادات تحت 14 يوما وعمر طابور زاتكا فوق 12 ساعة. وفحوص استمرارية من الدمام والرياض لا أوروبا فقط. ونبه واتساب مع إيميل للمناوب العربي.
5. نشر بدون توقف على مضيف واحد
والحيلة إعادة حاويات التطبيق بينما Postgres وRedis تعمل مع إعادة Cloudflare لـ 502 خمس ثوانٍ. وانشر بنوافذ منخفضة مثل 4 فجرا توقيت الرياض. وأعلن صيانة بالعربية على صفحة الحالة فقط عندما يحتاج ترحيل DB قفلا حصريا.
والخلاصة الممل والقابل للاستعادة يتفوق على المبهرج. وملف Compose واحد وخط واحد وصورتان واستعادات مختبرة وrunbooks عربية. وهذا DevOps للفرق الصغيرة.





