وقت البت الأول مقابل CDN؟

ما هي الفروقات بين تحميل الصفحة باستخدام شبكة توصيل المحتوى (CDN) وما هي أنواع مقدمي الخدمة الذين تستخدمونها؟

أواجه أوقات تحميل أطول بكثير عند استخدام شبكة توصيل المحتوى. هل يمكن أن يكون هناك خطأ من جهتي أو أنني لا أعرف شيئًا ما؟ ربما يجب أن أقوم بتعيين بعض الإعدادات التي لا أعرفها؟

سيكون CDN أبطأ حتى يتم تخزين الموارد في ذاكرة التخزين المؤقت. قد تضطر إلى الانتظار بعض الوقت قبل إجراء أي اختبارات.

حسنًا، الدليل الأول… شكرًا لـ. قليلًا. كم بالضبط؟ هل نتحدث عن أيام أم أسابيع؟

هل يجب أن نرسل الحمولة عبر HTTPS أم عبر HTTP؟ أسأل لأن هناك اختلافات في التحميل. على ماذا يعتمد ما إذا كانت الصفحة تُحمّل بالكامل أم تبدو كما لو أن جافا سكريبت الأصلية لم تُحمّل؟

تعتمد المدة الزمنية على كيفية تفاعل المستخدمين مع الموقع. سيتم تحميل الأصول الأكثر تنزيلًا إلى ذاكرة التخزين المؤقت لشبكة CDN، وستكون أسرع إذا كنت أقرب إلى خادم CDN مقارنة بالخادم الأصلي.

إذا كان مركز البيانات بجوارك، وكان خادم CDN يبعد 1000 كم، فستكون العملية دائمًا أبطأ. الفكرة من شبكة CDN هي خدمة جمهور متنوع جغرافيًا بشكل أفضل، وليس تحسين الزيارات المركزية.

لكن هل نتحدث عن حالة ما بعد إضافة عنوان CDN إلى ملف app.yml أم لا؟

وما هو السبب في استخدام نطاق فرعي لعنوان CDN؟ أي لماذا لا يمكن أن يكون DISCOURSE_CDN_URL: //637763234.cdn-provider.com بل يجب أن يكون discourse-cdn.example.com؟

نعم، أعرف ذلك، لكنني أتحقق باستخدام أدوات اختبار مختلفة من العديد من مناطق العالم. وشبكة توصيل المحتوى (CDN) أبطأ دائمًا!

هل تتحدث عن TTFB على أي مسار بالضبط؟

سيكون TTFB للملف الثابت (مثل ملف JS أو صورة JPG تم رفعها بواسطة مستخدم) سريعًا دائمًا عند استخدام شبكة CDN، حيث سيساعد زمن الوصول المنخفض عبر نقاط التواجد (PoP) المتعددة في ذلك.

أما TTFB للمسارات الديناميكية، فمن غير المنطقي مقارنته، لأن متغير DISCOURSE_CDN_URL الخاص بنا لا يغطي تلك المسارات أصلاً.

هل يمكنك توضيح ما تقصده بالضبط؟

أقدّم نتائج اختبار المنتدى. (بالمناسبة، ظهرت النتائج بشكل أسرع قليلاً) // لكن هذا فقط على نطاق جديد بدون محتوى.

وبالنسبة لـ Cloudfront الذي تم إنشاؤه:

ما تراه هو مجرد تباين طبيعي. لن يؤثر CDN على وقت البت الأول في جذر مثيل Discourse الخاص بك أو في أي مسار ديناميكي آخر. سيقوم CDN فقط بتقديم الأصول الثابتة.

وهل هناك فرق إذا كانت هذه الموارد (الأصول الثابتة) محفوظة في S3؟

لا، لا يوجد أي شيء. سيقوم CDN بتخزين هذه الأصول من S3 عند الحاجة.

هذا مجرد عنوان شكلي، ولا حاجة له على الإطلاق.

كنت أأمل أن تسرع شبكة توصيل المحتوى (CDN) من تحميل الصفحة، لكن يبدو أن التأثير سيكون ضئيلاً.

هل توجد طرق أخرى أكثر فعالية لتسريع تحميل الصفحة للأجزاء المختلفة من العالم، بخلاف زيادة موارد الذاكرة العشوائية (RAM) ومعالج وحدة المعالجة المركزية (CPU)؟

TTFB هو الوقت الذي يستغرقه خادم التطبيق لإرسال استجابة 200. لا يمكنك تحسينه باستخدام CDN لأن شبكة CDN تقدم فقط الأصول.

ستُسرع من تحميل الصفحة، لكن ليس أول بايت. ستُسرع تحميل الوسائط المتعددة (الصور، ملفات PDF، والفيديوهات) و JavaScript. هذا سيُحسّن استجابة الموقع، لكن كل المحتوى الديناميكي سيحتاج إلى التحميل من الخادم المركزي.

لذلك، ستكون صور رموز المستخدمين (Avatars) أسرع، على سبيل المثال، لكن ليس عناوين المواضيع.

بما أن Discourse يحجب التصيير انتظارًا لـ JS و CSS، فستظل قادرًا على جعل الصفحة تفاعلية بشكل أسرع من خلال الاستفادة من CDN.

يتطلب هذا النوع من التحليل أكثر من مجرد تشغيل أدوات Lighthouse و WebPageTest بشكل أعمى واختيار نتيجة والتركيز عليها بشكل مفرط.

إذا كانت أولويتك هي الحصول على صفحة ذات درجة أعلى في هذه الأدوات، فأوصي بتشغيل مدونة باستخدام أدوات مثل https://jekyllrb.com/

فكيف يُفترض بي أن أقوم بالتحليل إذن؟