CDN چیست؟ آشنایی با شبکه توزیع محتوا
CDN یا شبکه توزیع محتوا اشاره به مجموعهای از سرورها دارد که مهمترین هدفشان بهبود سرعت دسترسی کاربران به محتوای وب است. اگر میخواهید بیشتر و کاملتر بدانید که CDN چیست و چگونه کار میکند با ادامه مقاله با ما همراه باشید.
ابر زَس علاوه بر سرویسهای زیرساخت ابری، سرویس CDN را نیز در لیست خدمات خود ارائه میکند.
CDN چیست؟
«Content Delivery Network» که به اختصار به آن «CDN»هم گفته میشود با نام «شبکه توزیع محتوا» و گاه «شبکه تحویل محتوا» نیز شناخته میشود. در شبکه توزیع محتوا، سرورهای متعدد در نقاط مختلف جغرافیایی قرار گرفتهاند تا بتوانند از نظر فیزیکی از فاصله نزدیکتری محتوا را به کاربر ارائه دهند.
مهمترین هدف CDN این است که تجربه سریعتر و در نهایت بهتری را در وبگردی یا دسترسی به سرویسها برای کاربر فراهم کند. علاوه بر این هزینه کسبوکارها را کاهش و امنیت و پایداری سرویسهای آنها را بهبود میدهد. میتوان گفت که تقریبا همه ما احتمالا بدون اینکه متوجه شده باشیم از سیدیان نفع بردهایم؛ چرا که بسیاری از کسبوکارهای بزرگ در جهان از جمله مایکروسافت، گوگل و اپل از شبکههای توزیع محتوا بهره میبرند تا محتوای وبسایتهای خود را در زمان کوتاهتری به کاربران نمایش دهند.
عمده محتوای وب که از طریق شبکه توزیع محتوا به نحو بهینهتری در اختیار کاربر قرار میگیرد شامل صفحات HTML، فایلهای جاوا اسکریپت، تصاویر و ویدیوها هستند. امروزه محبوبیت CDN در حال افزایش است و میزان بسیار زیادی از ترافیک وب از جمله خدمات ویدیویی، شبکههای اجتماعی و خدمات کلاد از طریق شبکههای توزیع محتوا به دست کاربران میرسد.
شاید برایتان سوال باشد که سایر کاربردهای شبکه توزیع محتوا چیست؟ در جواب باید گفت که مزایای CDN تنها به موضوع بهبود دسترسی به محتوا محدود نمیشود و این سرویس میتواند از وبسایتها در مقابل برخی از حملات مخرب شامل حمله DDoS (حمله انکار سرویس توزیع شده) نیز محافظت نماید.
تاریخچه CDN چیست و ارائه آن از چه زمانی شروع شد؟
تا اینجا به طور خلاصه به این موضوع پرداختیم که CDN چیست اما تاریخچه CDN به چه زمانی باز میگردد؟
سیدیان که امروزه بخشی جدانشدنی از اینترنت محسوب میشود در ابتدا با هدف حفظ کارایی بالای وبسایتها متولد شد و البته امروزه هم یکی از اهدافش همین موضوع است. Akamai اولین شرکتی بود که در سال ۱۹۹۸ از خدمات شبکه توزیع محتوای خود رونمایی کرد. اولین نسل از CDNها عمدتا بر اطلاعات استاتیک از جمله دانلود نرمافزارها و نیز استریم صوت و تصویر متمرکز بودند.
اما با رشد استفاده از موبایلها و نیز سرور ابری، نسل دوم سیدیان از راه رسید که امکان ارائه دادههای وب پیشرفتهتر از جمله محتوای مالتیمدیای داینامیک را داشت. با ادامه پیشرفت اینترنت به مرور تعداد ارائهدهندگان این سرویس افزایش یافت و خدمات آنها نیز با تنوع بیشتری روبرور شد. امروزه هزینه برخی از خدمات سیدیان براساس میزان استفاده کاربران محاسبه میشود و در مورد برخی دیگر، حجم محتوای منتقل شده، مبنای محاسبه قرار میگیرد. همچین برخی از ارائهکنندگان این سرویس، یک قیمت ثابت را برای خدمات پایه خود در نظر گرفتهاند. حتی بعضی از شرکتها گاه این سرویس را در کنار خدمات دیگر به رایگان ارائه میکنند اما برای خدمات بهینهتر هزینه اضافی را دریافت مینمایند.
تفاوت هاستینگ با CDN چیست؟
شاید تصور کنید که شبکه توزیع محتوا همان هاستینگ است و میتوان اطلاعات مربوط به هر سایت را در سیدیان نگهداری کرد. اما واقعیت این است که وظیفه این سرویس، کاملا با هاستینگ متفاوت است و نمیتواند جایگزین هاستینگ وب شود.
شبکه توزیع محتوا میتواند در لبه شبکه قرار گیرد و کارایی وبسایتها را بهبود دهد. بسیاری از وبسایتهایی که به دلیل استفاده از هاستهای سنتی از مشکل کارایی ضعیف رنج میبرند، با استفاده از شبکه توزیع محتوا میتوانند کارایی بالاتری را ارائه دهند. به عنوان مثال CDN میتواند از طریق فرایند کَش کردن میزان استفاده از پهنای باند هاست را کاهش دهد و از قطع شدن دسترسی کاربران به سایت جلوگیری نماید. علاوه بر این به بهبود امنیت سرویسهایی که روی هاست اشتراکی قرار دارند کمک مینماید.
مزایای شبکه توزیع محتوا چیست؟
مزایای CDN بسته به ابعاد و نیازهای کسبوکارها متفاوت است. از سوی کاربران و کسبوکارها، مزایای سیدیان عمدتا شامل موارد زیر میشود:
-
بهبود سرعت لود شدن وبسایتها
همانطور که اشاره کردیم به واسطه نزدیکتر شدن محتوا به کاربر (از نظر جغرافیایی)، وبسایتها در مدت زمان کوتاهتری لود میشوند. این سرویس همچنین برای وبسایتهایی که محتوای ویدیویی و تصویری حجیم دارند و از مشکلات سرعت پایین خدمات برای کاربران رنج میبرند، مفید و کاربردی است.
-
کمک به بهبود سئو
از دید کسبوکارها، افزایش سرعت لود شدن صفحات موجب میشود تجربه کاربر بهبود یابد. به دنبال آن،کاربر زمان بیشتری را در وبسایت سپری مینماید و در نتیجه نرخ بانس شدن کاربران کاهش پیدا میکند. بانس رِیت (Bounce Rate) نشاندهنده میزان کاربرانی است که بدون اینکه صفحه دیگری را مشاهده کنند، از وبسایت خارج میشوند. از سوی دیگر برای گوگل و دیگر موتورهای جستجو، سرعت اجرای یک سایت از فاکتورهای مهم است. تمامی اینها در نهایت بهبود در رتبه سئو سایت را به همراه خواهد داشت.
-
کاهش هزینه پهنای باند مصرفی
یکی از مهمترین هزینههایی که به وبسایتها تحمیل میشود، به «میزان مصرف پهنای باند» مربوط است. سیدیان به لطف فرایند کش کردن اطلاعات و برخی بهینهسازیهای دیگر میتواند میزان اطلاعاتی که از سرور خوانده میشود را کاهش دهد. در نتیجه در میزان پهنای باند استفاده شده در سمت سرورهای میزبان صرفهجویی میشود.
-
بهبود دسترسی به محتوا و نیز افزونگی
یکی از نگرانیهایی که برای بسیاری از کسبوکارها مطرح میشود، از دسترس خارج شدن وبسایت یا سرویسها است که گاه به دلیل میزان بالای ترافیک و گاه به دلیل استفاده بیش از توان، از منابع سختافزاری پیش میآید. شبکه توزیع محتوا به لطف طبیعت توزیعشدهای که دارد میتواند میزان بسیار بالایی از ترافیک را عبور داده و مدیریت کند. همچنین به دلیل افزونگی سرورها، در مقایسه با سرورهای میزبان اطلاعات سایتها یا سرویسها، احتمال از کار افتادگی بسیار پایینتری دارد و همیشه وبسایتها را آنلاین نگه میدارد.
-
بهبود امنیت سرویسها
یک سیدیان میتواند از طریق خنثی کردن حملاتی از جمله DDoS و بسیاری بهبودهای دیگر، از کاربران در مقابل برخی از حملات و مشکلات امنیتی محافظت نماید.
چالشهای شبکه توزیع محتوا چیست؟
استفاده از این سرویس در کنار تمامی مزایا، با چالشهایی نیز همراه است که در ادامه مطلب «CDN چیست» به آنها میپردازیم:
-
از کار افتادن CDN
این احتمال وجود دارد که خدمات CDN به دلایل مختلف با مشکل مواجه شود و در نهایت کاربران امکان دسترسی به وبسایت یا خدمات را از دست دهند. البته در مورد ارائهکنندگان شبکه توزیع محتوای با کیفیت، احتمال چنین موضوعی بسیار کم است.
-
صرف هزینه
استفاده از سیدیان در کنار مزایایی که دارد صرف هزینه را میطلبد.
-
مکان سرورهای سیدیان
اگر ارائهدهنده سیدیان، در نزدیکی کاربران شما سرور نداشته باشد، تجربه وبگردی سریعتری برای کاربران رقم نمیخورد و حتی ممکن است سرعت لود شدن صفحات افزایش یابد. به عنوان مثال اگر سرور اصلی شما در ایران است و قصد دارید از یک ارائهدهنده خدمات سیدیان اروپایی، که در ایران سرور ندارد، خدمات دریافت نمایید، عملا از نظر بهبود سرعت لود شدن وبسایت خود، کمکی به کاربران داخل ایران نخواهید کرد.
-
محدودیتهای برخی از سیدیانها
برخی از کشورها محدودیتهایی را بر آدرس آیپی بعضی از ارائهکنندگان سیدیان اعمال میکنند و به این ترتیب ممکن است کاربران آن کشور امکان دسترسی به سایت شما را نداشته باشند. به همین دلیل در بسیاری از شرایط استفاده از سرویسهای محلی هر کشور انتخاب بهتری برای سازمانهایی است که خدماتشان را به کاربران کشور خود ارائه میکنند.
CDN چطور کار میکند؟
شبکه توزیع محتوا برای بهبود دسترسی به محتوا، از سرورهایی بهره میبرد که در شبکههای IXP مختلف و در مکانهای متنوع قرار گرفتهاند. IXP یا نقطه تبادل اینترنت (Internet Exchange point) مکانی فیزیکی است که از طریق آن شرکتهای ارائهکننده زیرساختهای اینترنتی (از جمله ISPها) و نیز شبکههای توزیع محتوا به هم متصل میشوند تا با یکدیگر و با اینترنت در ارتباط باشند.
سرورهای شبکههای توزیع محتوا با اتصال به IXPها، هزینهها را کاهش میدهند و از انتقال اطلاعات با سرعت بالا بهره میبرند. به آن سرورهای سیدیان که نزدیک به کاربر قرار گرفتهاند و اطلاعات را در اختیارش میگذارند، «اج سرور» (Edge Server) یا «سرور لبه» میگویند. اج سرورها معمولا در IXPها یعنی در لبه شبکه قرار دارند. به سروری که نسخه اصلی محتوای وبسایتها را نگهداری میکند نیز سرور مبدأ (Origin Server) میگویند. در ادامه به راهکارهای این سرویس و نحوه علکرد آنها میپردازیم.
CDN چگونه تاخیر لود شدن وبسایت را کاهش میدهد؟
بهبودهای عملکرد که به لطف سیدیان حاصل میشود شامل ۳ گروه اصلی است:
-
کاهش فاصله
منظور کاهش فاصله فیزیکی بین کاربر و اطلاعات مورد درخواست او توسط این سرویس است.
-
کاهش میزان انتقال اطلاعات
پیادهسازی تکنیکهایی برای کاهش حجم فایلهای مورد نیاز کاربر است که موجب میشود زمان لود شدن اولیه صفحات وب یا سرویسها کاهش یابد. به این منظور از روشهایی برای کاهش حجم فایلها از جمله فشردهسازی اطلاعات و نیز کوچکسازی اسناد جاوا اسکریپت و CSS (یا به عبارتی minification) استفاده میشود.
-
بهبودهای سختافزاری و نرمافزاری
شامل بهبودهای عملکردی در سمت زیرساختهای سرور است. یکی از این بهبودها استفاده از فضای ذخیرهسازی سریعتر SSD به جای هارد دیسک است. راهکار دیگر پیادهسازی لود بالانسینگ (Load Balancing) برای مدیریت و برنامهریزی نحوه تقسیم پهنای باند است.
زمان لود شدن وبسایت با استفاده از CDN چه تفاوتی دارد؟
در ادامه مطلب CDN چیست به موضوع میزان بهبود زمان لود شدن وبسایت به کمک این قابلیت میپردازیم.
بیایید این موضوع را با ذکر یک مثال بررسی کنیم. تصور کنید از تهران میخواهید وبسایتی را باز کنید که سرور آن در ژاپن با فاصله ۷۵۰۰ کیلومتر دورتر است. هر درخواستی که برای اطلاعات از سمت شما ارسال میشود باید این فاصله را طی کرده و پاسخ آن از سمت سرور باز گردد.
طی کردن اطلاعات در این مسیر مانند این است که شما برای یک پرواز از تهران به ژاپن، در چندین فرودگاه در شهرهای مسیر پیاده شده و مجددا سوار هواپیما میشوید. در عمل منظور این است که طی این فرایند، اطلاعات شما از روترهای متعددی در سطح شبکه اینترنت گذر میکند تا بالاخره به مقصد برسد. همین موضوع موجب میشود شاهد تاخیرهای متعدد در ارسال و دریافت اطلاعات باشیم و در نهایت وبسایت مورد نظرتان با تاخیر فراوان مثلا ۳۰۰۰ میلیثانیه (معادل ۳ ثانیه) نمایش داده شود.
اما با CDN شرایط تغییر میکند. فرض کنید که یکی از سرورهای شبکه توزیع محتوایی که سرور ژاپن از آن استفاده میکند در میانه راه، در مشهد قرار گرفته است. در این صورت اطلاعات درخواستی، مسافت بین تهران و مشهد و برعکس را طی میکند که کمتر از ۱۰۰۰ کیلومتر است. به این ترتیب وبسایت مثلا در مدت زمان ۱۰۰۰ میلیثانیه (یک ثانیه) لود میشود که بسیار کمتر از ۳ ثانیه است.
شاید در ابتدا تصور کنید که چنین کاهشی، آنقدرها هم زیاد نیست و تاثیری در تجربه کاربر ندارد. اما واقعیت این است که همین تفاوت به ظاهر اندک میتواند تجربه کاربری بسیار متفاوتی را رقم بزند. علاوه بر این زمانی که حجم داده تبادل شده افزایش مییابد، بهبودهای اینچنینی به شدت به چشم میآیند و بر تجربه کاربر تاثیر مهمی میگذارند.
کَشینگ در شبکه توزیع محتوا چیست؟
همانطور که اشاره کردیم زمانی که یک کلاینت، درخواست یک فایل را به سرور اصلی میدهد، اطلاعات باید مسیری را تا سرور طی کرده و پاسخ سرور هم باید در همین مسیر بازگردد. اما سرور CDN برای کاهش تاخیر راهکاری دارد.
زمانی که سیدیان در میانه مسیر بین کاربر و سرور اصلی قرار میگیرد، درخواست کاربر به سرور سیدیان ارسال میشود. سپس سرور سیدیان، این اطلاعات را از سرور اصلی دریافت کرده و یک نسخه از آن را برای خود نگه میدارد و در عین حال نسخههای مشابه را در شبکه سیدیان توزیع میکند. با نگهداری این اطلاعات میتواند در دفعات بعد که درخواست مشابهی را دریافت کرد، اطلاعات را با سرعت بالاتری در اختیار کاربر بعدی قرار دهد و دیگر نیازی نباشد اطلاعات از سرور اصلی دریافت شود.
کوچکسازی اطلاعات و فشردهسازی در CDN چیست؟
به منظور اینکه زمان لود شدن صفحات در CDNها کاهش یابد، یکی از راهکارها کاهش میزان اطلاعات رد و بدل شده بین سرورهای کش سیدیان و کاربران است تا هم در مصرف پهنای باند صرفهجویی شود و هم تاخیر کاهش یابد. دو راهکار کلیدی که به این منظور استفاده میشود، کوچکسازی اطلاعات و فشردهسازی است.
کوچکسازی اطلاعات یا Minification فرایندی برای کاهش حجم اطلاعات رد و بدل شده است. برنامهنویسان در فرایندهای کدنویسی، توضیحاتی را در کدها قرار میدهند که به درک بهتر کدها توسط سایر برنامهنویسان کمک میکند. علاوه بر این گاه کدها شامل فاصلههای بیش از حد بین متنها هستند و گاه برای متغیرها، نامهای منطقی و قابل فهم انتخاب شده است. اما کامپیوترها برای پردزاش کدها اساسا نیازی به هیچ یک از این بخشهای کدها ندارند. به همین دلیل در فرایند کوچکسازی اطلاعات، بسیاری از این اطلاعات، پیش از رد و بدل شدن بین سرور سیدیان و کاربر حذف میشوند تا حجم اطلاعات رد و بدل شده کاهش یابد و در نتیجه ، کاربر تاخیر پایینتر و سرعت لود شدن سریعتر صفحات وب را تجربه نماید.
اما فشردهسازی فایل در CDN چیست؟ فشردهسازی راهکار دیگر برای کاهش تاخیر و مصرف پهنای باند و در نهایت لود شدن سریعتر صفحات وب و سرویسها است. GZip یکی از متدهای رایج فشردهسازی اطلاعات است که در حوزه انتقال اطلاعات صفحات وب در اینترنت کاربرد دارد. بسیاری از CDNها به طور پیشفرض GZip را روی سرویسهای خود فعال میکنند. جالب این است که GZip معمولا حجم فایلها را بین ۵۰ تا ۷۰ درصد کاهش میدهد.
CDN از چه سختافزاری برای بهبود سرعت بهره میبرد؟
یکی از مهمترین سختافزارهایی که در بهبود عملکرد سیدیان تاثیر دارد، استفاده از فضای ذخیرهسازی SSD در سرورهای سیدیان است که سرعت بسیار بالاتر و تاخیر بسیار پایینتری در مقایسه با هارد دیسکها دارد. امروزه عمده شبکههای توزیع محتوا از SSD استفاده میکنند.
در کنار این موضوع، راهکارهای نرمافزاری از جمله لود بالانسینگ در نظر گرفته میشود تا پهنای باند، بین سرورهای متعدد CDNها توزیع شود و علاوه بر آن امکان افزایش سریع پهنای باند حین بالا رفتن تعداد درخواستها وجود داشته باشد. راهکار دیگر، Failover هوشمند است. به کمک این راهکار، اگر یک سرور سیدیان به دلیل مشکل سختافزاری، آفلاین شود، به طور خودکار ترافیک آن روی سرورهای دیگر توزیع میشود.
CDN چگونه از اطلاعات حفاظت میکند؟
امنیت اطلاعات یکی از بخشهای جدایی ناپذیر سیدیان است. ارتباطات در یک شبکه توزیع محتوا میتواند با استفاده از پروتکلهای SSL/TLS ایمن شود. TLS یک پروتکل رمزنگاری دادهها برای ارسال اطلاعات در اینترنت است که نسخهای پیشرفتهتر از SSL محسوب میشود. در واقع امروزه عمده گواهینامههایی که به نام SSL استفاده میشوند از پروتکل TLS بهره میبرند که ایمنتر و سریعتر از SSL قدیمی است.
ارائهکنندگان شبکههای توزیع محتوا از پروتکل TLS استفاده میکنند تا احراز هویت ایمن فراهم شود و در عین حال اطلاعات رمز نگاری گردد. این پروتکل همچنین امکان تشخیص جعل و دستکاری در اطلاعات را ارائه مینماید.
کاربردهای شبکه توزیع محتوا CDN چیست؟
پس از اینکه با مفاهیم سیدیان آشنا شدیم این سوال پیش میآید که کاربردهای CDN چیست؟ این سرویس کاربردهای متنوعی دارد و میتوان گفت که تقریبا هر شخصی که به اینترنت دسترسی دارد از CDN بهره برده است.
- کاربر نهایی: وبسایتها و وباپلیکیشنها به کمک CDN سریعتر لود میشوند و به این ترتیب تجربه بهتری برای کاربران نهایی رقم میخورد. البته باید اشاره کرد که کاربر نهایی متوجه نمیشود که از شبکه توزیع محتوا بهره میبرد؛ چرا که آنچه این سرویس انجام میدهد، در پشت صحنه و به دور از دید کاربران اتفاق میافتد.
- مالکان محتوا: مالکان اپلیکیشنها و محتوا از جمله سایتهای فعال در حوزه تجارت الکترونیک، مدیا و شرکتهای ارائهدهنده سرویسهای کلود از این قابلیت برای این موارد بهره میبرند: بهبود تجربه کاربری، کاهش نرخ از دست دادن کاربران، بهبود تاثیر تبلیغات، بهبود نرخ تبدیل کاربران و تقویت وفاداری مشتریان
- ارائهکنندگان خدمات استریم و VODها: به کمک سیدیان خدمات خود را با کیفیت و سرعت بالاتر در اختیار کاربران قرار میدهند و علاوه بر این در پهنای باند صرفهجویی مینمایند.
- بانکها: میتوانند با استفاده از سیدیان انتقال امن دادهها را فراهم کنند.
- اپلیکیشنهای موبایل: توسعهدهندگان اپلیکیشنهای موبایل با کمک CDN تجربه کاربری سریعتر، با تاخیر کمتر و سرعت پاسخدهی بالاتر را رقم میزنند.
- سازمانهای دولتی: میتوانند سرویسهای مورد نظر خود را با کیفیت بالا و به صورت دائمی در اختیار شهروندان قرار دهند.
سخن پایانی
در این مقاله به این موضوع پرداختیم که CDN چیست. روز به روز به محبوبیت شبکههای توزیع محتوا افزوده میشود و کمتر فردی است که تجربه کار با اینترنت را داشته باشد اما از CDN بهره نبرده باشد. با این حال احتمالا اکثر ما هیچگاه متوجه استفاده از این قابلیت نشدهایم؛ چرا که عملکردش از دید ما مخفی است اما در نهایت تجربه سریعتر، با کیفیتتر، ایمنتر و بهتری را در وبگردی و بهره بردن از خدمات آنلاین برایمان رقم میزند. اما کاربرد سیدیان تنها به سمت کاربر محدود نیست و مزایای متعددی برای صاحبان کسبوکارها دارد.