انتقل إلى المحتوى الرئيسي

الفصل 12.1 - إدارة الإنتاج

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • تطبيق أفضل الممارسات في الإنتاج
  • تكوين صيانة النظام
  • إدارة التحديثات
  • تنفيذ التوافر العالي
  • توثيق الإجراءات
  • إنشاء runbooks

أفضل الممارسات في الإنتاج​

الأمان​

# 1. المستخدمون والأذونات
# - أقل امتياز
# - لا يوجد وصول مباشر لـ root
# - تكوين sudo

# 2. جدار الحماية
# - قواعد تقييدية
# - المنافذ الضرورية فقط
# - مراقبة الاتصالات

# 3. التحديثات
# - منتظمة
# - اختبارها في بيئة staging
# - مخططة

# 4. المراقبة
# - مراقبة مستمرة
# - تكوين التنبيهات
# - سجلات مركزية

الأداء​

# 1. الموارد
# - مراقبة CPU، RAM، القرص
# - تنبيهات العتبات
# - تخطيط التوسع

# 2. التحسين
# - الخدمات الضرورية فقط
# - تكوين التخزين المؤقت
# - تفعيل الضغط

# 3. الصيانة
# - تنظيف منتظم
# - تدوير السجلات
# - أرشفة البيانات

صيانة النظام​

التخطيط​

# نافذة الصيانة
# - ساعات الخمول
# - تواصل الفريق
# - تخطيط التراجع

# قائمة مراجعة الصيانة
# 1. النسخ الاحتياطي قبل
# 2. اختبارات في بيئة staging
# 3. إشعار المستخدمين
# 4. تنفيذ الصيانة
# 5. التحقق بعد الصيانة
# 6. توثيق التغييرات

سكربتات الصيانة​

#!/bin/bash
# سكربت الصيانة الأسبوعي

LOG="/var/log/maintenance-$(date +%Y%m%d).log"

{
echo "=== صيانة $(date) ==="

# تحديث النظام
echo "تحديث الحزم..."
apt update && apt upgrade -y

# تنظيف
echo "تنظيف..."
apt autoremove -y
apt autoclean

# تدوير السجلات
echo "تدوير السجلات..."
logrotate -f /etc/logrotate.conf

# تنظيف السجلات القديمة
echo "تنظيف السجلات القديمة..."
find /var/log -name "*.log" -mtime +30 -delete

# التحقق من مساحة القرص
echo "مساحة القرص:"
df -h

echo "=== نهاية الصيانة ==="
} | tee "$LOG"

استراتيجيات النسخ الاحتياطي​

أنواع النسخ الاحتياطي​

# 1. كامل
# - جميع البيانات
# - طويل، مساحة كبيرة
# - استعادة سريعة

# 2. تزايدي
# - التغييرات فقط
# - سريع، مساحة قليلة
# - استعادة أبطأ

# 3. تفاضلي
# - منذ آخر نسخة كاملة
# - توازن الوقت/المساحة

سكربت النسخ الاحتياطي​

#!/bin/bash
# نسخ احتياطي تلقائي

BACKUP_DIR="/backup"
SOURCE_DIR="/data"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"

# إنشاء النسخة الاحتياطية
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"

# التحقق
if [ $? -eq 0 ]; then
echo "نسخ احتياطي ناجح: $BACKUP_FILE"

# حذف النسخ الاحتياطية > 7 أيام
find "$BACKUP_DIR" -name "backup-*.tar.gz" -mtime +7 -delete
else
echo "خطأ: فشل النسخ الاحتياطي" | mail -s "تنبيه النسخ الاحتياطي" admin@example.com
exit 1
fi

النسخ الاحتياطي باستخدام cron​

# Crontab
# نسخ احتياطي يومي في الساعة 2 صباحًا
0 2 * * * /usr/local/bin/backup.sh

# نسخ احتياطي كامل أسبوعي
0 1 * * 0 /usr/local/bin/backup-full.sh

التوافر العالي​

التكرار​

# 1. خوادم متعددة
# - موازنة التحميل
# - تجاوز الفشل التلقائي
# - تكرار البيانات

# 2. المراقبة
# - فحوصات الصحة
# - كشف الأعطال
# - التحويل التلقائي

# 3. النسخ الاحتياطي
# - نسخ متعددة
# - مواقع مختلفة
# - اختبارات الاستعادة

فحوصات الصحة​

#!/bin/bash
# فحص صحة الخادم

CHECKS_FAILED=0

# التحقق من الخدمات
for service in nginx mysql redis; do
if ! systemctl is-active --quiet "$service"; then
echo "خطأ: $service غير نشط"
CHECKS_FAILED=$((CHECKS_FAILED + 1))
fi
done

# التحقق من مساحة القرص
DISK=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK" -gt 90 ]; then
echo "خطأ: القرص عند ${DISK}%"
CHECKS_FAILED=$((CHECKS_FAILED + 1))
fi

# تنبيه إذا كان هناك مشكلة
if [ "$CHECKS_FAILED" -gt 0 ]; then
echo "تنبيه: $CHECKS_FAILED فحص(ات) فشل(ت)" | \
mail -s "تنبيه فحص الصحة" admin@example.com
exit 1
fi

التوثيق​

Runbooks​

إجراءات التشغيل:

# Runbook: إعادة تشغيل الخدمة

## الهدف
إعادة تشغيل خدمة في الإنتاج

## المتطلبات
- وصول SSH
- أذونات sudo

## الإجراء
1. التحقق من الحالة الحالية
systemctl status service-name

2. إشعار الفريق
# Slack/Email

3. إعادة التشغيل
sudo systemctl restart service-name

4. التحقق
systemctl status service-name
journalctl -u service-name -n 50

5. التوثيق
# سجل الحادثة

توثيق النظام​

# الملفات التي يجب توثيقها:
# - تكوين الخدمات
# - إجراءات الصيانة
# - جهات اتصال الفريق
# - كلمات المرور (تدار بأمان)
# - بنية النظام

الأتمتة​

سكربتات الأتمتة​

#!/bin/bash
# أتمتة مهام الإنتاج

# 1. المراقبة
/usr/local/bin/monitor.sh

# 2. النسخ الاحتياطي
/usr/local/bin/backup.sh

# 3. التنظيف
/usr/local/bin/cleanup.sh

# 4. التقارير
/usr/local/bin/report.sh

cron الإنتاج​

# /etc/cron.d/production
# المراقبة كل 5 دقائق
*/5 * * * * root /usr/local/bin/monitor.sh

# النسخ الاحتياطي اليومي
0 2 * * * root /usr/local/bin/backup.sh

# التنظيف الأسبوعي
0 3 * * 0 root /usr/local/bin/cleanup.sh

# التقرير اليومي
0 8 * * * root /usr/local/bin/report.sh

الملخص​

في هذا الفصل، تعلمت:

أفضل الممارسات: الأمان، الأداء، الصيانة
الصيانة: التخطيط، السكربتات، الإجراءات
النسخ الاحتياطي: الاستراتيجيات، السكربتات، الأتمتة
التوافر العالي: التكرار، فحوصات الصحة، تجاوز الفشل
التوثيق: Runbooks، الإجراءات
الأتمتة: السكربتات، cron الإنتاج


الخطوات التالية​

الفصل 12.2: ضبط الأداء
الفصل 12.3: الأتمتة الكاملة


تم إنشاء الفصل في: ديسمبر 2024