شبکه تحویل محتوا (Content Delivery Network) چیست؟
شبکه تحویل محتوا (CDN) شبکهای از سرورهای بههمپیوسته است که سرعت بارگذاری صفحات وب را برای برنامههای کاربردی سنگین دادهای افزایش میدهد. CDN میتواند مخفف «شبکه تحویل محتوا» یا «شبکه توزیع محتوا» باشد. هنگامی که کاربری از یک وبسایت بازدید میکند، دادههای آن وبسایت باید از سرور آن وبسایت در سراسر اینترنت به کامپیوتر کاربر منتقل شوند. اگر کاربر از نظر جغرافیایی از سرور دور باشد، بارگذاری یک فایل بزرگ، مانند ویدئو یا تصویر وبسایت، زمان زیادی طول خواهد کشید. در عوض، محتوای وبسایت روی سرورهای CDN که از نظر جغرافیایی به کاربران نزدیکتر هستند ذخیره میشود و بسیار سریعتر به کامپیوترهای آنها میرسد.
چرا CDN مهم است؟
هدف اصلی شبکه تحویل محتوا (CDN) کاهش تأخیر یا کاهش تأخیر در ارتباطات ناشی از طراحی شبکه است. به دلیل ماهیت جهانی و پیچیده اینترنت، ترافیک ارتباطی بین وبسایتها (سرورها) و کاربران آنها (کلاینتها) باید مسافتهای فیزیکی زیادی را طی کند. این ارتباط همچنین دوطرفه است، با درخواستهایی که از کلاینت به سرور ارسال میشود و پاسخهایی که بازمیگردد.
CDN با معرفی سرورهای واسطه بین کلاینت و سرور وبسایت، کارایی را بهبود میبخشد. این سرورهای CDN برخی از ارتباطات کلاینت-سرور را مدیریت میکنند. آنها ترافیک وب به سرور وب را کاهش میدهند، مصرف پهنای باند را کم میکنند و تجربه کاربری برنامههای شما را بهبود میبخشند.
مزایای CDN چیست؟
شبکههای تحویل محتوا (CDN) مزایای زیادی ارائه میدهند که عملکرد وبسایت را بهبود میبخشند و از زیرساخت اصلی شبکه پشتیبانی میکنند. به عنوان مثال، یک CDN میتواند وظایف زیر را انجام دهد:
کاهش زمان بارگذاری صفحه
ترافیک وبسایت ممکن است کاهش یابد اگر زمان بارگذاری صفحات شما بیش از حد طولانی باشد. CDN میتواند نرخ پرش (خروج کاربران) را کاهش دهد و زمان صرفشده توسط کاربران در سایت شما را افزایش دهد.
کاهش هزینههای پهنای باند
هزینههای پهنای باند هزینه قابل توجهی هستند زیرا هر درخواست ورودی وبسایت پهنای باند شبکه را مصرف میکند. از طریق کشسازی و سایر بهینهسازیها، CDNها میتوانند مقدار دادهای که سرور اصلی باید ارائه دهد را کاهش دهند و هزینههای میزبانی را برای صاحبان وبسایت کاهش دهند.
افزایش دسترسیپذیری محتوا
بازدیدکنندگان بیش از حد در یک زمان یا خرابیهای سختافزاری شبکه میتوانند باعث از کار افتادن وبسایت شوند. خدمات CDN میتوانند ترافیک وب بیشتری را مدیریت کنند و بار روی سرورهای وب را کاهش دهند. همچنین، اگر یک یا چند سرور CDN از کار بیفتند، سرورهای عملیاتی دیگر میتوانند جایگزین آنها شوند تا خدمات بدون وقفه ادامه یابد.
بهبود امنیت وبسایت
حملات توزیعشده انکار سرویس (DDoS) تلاش میکنند با ارسال حجم زیادی از ترافیک جعلی به وبسایت، برنامهها را از کار بیندازند. CDNها میتوانند با توزیع بار بین چندین سرور واسطه، این قلههای ترافیکی را مدیریت کنند و تأثیر آنها بر سرور اصلی را کاهش دهند.
تاریخچه فناوری CDN چیست؟
فناوری شبکه تحویل محتوا (CDN) در اواخر دهه ۱۹۹۰ با تمرکز بر تحویل سریعتر محتوا در اینترنت ظهور کرد:
نسل اول: خدمات CDN نسل اول بر اصول شبکهای مدیریت هوشمند ترافیک شبکه و مراکز داده برای تکثیر تمرکز داشتند.
نسل دوم: CDNهای نسل دوم در پاسخ به افزایش خدمات پخش صوتی و تصویری، بهویژه ویدئوی درخواستی و اخبار درخواستی، پدید آمدند. این فناوری همچنین برای حل چالشهای جدید در تحویل محتوا روی دستگاههای موبایل تکامل یافت. شرکتها از تکنیکهای محاسبات ابری و شبکههای همتا-بههمتا برای تسریع در تحویل محتوا استفاده کردند.
نسل سوم: CDNهای نسل سوم همچنان در حال تکامل هستند. AWS به عنوان یکی از ارائهدهندگان پیشرو خدمات CDN در جهان، نوآوری را هدایت میکند. با متمرکز شدن اکثر خدمات وب در ابر، تمرکز اکنون بر محاسبات لبهای است مدیریت مصرف پهنای باند با استفاده از دستگاههای هوشمند که به طور هوشمندانه ارتباط برقرار میکنند. شبکههای لبهای خودمختار و خودمدیریت ممکن است گام بعدی در فناوری CDN باشند.
چه نوع محتوای اینترنتی را میتوان با CDN تحویل داد؟
شبکه تحویل محتوا (CDN) میتواند دو نوع محتوا را تحویل دهد: محتوای ثابت و محتوای پویا.
محتوای ثابت
محتوای ثابت دادههای وبسایتی هستند که از کاربری به کاربر دیگر تغییر نمیکنند. تصاویر سرصفحه وبسایت، لوگوها و سبکهای فونت در بین همه کاربران یکسان باقی میمانند و کسبوکار آنها را به طور مکرر تغییر نمیدهد. دادههای ثابت نیازی به تغییر، پردازش یا تولید ندارند و برای ذخیرهسازی در CDN ایدهآل هستند.
محتوای پویا
محتوای پویا مانند فیدهای خبری رسانههای اجتماعی، گزارشهای آبوهوا، وضعیت ورود به سیستم و پیامهای چت بین کاربران وبسایت متفاوت است. این دادهها بر اساس مکان کاربر، زمان ورود یا ترجیحات کاربر تغییر میکنند و وبسایت باید این دادهها را برای هر کاربر و هر تعامل کاربر تولید کند.
CDN چگونه کار میکند؟
شبکههای تحویل محتوا (CDN) با ایجاد نقاط حضور (POP) یا گروهی از سرورهای لبهای CDN در مکانهای جغرافیایی متعدد کار میکنند. این شبکه توزیعشده جغرافیایی بر اساس اصول کشسازی، تسریع پویا و محاسبات منطقی لبهای عمل میکند.
کشسازی
کشسازی فرآیند ذخیرهسازی چندین نسخه از دادههای یکسان برای دسترسی سریعتر به دادهها است. در محاسبات، اصل کشسازی برای همه انواع مدیریت حافظه و ذخیرهسازی اعمال میشود. در فناوری CDN، این اصطلاح به فرآیند ذخیرهسازی محتوای ثابت وبسایت روی چندین سرور در شبکه اشاره دارد. کشسازی در CDN به این صورت عمل میکند:
- یک بازدیدکننده وبسایت از نظر جغرافیایی دور، اولین درخواست برای محتوای وب ثابت را از سایت شما ارسال میکند.
- درخواست به سرور برنامه وب یا سرور اصلی شما میرسد. سرور اصلی پاسخ را به بازدیدکننده دور ارسال میکند. در عین حال، یک نسخه از پاسخ را به POP CDN نزدیکترین به آن بازدیدکننده از نظر جغرافیایی ارسال میکند.
- سرور POP CDN نسخه را به عنوان یک فایل کششده ذخیره میکند.
- دفعه بعد که این بازدیدکننده یا هر بازدیدکننده دیگری در آن مکان همان درخواست را ارسال کند، سرور کش، نه سرور اصلی، پاسخ را ارسال میکند.
تسریع پویا
تسریع پویا کاهش زمان پاسخ سرور برای درخواستهای محتوای وب پویا به دلیل وجود یک سرور CDN واسطه بین برنامههای وب و کلاینت است. کشسازی برای محتوای وب پویا به خوبی کار نمیکند زیرا محتوا میتواند با هر درخواست کاربر تغییر کند. سرورهای CDN باید برای هر درخواست پویا دوباره با سرور اصلی ارتباط برقرار کنند، اما با بهینهسازی ارتباط بین خود و سرورهای اصلی، این فرآیند را تسریع میکنند. اگر کلاینت یک درخواست پویا را مستقیماً به سرور وب از طریق اینترنت ارسال کند، ممکن است درخواست به دلیل تأخیر شبکه گم شود یا به تأخیر بیفتد. همچنین ممکن است زمان صرف باز کردن و بستن اتصال برای تأیید امنیتی شود. از سوی دیگر، اگر سرور CDN نزدیک درخواست را به سرور اصلی ارسال کند، آنها از قبل یک ارتباط قابل اعتماد و مداوم برقرار کردهاند. به عنوان مثال، ویژگیهای زیر میتوانند ارتباط بین آنها را بیشتر بهینه کنند:
- الگوریتمهای مسیریابی هوشمند
- نزدیکی جغرافیایی به سرور اصلی
- توانایی پردازش درخواست کلاینت، که اندازه آن را کاهش میدهد
محاسبات منطقی لبهای
شما میتوانید سرور لبهای CDN را برنامهریزی کنید تا محاسبات منطقیای انجام دهد که ارتباطات بین کلاینت و سرور را سادهتر کند. به عنوان مثال، این سرور میتواند کارهای زیر را انجام دهد:
- بررسی درخواستهای کاربر و تغییر رفتار کشسازی.
- اعتبارسنجی و مدیریت درخواستهای نادرست کاربر.
- اصلاح یا بهینهسازی محتوا قبل از پاسخ.
توزیع منطق برنامه بین سرورهای وب و لبه شبکه به توسعهدهندگان کمک میکند تا نیازهای محاسباتی سرورهای اصلی را کاهش دهند و عملکرد وبسایت را بهبود ببخشند.
CDN برای چه استفاده میشود؟
شبکه تحویل محتوا (CDN) عملکردهای عادی وبسایت را بهبود میبخشد و رضایت مشتری را افزایش میدهد. در ادامه چند نمونه از موارد استفاده آورده شده است.
تحویل محتوای پرسرعت
با ترکیب تحویل محتوای ثابت و پویای اینترنتی، میتوانید از CDNها برای ارائه تجربهای جهانی، با عملکرد بالا و کامل به مشتریان خود استفاده کنید. به عنوان مثال، رویترز بزرگترین عمدهفروش اخبار جهان به کانالهای برتر مانند BBC، CNN، نیویورک تایمز و واشنگتن پست است. چالش رسانهای برای رویترز تحویل سریع محتوای خبری به مشتریان در سراسر جهان است. رویترز از سرویس CDN آمازون، Amazon CloudFront، همراه با Amazon Simple Storage Service (Amazon S3) استفاده میکند تا وابستگی به ارتباطات لینک ماهوارهای را به حداقل برساند و یک پلتفرم شبکه توزیعشده جهانی ارزانتر، بسیار در دسترس و امن ایجاد کند.
پخش زنده بلادرنگ
CDNها به تحویل قابل اعتماد و مقرونبهصرفه فایلهای رسانهای غنی و با کیفیت بالا کمک میکنند. شرکتهای پخش ویدئو و صوت از CDNها برای غلبه بر سه چالش استفاده میکنند: کاهش هزینههای پهنای باند، افزایش مقیاس و کاهش زمان تحویل. به عنوان مثال، هولو یک پلتفرم پخش ویدئوی آنلاین متعلق به شرکت والت دیزنی است. این شرکت از Amazon CloudFront برای پخش مداوم بیش از ۲۰ گیگابیت بر ثانیه داده به پایگاه مشتریان رو به رشد خود استفاده میکند.
مقیاسپذیری چندکاربره
CDNها به پشتیبانی از تعداد زیادی کاربر همزمان کمک میکنند. منابع وبسایت تنها میتوانند تعداد محدودی از اتصالات کلاینت را در یک زمان مدیریت کنند. CDNها میتوانند با برداشتن بخشی از بار از سرور برنامه، این تعداد را به سرعت افزایش دهند. به عنوان مثال، کینگ یک شرکت بازیسازی است که بازیهای متصل اجتماعی و چندپلتفرمی میسازد که میتوانند در هر زمان، هر مکان و از هر دستگاهی بازی شوند. کینگ بیش از ۳۵۰ میلیون بازیکن در هر زمان دارد و آنها روزانه ۱۰.۶ میلیارد بازی روی پلتفرم انجام میدهند.
برنامههای بازی کینگ دادههای بازی کاربران را در مراکز داده مرکزی ثبت میکنند و به آنها اجازه میدهند بدون از دست دادن پیشرفت روی دستگاههای مختلف بازی کنند. مراکز داده با هدف ارائه تجربهای یکپارچه به کاربران، حتی اگر کاربران با ماشینهای قدیمی با پهنای باند محدود به بازی بپیوندند، طراحی شدهاند.
کینگ از Amazon CloudFront برای تحویل صدها ترابایت محتوا در روز استفاده میکند، با قلههایی تا نیم پتابایت یا بیشتر هنگام راهاندازی یک بازی جدید یا شروع یک برنامه بازاریابی بزرگمقیاس.