تجاوز إلى المحتوى
استكشف الموقع
لنتحدث عن مشروعك

contact@almousa.dev

منهج التسليم / من الكود إلى التشغيل

الهندسة والتشغيل

نراجع الكود بواسطة شخص آخر، ونعتمد GitHub Actions لتشغيل الاختبارات وبناء المشروع. توضح هذه الصفحة سياسة التسليم والتشغيل؛ يُنفذ كل إجراء ويُتحقق منه ضمن نطاق المشروع واتفاقه، ولا يعني عرضه أن جميع الإعدادات مفعلة في كل مشروع.

من التغيير البرمجي إلى الإنتاج

  1. Git

    تتبع التغييرات وربط كل تعديل بهدف واضح، وإدارته من خلال طلب دمج قابل للمراجعة.

  2. Code Review

    مراجعة التغيير بواسطة شخص آخر. لا يُسمح بالدمج قبل الموافقة، وتتطلب التعديلات اللاحقة مراجعة مجددًا.

  3. CI

    تشغيل الفحوصات الآلية عبر GitHub Actions وربط الدمج بنجاح الفحوصات الإلزامية.

  4. Tests

    التحقق من السلوك المتأثر بالتغيير، وإضافة اختبارات مناسبة لمخاطره ونطاقه.

  5. Build

    إنتاج إصدار محدد وقابل للتتبع بعد نجاح الفحوصات المطلوبة.

  6. Staging

    تجربة الإصدار في بيئة منفصلة عن الإنتاج، ببيانات اختبار وأسرار مستقلة.

  7. Acceptance

    اعتماد الجاهزية التقنية بواسطة المسؤول التقني في الفريق، واعتماد مطابقة المتطلبات بواسطة العميل أو ممثله حسب حجم التغيير، مع توثيق القبول.

  8. Production

    نشر الإصدار المعتمد بصلاحيات محددة، ومنع النشر عند فشل بوابة إلزامية.

  9. Monitoring

    التحقق من سلامة الخدمة بعد النشر ومتابعة التوفر والأداء والأخطاء داخليًا.

مراحل منطقية؛ قد تنفذ الاختبارات والبناء داخل مسار CI نفسه. تحدد بوابات القبول والصلاحيات لكل مشروع قبل النشر.

توضح الأقسام التالية الضوابط المعتمدة للتنفيذ والتحقق ضمن اتفاق المشروع. تشمل المسؤوليات الفعلية فقط ما جرى تحديده في عقد التشغيل أو الدعم.

السجلات — Logging

تقتصر السجلات على المعلومات اللازمة لتشخيص الأعطال ومتابعة التشغيل. تُخفى البيانات الحساسة ويُقيّد الوصول إلى المخولين. تُحدد مدة الاحتفاظ وفق الحاجة التشغيلية، ثم تُحذف السجلات تلقائيًا عند انتهائها. لا تُسجل كلمات المرور أو مفاتيح الوصول أو محتويات الطلبات الحساسة بصورة شاملة.

تتبع الأخطاء — Error Tracking

تُجمع الأخطاء وتُرتب حسب أثرها على الخدمة، مع تنبيهات تساعد المسؤول المحدد على المتابعة والتشخيص. يُراعى تنقيح البيانات قبل إرسالها إلى أداة التتبع، وعدم تحويل التشخيص إلى جمع غير ضروري لبيانات الزوار.

المراقبة — Monitoring

تُعتمد مراقبة آلية للتوفر والأداء والأخطاء، مع تحديد مسؤول يتلقى التنبيهات ويتابعها. تحدد اتفاقية التشغيل أو الدعم ساعات التغطية وزمن الاستجابة وحدود المسؤولية. لا تتضمن هذه السياسة وعدًا بمتابعة بشرية على مدار الساعة أو نسبة توفر محددة.

النسخ الاحتياطي — Backups

تُعتمد نسخ آلية مشفرة ومعزولة عن النظام الأساسي، مع مدة احتفاظ واضحة واختبارات استعادة دورية. يحدد العقد الجهة المسؤولة عن النسخ والمتابعة والاستعادة؛ لا تنتقل المسؤولية تلقائيًا إلى المطور بمجرد تنفيذ الموقع.

يُحدد نطاق النسخ بحسب البيانات الموجودة فعليًا: ملفات الموقع والأصول وإعدادات الاستعادة اللازمة، والبيانات المتغيرة إن وجدت. نجاح مهمة النسخ وحده لا يكفي؛ يلزم التحقق من إمكانية الاستعادة. يُحدد تكرار النسخ ومقدار فقد البيانات المقبول ومدة الاستعادة وفق حاجة الخدمة والاتفاق، دون أرقام غير معتمدة.

التراجع عن الإصدار — Rollback

يُحتفظ بإصدار مستقر وتُجهز آلية تراجع مختبرة، مع فحص سلامة الخدمة بعد النشر وبعد التراجع. تغييرات قواعد البيانات، إن وجدت، تحتاج خطة مستقلة لحماية البيانات والتحقق من توافقها؛ لا يُفترض أن إعادة ملفات التطبيق تسترجع البيانات تلقائيًا.

إدارة الأسرار — Secrets Management

تُحفظ كلمات مرور الخدمات ومفاتيح API في مدير أسرار مخصص، مع فصل أسرار الاختبار عن الإنتاج وتقييد الوصول بحسب الحاجة. لا توضع الأسرار في الكود أو ملفات الواجهة العامة أو السجلات. تُلغى وتُغيّر عند الاشتباه بتسربها، وتُراجع صلاحيات الوصول إليها.