إرشادات شبكة تسليم المحتوى

Azure Storage
Azure Blob Storage

تُعد شبكة تسليم المحتوى (CDN) شبكة موزعة من الخوادم التي يمكنها تسليم محتوى الويب للمستخدمين بكفاءة. تخزن شبكات تسليم المحتوى (CDN) المحتوى المخزن مؤقتًا على خوادم حافة قريبة من المستخدمين النهائيين لتقليل زمن الانتقال.

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

رسم تخطيطي ل CDN

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

يصف هذا الموضوع بعض أفضل الممارسات والاعتبارات العامة عند استخدام شبكة تسليم المحتوى. لمزيد من المعلومات، راجع ⁧⁩Azure CDN⁧⁩.

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

تشمل الاستخدامات النموذجية لشبكة تسليم المحتوى ما يلي:

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

  • تقديم محتوى عام ثابت ومشترك لأجهزة مثل الهواتف المحمولة وأجهزة الكمبيوتر اللوحية. التطبيق عبارة عن خدمة ويب تقدم واجهة برمجة تطبيقات للعملاء الذين يعملون على الأجهزة المختلفة. يمكن لشبكة تسليم المحتوى أيضًا تقديم مجموعات بيانات ثابتة (عبر خدمة الويب) للعملاء لاستخدامها، ربما لإنشاء واجهة مستخدم العميل. على سبيل المثال، يمكن استخدام شبكة تسليم المحتوى لتوزيع مستندات JSON أو XML.

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

  • تدفق ملفات الفيديو للعميل عند الطلب. يستفيد الفيديو من زمن الانتقال المنخفض والاتصال الموثوق به المتاح من مراكز البيانات الموجودة عالميًا والتي توفر اتصالات شبكة تسليم المحتوى. تتكامل خدمات الوسائط من Microsoft Services (AMS) مع شبكة تسليم المحتوى من Azure لتقديم المحتوى مباشرة إلى شبكة تسليم المحتوى لمزيد من التوزيع. للاطلاع على المزيد من المعلومات، راجع نظرة عامة على نقاط النهاية المتدفقة.

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

  • دعم حلول إنترنت الأشياء. يمكن للعدد الهائل من الأجهزة والأجهزة المشاركة في حل إنترنت الأشياء أن يطغى بسهولة على أحد التطبيقات إذا كان عليه توزيع تحديثات البرامج الثابتة مباشرة على كل جهاز.

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

التحديات

يوجد العديد من التحديات التي يجب مراعاتها عند التخطيط لاستخدام شبكة تسليم المحتوى.

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

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

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

  • تحسين محرك البحث (SEO). يتم تقديم المحتوى مثل الصور والمستندات من مجال مختلف عند استخدام شبكة تسليم المحتوى. يمكن أن يكون لهذا تأثير على تحسين محركات البحث لهذا المحتوى.

  • أمان المحتوى. لا تقدم جميع شبكات تسليم المحتوى أي شكل من أشكال التحكم في الوصول إلى المحتوى. تدعم بعض خدمات شبكة تسليم المحتوى، بما في ذلك شبكة تسليم المحتوى من Azure، المصادقة القائمة على الرمز المميز لحماية محتوى شبكة تسليم المحتوى. لمزيد من المعلومات، راجع تأمين أصول شبكة تسليم المحتوى من Azure بمصادقة الرمز المميز.

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

  • المرونة . شبكة تسليم المحتوى هي نقطة فشل واحدة محتملة لتطبيق ما.

تشمل السيناريوهات التي قد تكون فيها شبكة تسليم المحتوى أقل فائدة:

  • إذا كان للمحتوى معدل دخول منخفض، فقد لا يتم الوصول إليه إلا مرات قليلة عندما يكون صالحًا (يتم تحديده من خلال إعداد وقت البقاء فيه).

  • إذا كانت البيانات خاصة، مثل المؤسسات الكبيرة أو النظم البيئية لسلسلة التوريد.

المبادئ التوجيهية العامة والممارسات الجيدة

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

توزيع

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

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

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

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

فكّر في خيارات ضغط الملفات، مثل gzip (GNU zip). يمكن إجراء الضغط على الخادم الأصلي عن طريق استضافة تطبيق الويب أو مباشرة على خوادم الحافة بواسطة شبكة تسليم المحتوى. لمزيد من المعلومات، راجع تحسين الأداء عن طريق ضغط الملفات في شبكة تسليم المحتوى في Azure.

التوجيه وتعيين الإصدار

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

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

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

ضع في اعتبارك تقييد الوصول إلى محتوى شبكة تسليم المحتوى حسب البلد/ المنطقة. تسمح لك شبكة تسليم المحتوى من Azure بتصفية الطلبات بناءً على البلد أو المنطقة الأصلية وتقييد المحتوى المقدم. لمزيد من المعلومات، راجع تقييد الوصول إلى المحتوى وفقًا للبلد/ المنطقة.

عنصر التحكم في ذاكرة التخزين المؤقت

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

للاطلاع على مزيد من المعلومات، راجع كيفية التخزين المؤقت.

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

الأمان

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

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

النسخ الاحتياطي لشبكة تسليم المحتوى

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