خدمات شبکه توزیع محتوا یا همان CDN برای کسب‌وکارهایی که در زمینه ارائه انواع محتوا به کاربران فعال هستند، یک نیاز ضروری است. بعنوان مثال موارد زیر را در نظر بگیرید تا متوجه شوید که بعضی از موارد پرکاربرد CDN چیست:

• پلتفرم‌های رسانه‌های اجتماعی که نیاز به ارائه محتوای چند رسانه‌ای به کاربران دارند.
• وب‌سایت‌های مختلف مانند آپارات، کافه‌بازار، دیجی‌کالا که محتوای متنوع تحت وب با کیفیت بالا را ارائه می‌دهند.
• پلتفرم‌های تجارت الکترونیک و فروشگاه‌های اینترنتی با میلیون‌ها مشتری.
• شرکت‌های بازی‌سازی با محتوای گرافیکی سنگین که توسط کاربران در مناطق جغرافیایی مختلف قابل دسترسی هستند.


نسل اول شبکه توزیع محتوا

اولین تکرار شبکه‌های توزیع محتوا عمدتاً بر ارائه محتوای پویا و ثابت متمرکز بود، زیرا تنها این دو نوع محتوا در وب بودند. سازوکار اصلی در آن زمان ایجاد و پیاده‌سازی کپی‌ها، مسیریابی هوشمند و روش‌های رایانش در سرور لبه (Edge Server) بود. اپلیکیشن‌ها و اطلاعات در سرورها تقسیم می‌شدند.

 
نسل دوم شبکه توزیع محتوا

در نسل دوم، شبکه‌های توزیع محتوایی آمدند که بر پخش محتوای ویدیویی و صوتی یا خدمات ویدیویی بر حسب تقاضا مانند نتفلیکس برای کاربران و خدمات خبری تمرکز داشتند. این نسل همچنین مسیری را برای ارائه محتوای وب‌سایت‌ها به کاربران موبایل باز کرد و شاهد استفاده از فنون P2P و رایانش ابری بودیم.


نسل سوم شبکه توزیع محتوا

نسل سوم شبکه‌‌‌های توزیع محتوا همان جایی است که ما اکنون در آن قرار گرفته‌ایم و هنوز با تحقیق و توسعه جدید در حال تکامل است. می‌توانیم انتظار داشته باشیم که شبکه‌‌‌های توزیع محتوا در آینده بطور فزاینده‌ای برای جامعه به یک مدل تبدیل شود. این بدان معنی است که سامانه‌ها توسط کاربران متوسط ​​و افراد عادی هدایت می‌شوند. انتظار می‌رود که خودپیکربندی و خودمدیریتی تحویل خودکار محتوا سازوکار فناوری جدید باشد.

شبکه‌های توزیع محتوا یا CDN در ابتدا برای مقابله با فشارهای شدید پهنای باند تکامل یافتند، زیرا تقاضای پخش ویدئو همراه با تعداد فراهم‌سازان شبکه توزیع محتوا در حال افزایش بود. با پیشرفت‌های ارتباطی و روند مصرف جدید در هر نسل، قیمت خدمات شبکه‌‌‌ توزیع محتوا CDN نیز کاهش یافت و باعث شد تا به یک فنآوری برای عموم تبدیل شود.

همانطور که رایانش ابری همچون سرور ابری و سرور مجازی به طور گسترده پذیرفته شد، شبکه‌‌‌های توزیع محتوا یا همان CDN نیز نقش کلیدی در تمام لایه‌های عملیات کسب‌وکارها ایفا کرده‌اند. این شبکه‌ها کلید مدل‌هایی مانند SaaS (خدمات ابری نرم‌افزار)، IaaS (خدمات ابری زیرساخت)، PaaS (خدمات ابری پلتفرم) و BPaaS (خدمات ابری فرایند کسب‌وکار) هستند.


شبکه‌‌ توزیع محتوا چگونه کار می‌کند؟

شبکه‌های توزیع محتوا با کاهش فاصله فیزیکی بین کاربر و مبدا (یک وب‌سایت یا یک سرور اپلیکیشن) کار می‌کنند. این خدمات شامل یک شبکه توزیع‌شده محلی و یا جهانی از سرورها است که محتوا را بسیار نزدیک‌تر از مبدا در سرور ذخیره می‌کند. برای درک بهتر این موضوع، به بررسی نحوه دسترسی کاربر به محتوای یک وب‌سایت‌، با استفاده و بدون استفاده از شبکه‌‌‌ توزیع محتوا می‌پردازیم تا متوجه شویم که نحوه کارکرد CDN چیست.


بدون استفاده از شبکه توزیع محتوا (CDN)


زمانی که کاربر وارد یک آدرس وب‌سایت را در مرورگر وارد می‌کند، ارتباطی مشابه شکل زیر برقرار می‌کند.

آدرس وب‌سایت با استفاده از Local DNS یا LDNS (مانند سرور DNS ارائه‌شده توسط ISP یا یک سرور DNS عمومی) به یک آدرس IP تبدیل می‌شود. اگر DNS یا LDNS نتواند آدرس IP را پیدا کند، به صورت بازگشتی از سرورهای DNS بالادستی خود سوال می‌کند. در نهایت، درخواست ممکن است به سرور Authoritative DNS که زون مربوطه در آن میزبانی شده، ارسال می‌شود. این سرور DNS آدرس را پیدا می‌کند و آن را به کاربر برمی‌گرداند.



سپس مرورگر کاربر، مستقیماً به سرور مبدا متصل شده و محتوای وب‌سایت‌ را دانلود می‌کند. هر درخواست بعدی مستقیماً توسط سرور مبدا تحویل داده می‌شود و محتوای ثابت به صورت محلی در رایانه کاربر ذخیره می‌شوند. اگر کاربر دیگری از یک مکان مشابه یا دیگری سعی کند به همان سایت دسترسی پیدا کند، همین توالی را طی خواهد کرد. در هر بار، درخواست‌های کاربر به سرور مبدا ارسال می‌شوند و سرور مبدا با ارسال محتوا پاسخ می‌دهد. هر مرحله در طول مسیر یک تاخیر یا “Delay” به آن اضافه می‌کند. اگر سرور مبدأ دور از کاربر واقع شده باشد، زمان پاسخ‌گویی، از تأخیر قابل توجهی رنج می‌برد و تجربه کاربری نامطلوبی را ارائه می‌دهد.
 

حال همین روند را با استفاده از شبکه‌ توزیع محتوا توضیح می‌دهیم. به تصویر زیر دقت کنید:



اما با حضور شبکه‌ توزیع محتوا یا همان CDN، فرایند کمی متفاوت است. هنگامی که درخواست‌های DNS توسط کاربر ارسال می‌شوند، آن درخواست توسط LDNS وی دریافت می‌شود و آن درخواست‌ به یکی از سرورهای DNS شبکه‌ توزیع محتوا ارسال می‌شوند. این سرورها بخشی از زیرساخت Global Server Load Balancer (یا “GSLB”) هستند. GSLB به عملکرد تعادل بار (Load Balancing) کمک می‌کند که به‌معنای واقعی کل اینترنت را اندازه‌گیری می‌کند و اطلاعات مربوط به همه منابع موجود و بازده آنها را ردیابی می‌کند.

با این دانسته، GSLB درخواست DNS را با استفاده از بهترین آدرس سرور لبه (معمولاً در نزدیکی کاربر) پیدا می‌کند. یک “لبه” مجموعه‌ای از سرورها است که محتوای وب را ذخیره موقت (کَش) و ارائه می‌کند. پس از تکمیل درخواست DNS، کاربر درخواست HTTPS را به سرور لبه ارسال می‌کند. هنگامی که سرور لبه درخواست را دریافت می‌کند، سرورهای GSLB به سرورهای لبه کمک می‌کنند تا درخواست‌ها را در مسیر بهینه به سرور مبدا ارسال کنند. سپس سرورهای لبه داده‌های درخواستی را دریافت کرده و آن‌ها را به کاربر درخواست‌کننده تحویل می‌دهند و آن داده‌ها را به صورت محلی ذخیره می‌کنند.

تمام درخواست‌های بعدی کاربر از مجموعه داده‌های محلی بدون نیاز به پرس‌‎وجو مجدد از سرور مبدا تحویل داده می‌شوند. محتوای ذخیره شده در سرور لبه حتی اگر به هر دلیلی سرور منبع در دسترس نباشد، قابل تحویل است.


چرا باید از شبکه‌ توزیع محتوا استفاده کنیم؟

شبکه‌‌های توزیع محتوا با به حداقل رساندن تأخیر در شبکه، بهبود عملکرد وب‌سایت و کاهش هزینه‌های پهنای باند به کسب‌وکارها کمک می‌کنند تا محتوا را به‌طور مؤثرتری به کاربران تحویل دهند. یکی دیگر از ویژگی‌های منحصر به فرد شبکه‌‌های توزیع محتوا این است که به سرورهای لبه این اجازه را می‌دهد که محتوا را از قبل دریافت کنند. این کار تضمین می‌کند که داده‌هایی که قرار است تحویل داده شوند در تمام مراکز داده شبکه توزیع محتوا یا CDN ذخیره می‌شوند. در اصطلاح شبکه توزیع محتوا، این مراکز داده نقطه حضور یا “پاپ” نامیده می‌شوند.

پاپ‌ها با نزدیک کردن فاصله محتوای وب به مکان بازدیدکننده وبسایت، به کاهش زمان رفت و برگشت کمک می‌کنند. به عنوان مثال، فرض کنید که شما یک کمپین تبلیغاتی برپا می‌کنید و خدمات یا محصولات خود را در میان میلیون‌ها مشتری بالقوه تبلیغ می‌کنید. احتمالا انتظار دارید که تعداد زیادی از مشتریان پس از خواندن پست به وب‌سایت شما مراجعه کنند. اگر با اینفلوئنسرهایی سروکار دارید که نرخ تعامل با مخاطبان خوبی دارند، حجم ترافیک می‌تواند افزایش بیشتری داشته باشد. آیا می‌توانید مطمئن باشید که سرور مبدأ شما می‌تواند این افزایش حجم بازدیدکننده را مدیریت کند؟

در چنین سناریویی، شبکه‌‌های توزیع محتوا یا همان CDN می‌توانند به توزیع بار بین سرورهای لبه کمک کنند و اطمینان دهند که همه بازدیدکنندگان، پاسخی از وب‌سایت شما دریافت خواهند کرد. از آنجایی که تنها بخش کوچکی از درخواست‌های کاربران به سرور مبدأ می‌رسند، سرورهای شما افزایش شدید ترافیک، خطاهای ۵۰۲ و کانال‌های شبکه بالادستی بیش از حد را تجربه نخواهند کرد.


مقابله با حملات DDoS

از آنجایی که شبکه‌‌ توزیع محتوا CDN در لبه شبکه مستقر است، به عنوان یک حصار مجازی با امنیت بالا در برابر حملات به وب‌سایت و اپلیکیشن تحت وب شما عمل می‌کند. زیرساخت‌های توزیع‌شده و موقعیت روی لبه نیز یک شبکه‌‌ توزیع محتوا را برای مسدود کردن سیل DDoS ایده‌آل می‌کند. از آنجایی که باید با این سیل‌ها خارج از هسته زیرساخت شبکه شما مقابله شود، شبکه‌‌ توزیع محتوا یا همان CDN آن‌ها را بر اساس منشأ، روی پاپ‌های مختلف پردازش می‌کند و از اشباع سرور مبدا جلوگیری می‌کند.


مسدود کردن ربات‌ها و خزنده‌ها

شبکه‌‌‌های توزیع محتوا یا CDN همچنین می‌توانند تهدیدها را مسدود کرده و ربات‌ها و خزنده‌های سوء استفاده کننده را از استفاده از پهنای‌باند و منابع سرور شما محدود کنند. این عمل به محدودسازی سایر حملات و هک نیز کمک می‌کند و هزینه‌های پهنای باند شما را کاهش می‌دهد.


شتاب‌دهی به محتوای ثابت و پویا

محتوای ثابت به آن دسته از دارایی‌های شما اشاره دارد که قبل از تحویل به کاربران نیازی به تولید، پردازش یا اصلاح ندارند. این محتواها ممکن است تصاویر یا سایر فایل‌های رسانه‌ای، انواع فایل‌های باینری یا بخش‌های ثابت اپلیکیشن شما مانند HTML، CSS، کتابخانه‌های جاوا اسکریپت، یا حتی JSON، HTML یا هر نوع پاسخ پویا که اغلب تغییر نمی‌کنند، باشد. همانطور که قبلا ذکر شد، می‌توانید از قبل چنین محتوایی را ذخیره‌سازی موقت  کنید. سپس، زمانی که باید چنین محتوایی را از بین برده و آن را از سرورهای لبه حذف کنید، می‌توانید مسیرهای مورد نظر را پاک‌سازی (Purge) کنید.

شتاب‌دهی پویا (داینامیک) برای چیزی اعمال می‌شود که به دلیل ماهیت پویایی آن نمی‌توان روی سرور لبه ذخیره‌سازی موقت (کَش) کرد. یک اپلیکیشن که از WebSocket استفاده می‌کند را تصور کنید که به رویدادها از یک سرور یا API گوش می‌دهد، که پاسخ آ‌ن‌ها بسته به اعتبار، موقعیت جغرافیایی یا سایر پارامترها متفاوت است. در این حالت به سختی می‌توان از سرورهای ذخیره‌سازی موقت در لبه که کاری شبیه ذخیره‌سازی برای محتوای ثابت انجام می‎دهند استفاده کرد. در برخی موارد، یکپارچگی بیشتر بین اپلیکیشن و شبکه توزیع محتوا ممکن است کمک کند اما در مواردی هم چیزی غیر از ذخیره‌سازی موقت باید استفاده شود.

برای شتاب‌دهی به محتوای پویا، زیرساخت شبکه بهینه‌سازی‌شده شبکه‌های توزیع محتوا و الگوریتم‌های مسیریابی درخواست/پاسخ پیشرفته استفاده می‌شود.