5.4النشر (deployment) و CI/CD (Render، Railway، VPS)
الأساسي في 30 ثانية
- النشر = الوضع على الخط : تشغيل التطبيق على خادم متاح — PaaS بسيطة للبدء، وVPS للتحكم.
- CI/CD = تسليم تلقائي : عند كل دفع، الاختبار (CI) ثم النشر إذا نجح كل شيء (CD) — انتهى النشر اليدوي المحفوف بالمخاطر.
- الأسرار خارج الشيفرة : الإعداد والأسرار في متغيرات البيئة — أبدا في الشيفرة ولا في Git.
حالة مصغرة متسلسلة — ساليم يضع على الخط في الجزائر
واجهة ساليم المحوسبة تدور جيدا — لكن فقط على أجهزة الفريق في الجزائر. ينشرها على منصة : مستودع موصول، ومتغيرات بيئة مُدخَلة على المنصة، و HTTPS مفعَّل. ثم يضيف خط أنابيب : عند كل دفع، تدور الاختبارات، ولا يتبعها النشر إلا إذا نجحت. الحلقة الأخيرة من الحالات 5.1-5.3 — يسلّم ساليم خدمة حقيقية على الخط.
الحلقة الأخيرة من الحالات 5.1-5.3 — يختم ساليم التنميط والأداء ودوكر بالإنتاج.
1. النشر : PaaS أم VPS
النشر (deployment) يشغّل التطبيق على خادم متاح عبر الإنترنت (بدلا من localhost). تبسّط منصات PaaS كل شيء : نصل مستودع Git خاصتنا، فتبني المنصة وتشغّل، وتدير الخادم و HTTPS والتوسيع الأساسي — مع مستوى دخول متاح للبدء — مثالية للبدء. وفي الطرف الآخر، يعطي VPS (خادم افتراضي مستأجَر) مزيدا من التحكم لكن مزيدا من المسؤوليات : تثبيت Node، والضبط، والتأمين، وإدارة PM2، ووسيط عكسي، و HTTPS — أعقد، لكنه مكوِّن. وتقدم السحب الكبيرة لوحة قوية بمنحنى تعلم. يبدأ ساليم بمنصة PaaS : فواجهته على الخط باتباع توثيق المنصة، دون إدارة خادم.
التوصية : PaaS لوضع مشاريعكم على الخط بسرعة، و VPS لتعلم الإدارة أو كسب التحكم، والسحابة للحاجات المتقدمة.
2. CI/CD وأساسيات الإنتاج
يؤتمت CI/CD مسار الشيفرة ← الإنتاج. التكامل المستمر : عند كل دفع، يشغّل خط الأنابيب الاختبارات والتدقيق ليمسك المشاكل مبكرا. والنشر المستمر : إذا نجح كل شيء، يُنشَر الرمز تلقائيا. وتنشئ GitHub Actions خطوط الأنابيب هذه. الفوائد : الأتمتة (لا حركات يدوية مضنية بعد)، والموثوقية (لا شيء معطوب يذهب إلى الإنتاج)، والسرعة (التسليم غالبا بثقة)، والتتبع (كل نشر مربوط بمساهمة). الأساسيات : متغيرات البيئة (الإعداد + الأسرار، أبدا في الشيفرة / Git)، وHTTPS، والسجلات والمراقبة، وبيئات منفصلة (dev / staging / prod). يكتب ساليم أول خط أنابيب له : التثبيت، والاختبار، والنشر إذا كان أخضر — فهو التتويج، لا الإنشاء فقط بل التسليم.
وحتى بسيطا، يغيّر خط الأنابيب كل شيء : فالاختبارات لا تُنسى أبدا قبل نشر.
3. الاختيار دون خطأ
المفاضلة الجوهرية : البساطة مقابل التحكم. PaaS : بساطة قصوى، وتحكم دقيق أقل، واعتماد على المنصة — مثالية للبدء وكثير من المشاريع. VPS : تحكم كامل ومرونة، لكنكم تديرون كل شيء (الأمن، والتحديثات، والنسخ الاحتياطي) — مكوِّن، وأكثر تطلبا. ولنموذج أولي أو تمرين، يكفي نشر يدوي ؛ ومتى صار المشروع جادا، أو يُنشَر بانتظام، أو مع فريق، فحتى CI/CD بسيط يجلب قيمة حقيقية. يقارن ساليم عروض المستضيفين (الصيغ والحدود تتطور غالبا، فيتحقق من التوثيق الحالي لحظة الاختيار) ويجعل اختيار البنية الحساسة مصادَقا عليه من مديرية الأنظمة (DSI) قبل كشف بيانات حقيقية.
وفي كل الحالات، تبقى الأساسيات : الأسرار في متغيرات البيئة، و HTTPS، والسجلات والمراقبة، وبيئات منفصلة.
🔎 مثال ملموس — خط أنابيب ساليم
عند كل دفع : التثبيت، والاختبار، والنشر إذا كان أخضر.
# GitHub Actions (.github/workflows/ci.yml)
# عند كل دفع (push) :
# npm install ← npm test ← النشر إذا كان أخضر
# الأسرار والإعداد : متغيرات بيئة المنصة
# PaaS : تبني من المستودع، و HTTPS تلقائي
القراءة : خط الأنابيب هو البوابة : لا شيء معطوب يمر.
الدرس : الأسرار تعيش في البيئة، أبدا في الشيفرة.
مفردات القسم
- النشر
- تشغيل التطبيق على خادم متاح عبر الإنترنت.
مثال بسيط: واجهة ساليم تغادر localhost نحو عنوان عمومي.
ما ليس كذلك: نسخ الملفات باليد دون خط أنابيب.
رد فعل: هل تطبيقي متاح خارج جهازي ؟
- PaaS
- منصة تبني التطبيق وتستضيفه من مستودع Git.
مثال بسيط: يصل ساليم مستودعه، فتدير المنصة الخادم و HTTPS.
ما ليس كذلك: خادم نديره بأنفسنا.
رد فعل: هل أحتاج التحكم، أم البساطة ؟
- VPS
- خادم افتراضي مستأجَر نديره بأنفسنا.
مثال بسيط: سيثبّت ساليم فيه Node و PM2 و HTTPS بنفسه.
ما ليس كذلك: منصة تدير البنية التحتية.
رد فعل: هل أنا مستعد لتحمل الأمن والصيانة ؟
- CI/CD
- خط أنابيب يختبر عند كل دفع وينشر إذا نجح كل شيء.
مثال بسيط: دفع ساليم يطلق الاختبارات ثم الوضع على الخط تلقائيا.
ما ليس كذلك: نشر يدوي بضربات أوامر.
رد فعل: هل يمكن لدفع أن يذهب إلى الإنتاج دون اختبارات ؟
- متغيرات البيئة
- الإعداد والأسرار توفرها البيئة، خارج الشيفرة.
مثال بسيط: مفتاح ساليم يعيش على المنصة، أبدا في Git.
ما ليس كذلك: سر مكتوب صلبا في الشيفرة.
رد فعل: هل يتسكع سر في مستودعي ؟
في التطبيق — نشر تطبيق وأتمتته
- انشروا تطبيق Node على منصة PaaS بسيطة : صِلوا مستودع Git خاصتكم، فتبني المنصة التطبيق وتشغّله، مع HTTPS.
- اضبطوا متغيرات البيئة على المنصة (الأسرار، والإعداد) — أبدا في الشيفرة ولا Git.
- ضعوا خط أنابيب CI/CD (GitHub Actions) : عند كل دفع، شغّلوا الاختبارات وانشروا تلقائيا إذا نجح كل شيء.
- أمّنوا أساسيات الإنتاج : HTTPS، والسجلات / المراقبة، وبيئات منفصلة (dev / staging / prod).
نص جاهز للقول — إعلان الوضع على الخط
« واجهتنا جاهزة للخروج من localhost : أنشرها على منصة — مستودع موصول، وأسرار في متغيرات البيئة، و HTTPS مفعَّل. وأضيف خط أنابيب بسيطا : اختبارات عند كل دفع، ونشر فقط إذا نجح كل شيء. وقبل كشف بيانات حقيقية، أجعل اختيار البنية مصادَقا عليه من مديرية الأنظمة. »
يُقال للمسؤول لاعتماد الوضع على الخط ومسار مديرية الأنظمة في البيانات الحساسة.
نموذج للنسخ واللصق — خط CI عام
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm install
- run: npm test
فردي / ميزانية صغيرة
ساليم وحده : تكفي PaaS + خط أنابيب يختبر عند كل دفع — دون خادم يُدار.
شركة صغيرة جدا / فريق مصغر
بيئتا dev و prod منفصلتان، والأسرار على المنصة : كل دفع مُختبَر قبل الوضع على الخط.
شركة صغيرة ومتوسطة في الجزائر
يجعل ساليم المستضيف والوصول مصادَقا عليهما من مديرية الأنظمة في الجزائر قبل كشف بيانات زبائن حقيقية.
فريق يبدأ
ثنائي : أحدهما يكتب خط الأنابيب، والآخر يتحقق من الأسرار و HTTPS ؛ ومراجعة قبل أول نشر تلقائي.
✓ ممارسات جيدة
- ابدؤوا بمنصة PaaS : بسيطة، و HTTPS مُدار.
- ضعوا الإعداد والأسرار في متغيرات البيئة (أبدا في Git).
- أتمتوا الاختبارات + النشر بخط أنابيب CI/CD (GitHub Actions).
✗ أخطاء شائعة
- وضع الأسرار في الشيفرة أو مستودع Git.
- النشر دون HTTPS (كلمات سر وبيانات مكشوفة).
- النشر يدويا وعلى العمى (دون اختبارات مؤتمتة مسبقا).
النقاط الأساسية
- النشر (deployment) : تشغيل التطبيق على خادم متاح (بدلا من localhost). PaaS (بسيطة) أو VPS / سحابة (مزيد من التحكم).
- CI/CD (GitHub Actions) يؤتمت الشيفرة ← الإنتاج : CI (الاختبار عند كل دفع)، CD (النشر إذا نجح كل شيء). أتمتة، وموثوقية، وسرعة، وتتبع.
- أساسيات الإنتاج : متغيرات البيئة (الإعداد + الأسرار، أبدا في الشيفرة / Git)، و HTTPS، والسجلات / المراقبة، وبيئات منفصلة.
- هو تتويج المسار : لا إنشاء تطبيق فقط، بل تسليمه — خدمة حقيقية، على الخط، وموثوقة.
تحدي 48 ساعة — طبّق غدا
انشروا تطبيقا واحدا على منصة (مستودع موصول + HTTPS) مع أسراره في متغيرات البيئة : هل يطلق دفع الاختبارات ؟
- أستطيع شرح CI مقابل CD في جملة واحدة.
- تطبيقي على الخط (HTTPS) دون سر في Git.
- أعرف متى أنتقل من PaaS إلى VPS.
أسئلة شائعة
PaaS أم VPS أم سحابة : كيف أختار أين أنشر تطبيق Node خاصتي ؟
حسب حاجتكم ومستواكم. تبسّط منصات PaaS كثيرا : نصل مستودع Git خاصتنا، فتبني المنصة التطبيق وتشغّله، وتدير الخادم و HTTPS والتوسيع الأساسي — مثالية للبدء ولكثير من المشاريع. وVPS (خادم افتراضي مستأجَر) يعطي مزيدا من التحكم لكن مزيدا من المسؤوليات : تديرون كل شيء (Node، و PM2، والوسيط العكسي، و HTTPS) — أعقد، لكنه مكوِّن. وتقدم السحب الكبيرة لوحة قوية بمنحنى تعلم. التوصية : ابدؤوا بمنصة PaaS لوضع مشاريعكم على الخط ؛ وانتقلوا إلى VPS لتعلم الإدارة ؛ واستكشفوا السحابة للحاجات المتقدمة. قارنوا العروض لحظة الاختيار (فهي تتطور) واجعلوها مصادَقا عليها من مديرية الأنظمة قبل كشف بيانات حساسة.
لماذا نضع CI/CD، وهل هو ضروري للمشاريع الصغيرة ؟
يؤتمت CI/CD مسار الشيفرة نحو الإنتاج : CI (عند كل دفع، يتحقق خط الأنابيب — اختبارات، وتدقيق)، وCD (إذا نجح كل شيء، نشر تلقائي). الفوائد : الأتمتة (انتهى اليدوي المضني المحفوف بالمخاطر)، والموثوقية (لا شيء معطوب يذهب إلى الإنتاج)، والسرعة (التسليم غالبا بثقة)، والتتبع (كل نشر مربوط بمساهمة). ولنموذج أولي للرمي، ليس صارما. ومتى صار المشروع جادا، أو يُنشَر بانتظام، أو مع فريق، فحتى خط أنابيب بسيط يجلب قيمة حقيقية. ابدؤوا بسيطا : التثبيت، والاختبار، والنشر إذا نجح كل شيء.
ماذا يفعل خط أنابيب CI/CD ؟