تخفيضات الجمعة السوداءخصم يصل إلى 60%
  • خصم 60% على السنة الأولى في الباقات السنوية
  • خصم 45% على التراخيص مدى الحياة
ينتهي خلال
احصل على العرض

جاهزون قبل الامتحان: توسيع عقد الويب واستبدالها — NovaCommerce 2

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

المؤلف

Anichur Rahaman

منذ شهر5 دقيقة قراءة222 مشاهدة
جاهزون قبل الامتحان: توسيع عقد الويب واستبدالها — NovaCommerce 2

بعد ساعة من تبديل DNS للواجهة، ظل الخادم القديم يستقبل نحو 36% من الحركة المسجلة. خُفض TTL إلى 300 ثانية، وفُحص المسار الجديد بتعديل ملف hosts. بقي مدخلان يعملان؛ كان إبقاء القديم صالحًا أهم من إعلان انتهاء التبديل.

NovaCommerce اسم مستعار لمنصة دورات وامتحانات. يحفظ الجزء الثاني ملاحظات الحالة من سبتمبر–أكتوبر 2026؛ ليست معيار StoreConsole أو اختبارات أُعيدت لهذه المراجعة. ميّز الجزء الأول هوية محدد الطلبات وضغط اتصالات Valkey ثم CPU الخلفية. هنا نتتبع طبقة التطبيق.

افصل الطبقات التي تحتاج قرارات مختلفة

نُفذ موازن وتجمّع للواجهة وآخران للخلفية. كانت أسماء DNS منفصلة أصلًا. ناسبت المقاسات وفحوص الصحة وسياسات الاستبدال المستقلة هذا النشر؛ ليس استخدام موازنين شرطًا لكل تطبيق.

استُبدلت قائمة معرفات Droplets ثابتة باكتشاف الخلفية عبر وسم. تدخل العقد الموسومة التجمّع وقواعد الجدار المناسبة. الوسم إعداد وليس دليل جاهزية أو إذن مستخدم. ميزانية الموازنين $48 شهريًا تاريخية وليست عرض سعر حاليًا.

احسب السعة السليمة لا الآلات المطلوبة

ضُبط التجمّعان على 2–10 عقد. لكل واجهة 2 vCPU/4 GB وnginx وحاويتان Next.js؛ ولكل خلفية 4 vCPU/8 GB وnginx/PHP-FPM. هذه اختيارات النشر المقاس. حلقة JavaScript واحدة لا تثبت خمول بقية الأنوية؛ توجد عمليات أصلية ومجموعة عمال أيضًا.

سجل اختبار الواجهة القديم نحو 356 requests/s وp95 بمقدار 0.05 s وصفر أخطاء مُبلّغ عنها وCPU بين 55–60% بعقدتين. دعم ذلك تجربة CPU مشتركة أرخص، لا كل المسارات أو مزاحمة المضيف أو سعة كتابة الإجابات. سعرا العقدتين $28/$56 شهريًا مدخلان تاريخيان كذلك.

الإعداد التاريخيالواجهةالخلفية
نطاق التجمّع2–10 عقد2–10 عقد
لكل عقدة2 vCPU / 4 GB؛ حاويتان Next.js4 vCPU / 8 GB؛ PHP-FPM
هدف CPU70%70% ثم 55%
حد فحص الصحةيتحقق من رد Next.jsnginx فقط؛ جاهزية التطبيق مستقلة
حالة أخرىتنسيق الذاكرة العامةعامل ثابت واحد خارج التجمّعات

وسّع قبل ساعة البداية

أعاد k6 يوم 5 أكتوبر 21:17–21:33 تشغيل GET: من 300–450 requests/s ثم نحو 750 لست دقائق. نما كل تجمّع من عقدتين إلى ثلاث. أخطاء الخادم والمهلات المبلّغ عنها صفر، لكن نحو 4% من الردود HTTP 429 بسبب IP اختبار مشترك. رفض طلب طالب مشروع يبقى فشل عمل؛ لم ينجح مسار الأعمال كاملًا ولم تُختبر كتابة إجابات دائمة.

كان p95 الإجمالي 132–153 ms ولـAPI مقدار 320–705 ms. سجلت الحالة تأخر مقاييس 5–8 دقائق، وفي تشغيل آخر نحو سبع دقائق من CPU خلفية 99% إلى عقدة إضافية. هي ملاحظات هذا الإعداد لا ضمان توقيت عام للمزود. زاد الفريق السعة قبل الامتحان بنحو 45 دقيقة وتحقق من صحتها. دُرس Kubernetes ولم يُنفذ، ولا يضمن بدوره سعة تطبيق جاهزة فورًا.

تسلسل استبدال التطبيق: تجمّعات مستقلة وتوسيع مسبق وجاهزية وقبول بدائل وتصريف قديم وفحص النتائج.
خريطة تعليمية لإجراء الحالة. الجاهزية والتصريف بوابتا دليل؛ أوقات الانتظار القديمة ليست ضمانات عامة.

اثبت قدرة البديل قبل إزالة القديم

سبب أول تغيير قالب دفعة 503 قصيرة. انتظر الإجراء اللاحق جاهزية البدائل وقبول الموازن لها، ثم صرّف القديم قبل الحذف. انتظار 30–40 ثانية تاريخي مرتبط بتلك الفحوص؛ البوابة الآمنة تتحقق من التوجيه والعمل النشط لا المؤقت فقط. للطلبات الطويلة وWebSockets وتقليص المزود حمايات مستقلة.

أجاب nginx وحده عن /lb-health الخلفية. يفيد ذلك للحياة ومفتاح التصريف، لكنه لا يثبت PHP أو مسار قاعدة البيانات. أضف جاهزية تطبيق محدودة ومجسات مسار حقيقي دون استعلام مكلف في كل فحص. سجل النشر اللاحق 219 مجسًا كل ثانيتين بلا أخطاء؛ لا تثبت العينة انعدام انقطاع كل مستخدم.

احتفظ بصور ثابتة مختبرة وتغييرات مخطط وطوابير متوافقة. نسّق البناء ومفاتيح الإجراءات المناسبة وإبطال الذاكرة واختلاف النسخ بين مثيلات Next.js. خزّن الردود العامة المؤهلة فقط، لا جلسة طالب أو صفحة خاصة. اقبل رؤوس الوكيل من مدخل متحكم به؛ IP الممرر ليس هوية طالب أو إذنه.

العقد القابلة للاستبدال تحتاج تعافيًا

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

يجب أن تبقى الواجهة القديمة متوافقة مع استمرار اتصالات وعناوين مخزنة. TTL بقيمة 300 ثانية لا يغلق اتصالًا قائمًا، ولا تحدد نسبة 36% وحدها كل سبب. عكس DNS ليس رجوعًا فوريًا ولا ينبغي أن ينشئ كاتبي قاعدة. بعد كتابات جديدة يجب أن يحفظها التعافي.

النتيجة إجراء جاهزية وتصريف قابل للتكرار، لا وعد بأن كل استبدال لن يلاحظه أحد. يتتبع الجزء الثالث نقل قاعدة البيانات والعميل القديم الذي غاب عن الحصر.

السلسلة

المراجع الأولية

مراجعة: 6 نوفمبر 2026. Anichur Rahaman، مؤسس StoreConsole. الملاحظات التاريخية من سجل المشروع القائم؛ المصادر الأولية للإرشاد العام لا لاختبار إنتاج جديد.

عن الكاتب

Anichur Rahaman

تابع القراءة