در دنیای وب و اینترنت، همواره به تأخیر در دریافت پاسخ توجه شده است. با گذشت زمان، تلاشها برای بیشتر شدن سرعت دریافت اطلاعات افزایش یافته است. در گذشته، غالباً تمرکز متخصصان بر پهنای باند شبکهها بوده است. برای کاهش تأخیر، پهنای باند شبکه روزبهروز افزایش پیدا کرد و تکنولوژیهای جدید همچون +ADSL 2 معرفی شد. از سوی دیگر، نحوه کدنویسی وبسایتها نیز تغییر پیدا کرد. هر روز دستورات بهینهتر و سرعت پردازش دستورات بیشتر شد. اما هنوز به اندازه کافی از تأخیر کاسته نشده بود. در این حین، افرادی بر خود سرورها و موقعیت آنها متمرکز شدند و توانستند راه حل بهتری برای بهینه کردن پهنای باند و افزایش سرعت وب به دست آورند. راه حل آنها CDN است.
اگر شما یک وبسایت داشته باشید، وبسایت شما روی سروری در یک مرکز داده، نگهداری میشود و بازدیدکنندگان بدون توجه به موقعیت جغرافیاییشان، به سرور وبسایت متصل میشوند. در این حالت چند مشکل وجود خواهد داشت؛ کاربرانی که در نزدیکی وب سرورتان قرار دارند، وبسایت شما را سریعتر از کاربرانی که در کشور یا قاره دیگر هستند، بارگیری میکنند. اگر وبسایت شما روزانه بازدیدکنندگان بسیاری داشته باشد، پهنای باند زیادی نیاز خواهید داشت. با این روش هزینه گزافی را متحمل خواهید شد؛ به دلیل اینکه باید تجهیزات پیشرفتهتری استفاده شود تا به پهنای باند بالاتری دست پیدا کنید. نتایج تحقیقی درباره سرعت بارگذاری وبسایت در کشورهای مختلف نشان میدهد که اگر کاربران برای بارگذاری یک صفحه از وبسایت بیش از سه ثانیه منتظر بمانند، برای مراجعه دوباره به آن وبسایت اشتیاق بسیار کمی خواهند داشت. در گذشته برای این موضوع دو راه حل وجود داشت: راه حل اول، پرداخت هزینههای سنگین برای بیشتر کردن پهنای باند بود و راهحل دوم اینکه شاهد کمتر شدن تعداد بازدیدکنندههای وبسایت خود باشید. اما جای نگرانی وجود ندارد؛ راه حل جدیدی با نام CDN به وجود آمده است.
CDN مخفف عبارت Content Delivery Networks و به معنای شبکههای تحویل محتوا است. این نوع شبکه، نوعی از سیستمهای توزیعشده است. در این شبکه، محتوای وبسایت شما در مرکز دادههای مختلف و مناطق مختلف جغرافیایی پخش شدهاند. هدف از ایجاد این شبکهها، افزایش میزان دسترسی و بهبود عملکرد شبکه است. در حال حاضر، این شبکهها از محتویاتی همچون Object های وبسایتها (متن، گرافیک و اسکریپت)، آیتمهای قابل دانلود (فایلهای صوتی و ویدیویی، نرمافزارها و…)، پرتالها، رسانههای پخش زنده و حتی شبکههای اجتماعی پشتیبانی میکند.
ساختار کلی این شبکهها با رویکرد سنتی متفاوت است. در رویکرد سنتی که در سمت چپ شکل یک نشان داده شده است، سروری اطلاعات شما را در اختیار دارد و تمام کاربران به آن متصل خواهند شد. در CDN که در سمت راست شکل 1 نشان داده شده است، سرورهای مختلف در مناطق جغرافیای مختلف قرار داده شدهاند که به کاربران نهایی بسیار نزدیک هستند. این سرورها بسیاری از اطلاعات سرور اصلی را Cache کرده و پردازش کمی در آنها رخ میدهد. با این روش اطلاعات درخواستی شما به سرعت تحویل داده خواهند شد.
مزایا و معایب CDN:
همانند هر سیستم جدیدی، CDN نیز با خود مزایا و معایبی به همراه دارد. در این قسمت به بررسی مزایا و معایب این سیستم میپردازیم.
مزایا
- کاهش بار کاری سرور
- تحویل سریعتر محتوا
- دسترسی صددرصدی
- افزایش تعداد کاربران همزمان
- کنترل بیشتر بر تحویل محتوا
- امنیت بیشتر
1. کاهش بار کاری سرور: با نزدیک کردن سرورها به کاربران، پهنای باند مورد نیاز در لینکهای میانی و Backbone کاهش مییابد و به جای مراجعه به سرور بسیار عظیم مرکزی، کاربران به سرورهای رده متوسط که در نزدیکیشان قرار دارد، متصل میشوند. این راهکار بار کاری سرور اصلی را به شدت کاهش میدهد. همچنین باعث صرفهجویی در ترافیک نیز میشود.
2. تحویل سریعتر محتوا: از آنجایی که محل قرارگیری سرورها به گروهی از کاربران نزدیکتر شده است، نرخ از دست رفتن بستهها و تأخیر کاهش مییابد و این به دلیل کاهش مسافتی است که باید برای ارسال درخواست و دریافت پاسخ آن طی شود. هر چقدر فاصله سرور به کاربران نزدیکتر شود، این پاسخها سریعتر میشوند. قابلیت اطمینان بیشتر خواهد شد و ضمن آنکه فشار بر روی شبکه و هزینهها کاهش مییابد، میتوان محتوایی با حجم و کیفیت بهتر به کاربران عرضه کرد و در عین حال کیفیت خدمات ارائهشده را در سطح مطلوبی نگه داشت. هر کاربر بر اساس ISP خود و موقعیت جغرافیاییاش به نزدیکترین سرور CDN هدایت میشود. این روش در شکل 2 نشان داده شده است.
در برخی از شرکتهای ارائهدهنده خدمات CDN، تکنولوژی TCP acceleration ارائه میشود. TCP acceleration شامل تکنیکهایی برای به دست آوردن گذردهی بهتر توسط TCP بدون دخالت و تغییر در اپلیکیشنهای نهایی میشود. با TCP acceleration، کاربران تجربه بهتری از استفاده خدمات به دست خواهند آورد.
3. دسترسی صددرصدی: به دلیل اینکه محتوای وبسایت شما در مناطق مختلف توزیع شده است، CDN از مکانیزمی استفاده میکند که اگر سروری دچار مشکل شد، بهسرعت نزدیکترین سروری را که در دسترس است پیدا کرده و کاربر را به سمت آن سرور هدایت کند. در نتیجه اگر وبسایتی داشته باشید که از CDN بهره میبرد، کاربران همیشه به آن دسترسی خواهند داشت؛ حتی زمانی که مشکلی برای سرورهایتان به وجود آید.
4. افزایش تعداد کاربران همزمان: جایگذاری سرورهای CDN در نقاط مختلف، باعث میشود ترافیکها بر اساس موقعیت تفکیک شوند و تعداد کاربر بیشتری همزمان متصل شوند. برای مثال، فرض کنید سرورتان به شبکه صدگیگابیتی متصل است و پشت این شبکه، یک Backbone با سرعت دو ترابیت در ثانیه باشد. قطعاً این سرور از کاربران بیش از صد گیگابیت بر ثانیه ترافیک نمیتواند دریافت و ارسال کند. اما اگر 10 عدد سرور CDN داشته باشیم، در مجموع میتوانیم یک ترابیت اطلاعات ارسال یا دریافت کنیم و این قطعاً منجر به سرویسدهی بهتر و بیشتر شدن تعداد کاربرانی که همزمان متصل هستند، خواهد شد.
“نتایج تحقیقی درباره سرعت بارگذاری وبسایت در کشورهای مختلف نشان میدهد که اگر کاربران برای بارگذاری یک صفحه از وبسایت بیش از سه ثانیه منتظر بمانند، برای مراجعه دوباره به آن وبسایت اشتیاق بسیار کمی خواهند داشت”
5. کنترل بیشتر بر تحویل محتوا: یکی دیگر از مزایای استفاده از CDN، کنترل بیشتر بر محتوا است. شرکتهای پیادهکننده CDN میتوانند به صورت آنی، اطلاعات بار کاری سرورها و شبکهها، مناطق جغرافیایی فعال و محتوای محبوب هر منطقه را استخراج کنند و حتی به مشتریان خود نشان دهند.
6. امنیت بیشتر: به دلیل اینکه سرورها در مناطق جغرافیایی مختلف قرار گرفتهاند و توزیعشده هستند، پیادهسازی حملات DDoS بسیار سخت و امنیت سرورها بیشتر میشود. DDoS مخفف عبارت Distributed Denial of Service است که باعث قطع سرویسدهی به کاربران میشود.
معایب: متأسفانه CDN نیز معایب خود را دارد که عبارتند از:
- هزینه
- پیچیدگی بیشتر
- پشتیبانی
- مشکلات نگهداری
- انتخاب بهترین موقعیت جغرافیایی
1. هزینه: مهمترین مشکل در استفاده از CDN، هزینه آن است. اگرچه در نهایت استفاده از آن باعث کاهش هزینهها خواهد شد، استفاده از CDN هزینه کمی نخواهد داشت. برخی از شرکتهای ارائهدهنده این خدمات، هزینه اولیه زیادی را در نظر گرفتهاند. علت این هزینه زیاد، دور نگهداشتن شرکتهای کوچک برای استفاده از CDN است. به این ترتیب شرکتهای ارائهدهنده خدمات CDN، با شرکتهای بزرگ همکاری میکنند که سود بیشتری را برای آنها به ارمغان میآورد. شاید در آیندهای نزدیک و با رقابتی شدن این بازار، شاهد کاهش قیمتها و استفاده شرکتهای کوچک از این خدمات باشیم.
2. پیچیدگی بیشتر: اگرچه CDN بسیار مفید است، پیادهسازی چنین شبکهای پیچیدگیهای خود را دارد و کار دشواری است.
3. پشتیبانی: از آنجایی که مسئولیت پیادهسازی و نگهداری از CDN بر عهده شرکت یا سازمان دیگری است، این پرسش مطرح میشود که آیا در هنگام بروز یک مشکل اساسی، متخصصان این شرکت توانایی تعمیر و رفع مشکل را دارند؟ آیا رفع مشکل در زمان قابل قبولی انجام خواهد شد؟
4. مشکلات نگهداری: همانند پشتیبانی، نگهداری از سرورها مستلزم بهروزرسانی برنامهها و دریافت افزونههای جدید است. شرکت ارائهدهنده خدمات CDN باید برنامهریزی منظم برای پشتیبانگیری از سرورها و بهروزرسانی محتویات سرورها، بدون ایجاد اختلال در سرویسدهی به کاربران را داشته باشد.
5. انتخاب بهترین موقعیت جغرافیایی: از چالشهای دیگر استفاده از CDN، جستوجو برای یافتن بهترین موقعیت جغرافیایی برای قرار دادن سرور CDN است. اگر مکانی که انتخاب میشود به کاربران نهایی نزدیک نباشد، باعث افزایش تأخیر و افت کیفیت خدمات میشود. به دلیل اینکه خدمات CDN را شرکتهای مختلفی ارائه میدهند، ممکن است شرکتی در یک منطقه جغرافیایی سرورهای CDN داشته باشد، اما در چند نقطه دیگر نداشته باشد و این تصمیمگیری را سخت خواهد کرد.
شرکتهای ارائهدهنده خدمات CDN
خدمات CDN به دو صورت رایگان و تجاری در دنیا عرضه میشود. از معروفترین شرکتهایی که به صورت رایگان این خدمات را ارائه میدهند، میتوان به CloudFlare و Coral Content Distribution Network اشاره کرد. از شرکتهای تجاری نیز میتوان Akamai، Amazon CloudFront و Azure CDN را نام برد. البته این شرکتها به همین تعداد محدود نمیشوند و در حال حاضر بیش از 35 شرکت در دنیا با مقیاس جهانی در حال ارائه خدمات CDN هستند.
” در CDN سرورهای مختلف در مناطق جغرافیای مختلف قرار داده شدهاند که به کاربران نهایی بسیار نزدیک هستند. این سرورها بسیاری از اطلاعات سرور اصلی را Cache کرده و پردازش کمی در آنها رخ میدهد. با این روش اطلاعات درخواستی شما به سرعت تحویل داده خواهند شد”
در ایران نیز اقدامات لازم برای پیادهسازی CDN از سالهای گذشته شروع شده است. طبق آمارها، در ایران 30 درصد ترافیک کاربران اینترنت، داخلی و 70 درصد آن به خارج از کشور است که با راهاندازی مرکز دادههای CDN، قطعاً میزان ترافیک خارج کشور کمتر خواهد شد و کاربران علاوه بر اینکه با سرعت بیشتری به محتوای مدنظر خود دست خواهند یافت، هزینه کمتری را برای دسترسی به آنها پرداخت خواهند کرد. با راهاندازی اینترانت ملی نیز این سرعت افزایش و هزینهها نیز به طور چشمگیری کاهش خواهند یافت. در حال حاضر شرکتهایی مانند افرانت، آروان و مگنا آیتی از شرکتهای فعال در زمینه ارائه خدمات تحویل محتوا هستند.
منبع: shabakeh-mag