استخدام CDN لتسريع توصيل المحتوى الثابت

المقدمة

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

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

في هذا البرنامج التعليمي، سنقدم نظرة عامة عالية المستوى عن CDNs وكيفية عملها، بالإضافة إلى الفوائد التي يمكن أن توفرها لتطبيقات الويب الخاصة بك.

ما هو CDN؟

A content delivery network is a geographically distributed group of servers optimized to deliver static content to end users. This static content can be almost any sort of data, but CDNs are most commonly used to deliver web pages and their related files, streaming video and audio, and large software packages.

A CDN consists of multiple points of presence (PoPs) in various locations, each consisting of several edge servers that cache assets from your origin, or host server. When a user visits your website and requests static assets like images or JavaScript files, their requests are routed by the CDN to the nearest edge server, from which the content is served. If the edge server does not have the assets cached or the cached assets have expired, the CDN will fetch and cache the latest version from either another nearby CDN edge server or your origin servers. If the CDN edge does have a cache entry for your assets (which occurs the majority of the time if your website receives a moderate amount of traffic), it will return the cached copy to the end user.

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

يقدم مزودو شبكات توصيل المحتوى (CDN) ميزات إضافية مثل تخفيف هجمات الحرمان من الخدمة الموزعة (DDoS) وتحديد معدل الطلبات، وتحليلات المستخدمين، والتحسينات لحالات الاستخدام المتعلقة بالبث المباشر أو الأجهزة المحمولة بتكلفة إضافية.

كيف تعمل شبكة توصيل المحتوى؟

عندما يزور المستخدم موقعك الإلكتروني، يتلقى أولاً رداً من خادم نظام أسماء النطاقات (DNS) يحتوي على عنوان IP لخادم الويب الخاص بك. ثم يطلب المتصفح محتوى الصفحة الويب، الذي يتكون غالبًا من مجموعة متنوعة من الملفات الثابتة، مثل صفحات HTML وأوراق الأنماط CSS وكود JavaScript والصور.

بمجرد أن تنشر شبكة توصيل المحتوى وتنقل هذه الأصول الثابتة إلى خوادم CDN، سواء عن طريق “دفع” هذه الأصول يدويًا أو السماح لشبكة CDN بـ “سحب” الأصول تلقائيًا (تُغطى كلا الآليتين في القسم التالي)، تقوم بعد ذلك بتعليم خادم الويب الخاص بك بإعادة كتابة روابط المحتوى الثابت بحيث تشير هذه الروابط الآن إلى الملفات المستضافة بواسطة شبكة CDN. إذا كنت تستخدم نظام إدارة المحتوى مثل WordPress، يمكن تنفيذ إعادة كتابة الروابط هذه باستخدام مكون إضافي من طرف ثالث مثل CDN Enabler.

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

آليات التخزين المؤقت تختلف بين مزودي شبكات تسليم المحتوى، ولكن عموماً تعمل على النحو التالي:

  1. عندما تتلقى شبكة تسليم المحتوى طلباً أولياً لموارد ثابتة مثل صورة PNG، ولا تحتوي على تخزين مؤقت للمورد، يجب عليها جلب نسخة من المورد إما من خادم حافة قريب منها أو من الخادم الأصلي نفسه. يُعرف هذا باسم “فقدان التخزين المؤقت”، ويمكن عادة اكتشافه من خلال تفتيش رأس الاستجابة HTTP الذي يحتوي على X-Cache: MISS. سيكون هذا الطلب الأولي أبطأ من الطلبات المستقبلية لأنه بعد إكمال هذا الطلب سيكون المورد قد تم تخزينه على الحافة.
  2. ستُخدم الطلبات المستقبلية لهذا العنصر (نجاحات الذاكرة المؤقتة “cache hits”)، الموجهة إلى هذا الموقع الطرفي، الآن من الذاكرة المؤقتة، حتى انتهاء صلاحيتها (يتم تعيينها عادةً عبر رؤوس HTTP). ستكون هذه الاستجابات أسرع بكثير من الطلب الأولي، مما يقلل بشكل كبير من تأخيرات المستخدمين ويحول حركة الويب إلى شبكة CDN. يمكنك التحقق من أن الاستجابة تم تقديمها من ذاكرة CDN بفحص رأس الاستجابة HTTP، والذي يجب أن يحتوي الآن على X-Cache: HIT.

لمعرفة المزيد حول كيفية عمل CDN معين وتم تنفيذه، استشر وثائق مزود CDN الخاص بك.

في القسم التالي، سنقدم نوعين شائعين من شبكات توصيل المحتوى: push و pull.

Push vs. Pull Zones

يقدم معظم مزودي CDN طريقتين لتخزين بياناتك: مناطق السحب ومناطق الدفع.

المناطق السحب تتضمن إدخال عنوان خادم المصدر الخاص بك، والسماح لشبكة توزيع المحتوى بجلب وتخزين جميع الموارد الثابتة المتاحة على موقعك تلقائيًا. تُستخدم المناطق السحب عادةً لتوصيل ملفات الويب الثابتة التي تتم تحديثها بانتظام وتتراوح حجمها بين الصغير والمتوسط مثل ملفات HTML و CSS و JavaScript. بعد توفير عنوان خادم المصدر الخاص بك لشبكة توزيع المحتوى، يكون الخطوة التالية عادةً إعادة كتابة الروابط إلى الموارد الثابتة بحيث تشير الآن إلى عنوان URL الذي قدمته شبكة توزيع المحتوى. من هذه النقطة وما بعدها، ستتعامل شبكة توزيع المحتوى مع طلبات الموارد الواردة من مستخدميك وتقدم المحتوى من ذاكرتها المؤقتة الموزعة جغرافيًا ومن مصدرك حسب الاقتضاء.

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

فوائد استخدام شبكة توزيع المحتوى

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

سنقوم بشرح هذه وعدة من الفوائد الرئيسية الأخرى المتاحة من استخدام شبكة توزيع المحتوى أدناه.

تفريغ المنشأ

إذا كنت تقترب من سعة النطاق الترددي على خوادمك، فإن تفريغ الأصول الثابتة مثل الصور ومقاطع الفيديو وملفات CSS وJavaScript سيقلل بشكل كبير من استخدام نطاق النطاق الترددي لخوادمك. تم تصميم شبكات توزيع المحتوى وتحسينها لخدمة المحتوى الثابت، وسيتم توجيه طلبات العملاء لهذا المحتوى إلى خوادم CDN الحافة وخدمتها من قبلها. لهذا فإن لديك الفائدة المضافة لتقليل الحمل على خوادم المنشأ الخاصة بك، حيث تخدم هذه البيانات بتردد أقل بكثير.

انخفاض التأخير لتحسين تجربة المستخدم

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

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

إدارة ذروات حركة المرور وتجنب الزمن التوقف

تتيح لك شبكات التوزيع المحتوى (CDNs) التعامل مع ذروات حركة المرور والاندفاعات الكبيرة عبر توازن توزيع الطلبات عبر شبكة كبيرة وموزعة من الخوادم الحافة. من خلال تفريغ وتخزين المحتوى الثابت على شبكة توزيع، يمكنك استيعاب عدد أكبر من المستخدمين المتزامنين باستخدام البنية التحتية الحالية لديك.

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

تقليل التكاليف

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

زيادة الأمان

إحدى الحالات الاستخدام الشائعة الأخرى لشبكات التوزيع المحتوى (CDNs) هي مكافحة هجمات إسقاط الخدمة (DDoS). تتضمن العديد من مقدمي خدمات CDN ميزات لرصد وتصفية الطلبات إلى خوادم الحواف. تقوم هذه الخدمات بتحليل حركة الويب للكشف عن أنماط مشبوهة، وتحجب حركة الهجوم الخبيثة مع الاستمرار في السماح بحركة المستخدمين الموثوق بهم. عادةً ما يقدم مقدمو خدمات CDN مجموعة متنوعة من خدمات مكافحة هجمات DDoS، بدءًا من الحماية الشائعة ضد الهجمات على مستوى البنية التحتية (الطبقات OSI 3 و 4)، إلى خدمات مكافحة التعدي المتقدمة وتحديد معدلات الحد الأقصى.

بالإضافة إلى ذلك، تسمح معظم شبكات CDN بتكوين SSL كامل، بحيث يمكنك تشفير حركة المرور بين CDN والمستخدم النهائي، بالإضافة إلى حركة المرور بين CDN وخوادم الأصل الخاصة بك، باستخدام شهادات SSL المقدمة سواء من قبل CDN أو مخصصة.

اختيار الحل الأفضل

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

قبل تطبيق CDN ، يمكن أن تكون خطوات التحسين الإضافية – مثل تقليص وضغط ملفات JavaScript و CSS، وتمكين ضغط طلبات HTTP لخادم الويب – لها تأثير كبير أيضًا على أوقات تحميل الصفحات واستخدام عرض النطاق الترددي.

A helpful tool to measure your page load speed and improve it is Google’s PageSpeed Insights. Another helpful tool that provides a waterfall breakdown of request and response times as well as suggested optimizations is Pingdom.

الاستنتاج

A content delivery network can be a quick and effective solution for improving the scalability and availability of your web sites. By caching static assets on a geographically distributed network of optimized servers, you can greatly reduce page load times and latencies for end users. In addition, CDNs allow you to significantly reduce your bandwidth usage by absorbing user requests and responding from cache at the edge, thus lowering your bandwidth and infrastructure costs.

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

Source:
https://www.digitalocean.com/community/tutorials/using-a-cdn-to-speed-up-static-content-delivery