هندسة البرمجياتليلة الامتحان دليل لا ضمان سعة — NovaCommerce 5
امتحانان فعليان وخطأ تقليص ونموذج تخطيط مفيد. تميّز الخاتمة المرصود من الاستقراء وكلفة التشغيل والاختبارات المتبقية.
وفّر تجمّعان سعة للتطبيق. الأصعب كان إثبات جاهزية البديل وتصريف القديم والحفاظ على نسخ خدمة متوافقة.
المؤلف
Anichur Rahaman

بعد ساعة من تبديل 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.js | 4 vCPU / 8 GB؛ PHP-FPM |
| هدف CPU | 70% | 70% ثم 55% |
| حد فحص الصحة | يتحقق من رد Next.js | nginx فقط؛ جاهزية التطبيق مستقلة |
| حالة أخرى | تنسيق الذاكرة العامة | عامل ثابت واحد خارج التجمّعات |
أعاد 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
تابع القراءة