شبکه تحویل محتوا (CDN) چگونه کار می کند
به بیان ساده، شبکه تحویل محتوا یا همان CDN، متشکل از مجموعه ای از سرور های قوی می باشد که بصورت جغرافیایی در مناطق مختلف توزیع شده اند. این ساختار توزیع شده به این شبکه ها اجازه می دهد تا محتوا را با سرعت بالا به کاربران نهایی خود ارائه دهند. علاوه برا آن، صاحبان وب سایت هایی که هاست های خود را بر روی شبکه تحویل محتوا قرار می دهند اطمینان بیشتری از در دسترس بودن سایت های خود برای کاربرانشان دارند. به این معنی که چنانچه یکی از سرور ها بر روی CDN از کار بیفتد، وب سایت توسط سرور های دیگر موجود بر روی شبکه در اختیار کاربران قرار خواهد گرفت.
عدم استفاده از CDN یا استفاده از آن؟
بدون استفاده از CDN تمامی محتوای شما بر روی یک سرور میزبانی خواهد شد. این بدان معنی است که تمامی ترافیک وب سایت شما به یک نقطه هدایت خواهد شد که این مسئله سرور شما را به گلوگاهی در مقابل حجم ترافیک بالا تبدیل خواهد کرد و با بالارفتن تعداد بازدید های سایتتان تاخیر بارگذاری صفحات بیشتر و بیشتر خواهد شد در نهایت منجر به عدم توانایی سرور در پاسخگویی می گردد.
بدون استفاده از CDN سرعت بارگذاری صفحات بر روی سیستم کاربران نهایی پایین خواهد بود. مثلا فرض کنید وب سایت شما بر روی سروری در آمریکا میزبانی می شود در حالی که کاربران شما در ایران قرار دارند. در این صورت به ازای هر بازدید از صفحات وب سایت شما، ابتدا در خواستی به قاره امریکا فرستاده می شود و سپس محتوا از انجا برای کاربران به ایران باز گردانده می شود. بدین تریب محتوای مورد نظر کاربران باید مسیری طولانی را طی کند تا به کاربر نهایی برسد. این مسئله وقتی مشکل ساز خواهد شد که کاربران شما از چند صد نفر به چندین هزار نفر افزایش یابند. در این صورت مشکلاتی نظیر مصرف پهنای باند، تاخیر شبکه و افت سرعت در بارگذاری صفحات مشاهده خواهد شد.
اکنون حالتی را در نظر بگیرید که وبا سایت خود را بر روی یک شبکه تحویل محتوا قرار داده اید. در این صورت شما با هزینه ای اندک صاحب سرور هایی در نقاط مختلف خواهید شد که بصورت توزیع شده وب سایت شما را میزبانی می کنند. در این حالت کاربران مقیم ایران بجای آنکه محتوای شما از سرور مستقر در آمریکا دریافت کنند، آن را از یک سرور محلی در نزدیکترین موقعیت جغرافیایی نسبت به خودشان دریافت خواهند کرد. به این ترتیب کاربران با سرعت بیشتر و تاخیر کمتری نسبت به قبل از سایت شما بازدید خواهند کرد.
تکنیک های مورد استفاده در CDN
یکی از تکنیک هایی که در CDN مورد استفاده قرار می گیرد وب کش می باشد. یکی از سناریو هایی که این تکنیک در آن می تواند بسیار مفید واقع شود، مواقعی است که فایلی بر روی سرور توسط کاربران مختلف به دفعات مورد درخواست قرار می گیرد. تکنیک دیگری که در شبکه های تحویل محتوا مورد استفاده قرار می گیرد توزیع بار یا load balancing می باشد. این تکنیک علاوه بر آنکه ظرفیت و مقیاس وب سایت شما را بالا می برد، احتمال آنکه سرور شما به گلوگاه تبدیل شود را نیز از بین می برد. البته توزیع بار مباحث مفصلی دارد که در جای دیگری می تواند بطور کامل به ان پرداخت. اما انچه در این مقاله می توان به ان اشاره کرد این است که برای استفاده از تکنیک توزیع بار الگوریتم هایی وجود دارد که بر اساس فاکتور های مختلفی سعی می کنند ترافیک را بصورتی عادلانه بروی سرور های مختلف تقسیم نمایند. بعنوان مثال این الگوریتم ها بر اساس داده هایی نظیر میزان در دسترس بودن سرور در گذشته و یا تعداد هاب هایی که نیاز است پیموده شود تا محتوا به کاربر برسد تصمیم می گیرند در خواست را به چه سروری هدایت کنند. البته طبیعی است که برای این منظور نیاز است بصورت دوره ای اطلاعاتی در اختیار این الگوریتم ها قرار داده شود تا بتوانند بدرستی تصمیم گیری نمایند.
در هنگام خرید یک سرویس CDN به چه نکاتی باید توجه نمود
هنگامی که می خواهید برای وب سایت خود از یک سرویس CDN استفاده کنید باید در انتخاب خود به نکاتی توجه کنید که در ادامه سه مورد از انها اورده شده است.
توزیع جغرافیایی کاربران
اولین مسئله در انتخاب سرویس CDN این است که بدانید کاربرانتان در چه نقاطی از دنیا قرار دارند. اگر بیشتر کاربران شما در داخل کشور هستند سروریس های داخلی که در شهر های مختلف ایران سرور دارند گزینه مناسبی می توانند باشد. اگر کاربران شما تنها در شهر مشهد هستند سرویس هایی که تنها در مشهد مستقر هستند می توانند برای شما مناسب باشند. در صورتی که کاربران شما در سراسر دنیا باشند طبیعی است باید به دنبال سرویس هایی بگردید که در بیشتر نقاط دنیا سرور هایی مستقر دارند.
چه میزان از محتوای خود را نیاز دارید بر روی CDNقرار دهید؟
اگر یک سرویس دانلود فایل دارید، بیشترین درخواست کاربران درخواست دانلود فایل ها خواهد بود. بنابراین تنها نیاز است فایل های قابل دانلود خود را بر روی CDN قرار دهید و به این ترتیب در هزینه سرویس خود صرفه جویی کنید. گاهی یک وب سایت پر بازدید دارید. در این صورت بسته به نیاز و سیاست خود می توانید تنها فایل های استاتیک خود نظیر فایل های css یا جاوااسکریپت را بر روی CDNقرار دهید یا آنکه برای بالابردن حداکثری سرعت وب سایت خود کل سایت را بر روی شبکه تحویل محتوا قرار دهید.
هزینه یا کارایی
اگر چه استفاده از سرویس های CDN هر دوی این موارد رو برای شما تامین می کنند اما گاهی نیاز است خودشما نیز در این مورد که چقدر برای بهبود کارایی و سرعت سایت میخواهید هزینه کنید تصمیم گیری نمایید. شبکه های تحویل داده عموما سرویس های مختلفی با هزینه ها و کارایی های مختلف به شما ارائه می دهند که بر اساس نیاز و بودجه مورد نظر خود می توانید بهترین گزینه را انتخاب کنید.
مزایای استفاده از سی دی ان
استفاده از سی دی ان مزایایی زیادی دارد که از جمله آنها می توان به افزایش سرعت بارگذاری صفحات و کاهش اعوجاج (jitter) در بارگذاری فایل های بزرگ مانند فایل های چند رسانه ای که بصورت آنلاین پخش می شوند اشاره نمود. علاوه بر آن شبکه های تحویل محتوا با کپی کردن محتوا و توزیع آن در نقاط مختلف جغرافیایی از ایجاد گلوگاه و نقطه شکست (single point of failure) جلوگیری می کنند. توزیع سرور ها مزیت دیگری نیز دارد و آن اینست که درصورتی که یکی از سرورهای شما از کار بیافتد ترافیک بطور خودکار بر روی سایر سرور ها هدایت شده و بدین ترتیب محتوا شما همواره توسط کاربران قابل دسترس خواهد بود. یکی دیگر از مزایای استفاده از CDN صرفه جویی در پهنای باند می باشد. بدین صورت که با هدایت درخواست کاربر به نزدیکترین سرور، ترافیک سرور منبع شما کاهش یافته و بدین ترتیب در پهنای باند و هزینه صرف شده پهنای باند صرفه جویی می شود.
در پایان می توان این گونه جمع بندی نمود که سرویس های CDN از یک طرف کاربران شما را راضی و خشنود تر می کنند و از طرف دیگر در کاهش میزان هزینه های شما تاثیر گذار هستند بنابراین در صورتی که قصد راه اندازی وب سایتی پر بازدید را دارید این شبکه های بعنوان بخشی از سیستم خود در نظر بگیرید.