از مخاطبان عجول و کمحوصله چه خبر؟ بله خود ما هم جزء همین مخاطبها هستیم؛ آدمهای پرمشغلهای که کافی است سایت یا اپلیکیشنی به سرعت برایمان باز نشود، تا فوراً آن را ببندیم و برویم سراغ گزینه بعدی. برای این که جلو این اتفاق را بگیریم (و اگر میخواهیم در اینترنت مشتری پیدا کنیم، باید این کار را بکنیم)، باید سرعت بارگذاری را افزایش دهیم. CDN یا Content Delivery Network (شبکه توزیع محتوا) این کار را برای ما انجام میدهد.
شبکه توزیع محتوا یا CDN چیست؟
برای این که متوجه شوید CDN چیست، بیایید فرض کنیم سروری که ما برای سایتمان از آن استفاده میکنیم، در آمریکا قرار دارد. خب مسئله دقیقاً از همینجا شروع میشود. اینترنت آنقدر همهچیز را برای ما در دسترس قرار داده که عموماً فکر نمیکنیم سایتها در یک مکان فیزیکی قرار گرفته باشند، اما خب واقعیت این است که سایتها ما و همه محتواهایی که روی آنها قرار دارند، در جایی به اسم سرور مبدأ (Origin Server) قرار دارند.
حالا برگردیم به فرض ابتداییمان. اگر سرور مبدأ ما در آمریکا باشد و مشتریان ما در ایران، تمام اطلاعات سایت ما باید مسافت آمریکا تا ایران را طی کنند تا روی نمایشگرهای کاربران ما بارگذاری شوند. اگر این اطلاعات بخواهند به صورت مستقیم از سرور آمریکا به ایران برسند، مسافت طولانی بین 2 قاره باعث میشود تا سایتها و اپلیکیشنها آنقدر کند باز شوند که مخاطب قیدشان را بزند.
CDN سیستمی تشکیل شده از سرورهای مختلف در سرتاسر جهان است که در سریعترین زمان ممکن اطلاعات سایتها را به کامپیوترهای ما میرساند. خب احتمالاً این توضیح هم کاملاً گویا نبوده. خب بیایید کمی بیشتر توضیح دهیم. اجازه دهید برگردیم به همان فرض اولمان و سروری که در آمریکا داشتیم. هربار که یکی از مشتریان ما در ایران میخواهد سایت ما را باز کند، مرورگر باید به سرور اصلی ما متصل شود تا اطلاعات را از آن بگیرد و در صفحه نمایشگر مخاطب نشان دهد. حالا تصور کنید که این اطلاعات بخواهد مسیر آمریکا تا ایران را طی کند! صبر کنید. هنوز به قسمت مشکل ساز ماجرا نرسیدهایم.
هربار که ما چیزی را در اینترنت جستوجو میکنیم، اطلاعات باید مسیرهای مختلفی (routing path) را طی کنند تا به درخواست ما پاسخ داده شود. مثلاً اگر من همین الان بخواهم گوگل را باز کنم، درخواست من باید مسیرهای زیادی را طی کند تا گوگل روی نمایشگر من نشان داده شود. این مسیرها باعث میشوند که راه ایران تا آمریکا به قسمتهای کوچکتری تقسیم شود که سرعت در همه آنها نسبت به مسیر اصلی افزایش یافته.
اگر این مسیرها نباشند، چه میشود؟
به این فکر کنید که روزانه چند نفر در سرتاسر دنیا گوگل را باز میکنند. یعنی اگر دادههای گوگل بخواهند از مرکز سرور اصلی آن در آمریکا بدون واسطه به تمام نقاط جهان ارسال شوند، در هر لحظه چه ترافیکی ایجاد میشود و کاربران هر کشور نسبت به فاصلهشان با آمریکا و ترافیکی که دارند، چقدر باید منتظر بمانند تا گوگل برایشان باز شوند؟
CDN اینجا به کار میآید. سرورهایی که در سرتاسر دنیا توزیع شدهاند، دادههای موجود در سرورهای اصلی را پیشاپیش در خود دارند. بنابراین وقتی ما در ایران سایتی را باز میکنیم که سرور اصلیاش در آمریکاست، لازم نیست تمام این مسیر طی شود. شبکه توزیع محتوا ما را به نزدیکترین سرور به محل زندگیمان متصل میکند تا اطلاعات را از آن بگیریم. در این صورت زمان بارگذاری به طرز قابل توجهی کاهش مییابد و سرعت لود صفحات، افزایش.
هدف اصلی یک شبکه تحویل محتوا یا CDN چیست؟
هدف اصلی شبکه تحویل یا توزیع محتوا این است که محتوای دیجیتالی (از هر شکل و نوعش) به صورتی امن، ساده و با سرعت بالا به دست مخاطبان برسد. حالا مخاطب هرکجای دنیا باشد و سرور اصلی در هر نقطهای که باشد، تفاوتی نمیکند و این فرایند به کمک شبکه سرورهای فرعی (CDN) اتفاق میافتد.
این اتفاق در گرو 2 فاکتور مهم است:
- مسافت جغرافیایی
- ترافیک
بگذارید کمی بیشتر توضیح دهیم. از مورد اول شروع کنیم؟
وقتی مخاطبی میخواهد سایت ما را باز کند (چه در ایران باشد، چه در امریکا و چه در ژاپن) ایدهآل این است که نزدیکترین سرور (از نظر فاصله مکانی) اطلاعات سایت را به او بدهد و سایت ما را برای او باز کند. هرچه سرور نزدیکتر باشد، سرعت بارگذاری افزایش مییابد.
اما ترافیک...
فرض کنید مطلبی را در سایت خود منتشر کردهاید که آدمهای زیادی میخواهند آن را ببینند. مثلاً یک محصول کاربردی را به تازگی معرفی کردهاید، یا مطلبی نوشتهاید که به طور مقطعی ترافیک سنگینی را برای سایت شما ایجاد کرده (چیزی در حد اخبار انتخابات یا بازیهای المپیک و ...) یا اصلاً تحت حملههای DOS قرار گرفتهاید و تعداد ریکوئستهایی که همزمان به سایت شما هدایت شدهاند، به طرز غیراستانداردی زیاد شده. این افزایش ترافیک، فشار زیادی را به سرور شما وارد میکند. بدون CDN این فشار باعث میشود تا سرور شما از دسترس خارج شود و سایت به مخاطب نشان داده نشود. اما CDN کاری میکند که ترافیک ایجاد شده در شبکهای از سرورهای به هم مرتبط تقسیم شود و فشاری که به سرور اصلی میآید، کاهش یابد.
CDN یا شبکه تحویل محتوا چگونه کار میکند؟
به محض این که کاربر شماره 1 سایت شما را باز میکند، نزدیکترین سرور اطلاعات آن را به مرورگر مخاطب میرساند. این سرور از اطلاعات سایت شما یک کپی میگیرد و آن را نگه میدارد. این فایلهای کَش -که شامل صفحات HTML، فایلهای جاوا اسکریپت، استایلها، تصاویر و ... هستند- به شکلی ایمن روی درایوهای SSD و HDD یا روی RAM ذخیره میشوند. حالا اگر کاربر شماره 2 که از نظر مکانی به کاربر شماره 1 نزدیک است، بخواهد سایت شما را باز کند، اطلاعات از طریق همان فایلهای کَش به کاربر شماره 2 داده میشوند و این یعنی افزایش چندبرابری سرعت انتقال دادهها.
علاوه بر افزایش سرعت بارگذاری سایت، شبکه تحویل محتوا وظیفه حفاظت از سایت ما را هم به عهده دارد. بگذارید موضوع را با یک توضیح دهیم.
تصویر بالا، به صورت نمادین نشان میدهد که موقعیت شبکه سرورهای فرعی CDN نسبت به سرور اصلی چگونه است. همانطور که میبینید، CDN مثل یک سپر دفاعی جلو سرور اصلی صف کشیده است. پس اگر سرور مورد حملات DOS و DDOS قرار بگیرد، شبکه توزیع محتوا بار ترافیک ایجاد شده را بین خودش توزیع و حمله را مهار میکند. عملکرد حفاظتی شبکه تحویل محتوا چیزی مثل دیوار دفاعی بازیکنان فوتبال، هنگام زدن ضربه آزاد است.
نحوه استفاده از شبکه توزیع محتوا (CDN)
برای استفاده از این شبکه، باید آن را از شرکتهای ارائه دهنده بخریم. این شرکتها سرویس CDN را به صورت پولی یا رایگان در اختیار ما قرار میدهند. چطور؟ وارد یکی از سایتهای ارائه دهنده خدمات CDN میشویم و آدرس دامنه مورد نظرمان را به آنها میدهیم. این شرکتها شبکه توزیع محتوای خود را بین دامنه ما و سرور اصلی آن مستقر میکنند و از آن به بعد، به جای هدایت مستقیم اطلاعات از سرور اصلی به آدرس سایت، دادهها در شبکهی خریداری شده مبادله میشود.
بهترین CDN کدام است؟
شرکتهای زیادی هستند که خدمات شبکه توزیع محتوا را ارائه میکنند. با این حال اگر در ایران هستید و میخواهید بهترین شبکه را انتخاب کنید، پیشنهاد میکنیم شما هم دو سرویسی را انتخاب کنید که ما در پونه مدیا از آنها استفاده میکنیم.
Cloudflare
معتبرترین شرکت ارائه دهنده سرویسهای CDN بدون شک Cloudflare است. کلود فلر یک کمپانی آمریکایی است که سالها در زمینه ارائه سرویسهای توزیع و تحویل محتوا سابقه دارد. از نظر ایمنی، کیفیت و سرعت ارائه خدمات، هیچ رقیبی را نمیتوانیم برای آن در نظر بگیریم.
CDN های ایرانی
شرکتهای ایرانی هم در سالهای اخیر پا به میدان گذاشتهاند که از بین آنها، شرکت ابر آروان مشتریان بیشتری دارد. دیگر سرویسهای ایرانی عبارتند از:
- ابر دارک
- میزبان کلود
- پارس پک
- ایران سرور
- آسیا تک
- افرا نت
- ابر آراز
- ستون
این که کدام CDN را انتخاب کنید، به تشخیص تیم فنی شما بستگی دارد. بهتر است قبل از خرید، کمی درباره سرویسهای هر شرکت تحقیق کنید و ببینید که سایتهایی با سرورهای مشابه شما بیشتر کدام شبکه را انتخاب کردهاند. با توجه تمامی موارد، میتوانید بهترین گزینه را انتخاب کنید. ما در پونه مدیا بیشتر از خدمات کلود فلر استفاده میکنیم. انتخاب نهایی با شماست.