شبکه توزیع محتوا که با نام CDN یا همان Content delivery network شناخته میشود یکی از بخشهای مرتبط با وب است. این سیستم یک نوع برنامه مدرن است که در وب سایتهای ارائه کننده محتوا استفاده میشود. در واقع محتوایی که امروزه در گوشی تلفن همراه خود میبینید. یا در وب سایتها اقدام به دانلود برنامه، فیلم، ویدئو و یا هر محتوای دیگری میکنید احتمال زیاد از همین CDN استفاده میکند.یکی از مهم ترین کارهایی که در سئو فنی باید انجام داد فعال سازی cdn است تا خزنده های موتورهای جستجو با سرعت بهتری سایت شما را بررسی کنند..
شبکه توزیع محتوا یا CDN چیست؟
از لحاظ تئوری یک شبکه توزیع محتوا در واقع توزیعی جهانی از سرورها است که به کاربران دسترسی استفاده و سریع از محتواها را میدهند. این سرورها که در بستر اینترنت قرار دارند، با عملکردی سریع و ایجاد مسیری امن به وب سایتهای مرتبط با خود خدمات محتوا ارائه میدهند.
محتوا از سرور اصلی به سمت شبکه توزیع محتوا یا همان CDN ها ارسال شده و در کش حافظه آنها قرار میگیرد؛ یعنی به صورت موقت در حافظه آنها قرار میگیرد. این کش و حافظه به صورت برنامه ریزی هر چند ساعت (چند دقیقه و یا حتی چند ثانیه) یکبار آپدیت میشود تا محتواهای جدید را در داخل حافظه خود ذخیره کند.
خدمات CDN برای چه نوع سایتها و محتواهایی استفاده شده است:
- برای خبرگزاریهای بزرگ که در سراسر دنیا کاربر و بازدید کننده دارند.
- در سایتها و رسانههای بزرگ اجتماعی که محتواهای چندرسانهای (ویدئویی) را به کاربران خود ارائه میدهند.
- وبسایتهای ارائه سرگرمی مانند Netflix که میتوانند یک محتوای ویدئویی را با چندین کیفیت به کاربران خود ارائه دهند.
- پلتفرمهای تجارت الکترونیک با چندین میلیون کاربر
- شرکتهای بازیسازی که از بستر اینترنت برای اجرای بازیها به صورت آنلاین استفاده میکنند.
در این سایتها برای اینکه محتوا خیلی سریع به دست کاربر برسند نیاز به استفاده از سرورهای شبکه توزیع محتوا است تا کاربران بتوانند در کوتاهترین زمان ممکن و بدون تأخیر به محتواهای مورد نیاز خود دسترسی پیدا کنند.
مثالی در خصوص Content delivery network
در خصوص شبکه توزیع محتوا بهتر است یک مثال بزنیم. استفاده از CDN باعث میشود که محتوای وب سایتها بجای اینکه از سرورهای دور (در قارههای دیگر) برای ما ارسال شوند، از نزدیکترین سرور به کاربر فراخوانی شوند.
برای درک بهتر یک فروشگاه را برای شما مثال میزنیم.
فکر کنید که شما یک فروشگاه الکترونیکی در کشور آمریکا را اداره میکنید. شما یک وبسایت فوقالعاده نیز برای این فروشگاه ایجاد کردهاید؛ آن را روی سروری در یکی از شهرهای ایالت شرقی آمریکا قرار دادهاید. تمام فایلهای مورد نیاز وبسایت شما در این سرور ذخیره شده است؛ بنابراین هنگامی که یک کاربر به سایت شما دسترسی پیدا میکنند فایلهای سایت شما از این سرور خوانده شده و روی سیستم کاربر نشان داده میشود.
حال فکر کنید یک نفر از بخش غربی آمریکا میخواهد از سایت شما بازدید کند. در این صورت فایلها از همین سرور شرقی فراخوانی شده و با تأخیر چند صدم ثانیهای به کاربر نشان داده میشوند. در ظاهر این چند صدم ثانیه مقدار کمی است؛ اما اگر تعداد کاربران شما به چندین هزار نفر رسیده و ترافیک سایت شما بالاتر رود این چند صدم ثانیهها ممکن است خیلی بیشتر شود. در نهایت بارگذاری صفحه وب سایت شما برای کاربرانی که دورتر از سرور اصلی هستند کندتر انجام میشود. این کندی به شدت برای مشتریان یک فروشگاه ناخوشایند است. هیچ کسی از یک سایت کند خرید نمیکند!
چگونه یک شبکه توزیع محتوا یا همان Content delivery network این زمان کند را از بین می رد؟
همانطور که قبلاً گفته شد یک شبکه Content delivery network یک توزیع جهانی از سرورهای سایت شما است که در نقاط مختلف دنیا قرار گرفتهاند. این سرورها همان محتوای وب سایت شما را ارائه میدهند و تفاوتی با یکدیگر در نوع و تعداد فایلها ندارند. به این از این سرورها در شبکه یک CDN Point of Presence (PoP) یا Edge Server گفته میشود.
به جای اینکه کاربران به سرور اصلی شما در امریکا وصل شوند به این سرورها وصل شده و محتوای وب سایت شما را مشاهده میکنند. در نتیجه سایت شما سریعتر برای کاربران نمایش داده میشود. فرقی نمیکند که تعداد کاربران شما چند هزار نفر باشند. شما میتوانید بدون وقفه به همه کاربران خود در دنیا خدمات و محصولات خود را ارائه دهید.
در تصویر بالا همانطور که مشاهده میکنید یک سرور در ویرجینیای شمالی قرار داده شده است. این سرور دارای CDN هایی از نوع PoP است که در چندین نقطه مختلف دنیا قرار گرفتهاند. همچنین تعدادی CDN در آمریکا از جمله سواحل غربی قرار گرفتهاند.
در این صورت زمانی که کاربر به وب سایت شما دسترسی پیدا میکند به جای دریافت منابع مورد نیاز خود از سرور اصلی از نزدیکترین CDN به محل زندگی خود استفاده کرده و منابع را از این CDN دریافت میکند. اساس کار CDN ها به این صورت از که به درخواست کاربر نزدیک خود پاسخ میدهند. در این حالت زمان بارگذاری اطلاعات و محتواها برای کاربر خیلی سریعتر بوده و دیگر شاهد تأخیر نخواهیم بود.
چه نوع محتوایی را میتوان در Content delivery network ارائه داد؟
از لحاظ تئوری شما میتوانید از شبکه توزیع محتوا برای کش کردن کل وب سایت خود در اینترنت استفاده کنید. اینکه چه مدت این محتواها را کش کنید و یا اینکه اصلاً باید آنها را کش کنید و در سرور شبکه توزیع محتوا نگهدارید به نوع سرور Content delivery network بستگی دارد.
برای اینکه بیشتر از این موضوع آشنا شوید یک مثال میزنیم:
به عنوان مثال فروشگاه اینترنتی کفش نایکی در وب سایت خود کفشهای جدید خود را میفروشد. به صورت همزمان دو کاربر به صفحه فروش یک محصول خاص نگاه میکنند. اولی یک مرد از کالیفرنیا و دومی یک زن از نیویورک است. این کفش یک کفش کتانی مخصوص دویدن به رنگ مشکی است. تصویر یکسانی برای هر دو وجود دارد و هر دو این نفر یک محصول را نگاه میکنند.
این محتوا برای هر کاربر تغییر نمیکند و به صورت یکسان در وب سایت قرار رفته است. در نتیجه بهترین کاندید برای استفاده در از شبکه توزیع محتوا است. اگر شما به صورت مستقیم از سرور اصلی سایت به این صفحه بروید هم تصویر همین کتانی را مشاهده میکنید.
در نتیجه این تصویر بر اساس کاربران تغییر نکرده و به اصطلاح یک محتوای ایستا است. این محتوای ایستا و یا همان “محتوای ثابت ” برای تمامی کاربران به صورت ثابت نمایش داده میشود. کدهای جاوا اسکریپت و کدهای CSS هم برای همه افراد به صورت یکسان ارائه میشود به عنوان محتوای ثابت دستهبندی میشوند.
اما شما در وب سایت خود نرخهای متفاوتی برای حمل و نقل و ارسال کالاها در نظر گرفتهاید. ممکن است بخواهید به عنوان توصیه به کاربر اعلام کنید که محصول را به شکل دیگری دریافت کند. یا حتی نحوه ارسال را برای کاربران خانم و آقا متفاوت در نظر بگیرید. شاید پیشنهادی در وب سایت خود ارائه دهید که فقط برای شهر نیویورک امکانپذیر است و کاربران شهر نیویورک باید در یک ساعت آینده از وب سایت خرید کنند تا مشمول تخفیف خوبی شوند.
در این صورت محتوای وب سایت شما برای این دو کاربر متفاوت خواهد بود. در واقع کاربر زن که در نیویورک قرار دارد محتوای یکسانی از لحاظ تصویر و کدهای سایت مشاهده میکند اما قیمت و تخفیف درج شده برای کاربر زن در نیویورک نسبت به کاربر مرد در کالیفرنیا تفاوت دارد و کاربر زن قیمت کمتری را مشاهده میکند. چرا که یک تخفیف مدت دار برای کاربران شهر نیویورک در سایت اعمال شده است. در نتیجه بر اساس تنظیمات API سایت، توصیههایی که برای خرید محصول و قیمت آن به کاربران ارسال میشود ممکن است متفاوت باشند.
به چنین محتوایی که برای کاربران متفاوت است “محتوای پویا ” گفته میشود. محتوای پویا میتواند بر اساس کاربر (مانند توصیهها و تخفیفها) یا بر اساس زمان (مانند دسترسی محدود تا نیمه شب) تغییر کند. ذخیره کردن چنین محتوایی برای طولانی مدت در شبکه توزیع محتوا کار بسیار دشواری است. البته این کار غیر ممکن نیست اما نیاز به تنظیمات دقیق سرور و زیر ساختهای قوی دارد.
شاید بتوان نرخهای حمل و نقل و ارسال بار را برای چندین ساعت در سرور شبکه توزیع محتوا در حافظه کش قرار داد چرا که اغلب این کرایهها تغییر نمیکنند اما توصیهها و تخفیفهای خریدی که تا ساعت مشخصی انجام میشوند، نیاز به دقت و تنظیم دشواری دارند.
سایر وظایف CDN چیست؟
همانطور که در بالا نیز به آن اشاره شد بهبود زمان بارگذاری محتوا برای کاربران یکی از مهمترین وظایف اصلی شبکه توزیع محتوا است؛ اما این شبکه وظایف دیگری نیز دارد که به برخی از آنها اشاره شده است. البته برخی از این وظایف توسط سازمانهای بزرگتر و پیشرفتهتر استفاده میشوند:
افزایش در دسترس بودن
یکی از وظایف مهم استفاده از شبکه توزیع محتوا این است که محتوا همیشه در دسترس کاربران است. معمولاً وقتی محتوایی در سرور خود ارائه میدهید با افزایش کاربر و ترافیک روبرو میشوید در این صورت اگر از یک سرور معمولی استفاده کنید ممکن است با کاهش پهنای باند مواجه شوید. همچنین در صورتی که مشکل غیر منتظرهای در سرور اصلی شما به وجود بیاید و سرور از کار بیفتد کل سایت شما از کار افتاده و برای شما مشکل ایجاد میشود.
در این صورت شبکه توزیع محتوا دو کار برای شما انجام میدهد:
- مرحله اول کاربرانی که به خاطر ترافیک زیاد حتی به سرور شما وصل نمیشوند را به سمت خود راهنمایی کرده و به آنها خدمات ارائه میدهد. در نتیجه بار اضافی روی سرور اصلی شما ایجاد نمیشود و به خوبی به کار خود ادامه میدهد.
- مرحله دوم اینکه اگر محتواها در کش شبکه توزیع محتوا یا همان CDN های شما وجود داشته باشند حتی اگر سرور اصلی شما از کار بیفتد، باز هم این CDN ها میتوانند به کاربران ورودی شما خدمات و محتوا ارائه دهند. در این صورت شبکه توزیع محتوا به شما زمان کافی را ارائه میدهد تا مشکلات سرور اصلی خود را برطرف نمایید.
- افزایش امنیت وب سایت شما
این قابلیت یکی از قابلیتهای پیشرفته در شبکه توزیع محتوا است که معمولاً توسط شرکتهای بزرگ استفاده میشود. از آنجایی که CDN PoP ها در اولیه لایه قرار میگیرند در نتیجه ترافیک ورودی کاربران به سمت این سرورها هدایت میشود. در نتیجه این سرورها اولین لایه و خط دفاعی شما در برابر حملات است.
حال اگر یک شبکه توزیع محتوا بتواند ترافیک بد را از ترافیک خوب جدا کند، میتواند جلوی همه ترافیکهای بد به سرور اصلی شما را بگیرد. در نتیجه سرور اصلی شما از حملات در امان خواهد بود.
البته باید به این موضوع دقت داشت که امنیت در وب یک مقوله بسیار پیچیده و گستردهای است که خارج از موضوع اصلی این مقاله است.
با این حال برخی از ویژگیهای معمول در CDN ها را اشاره میکنیم:
- یکی از این ویژگیهای معمولی این است که CDN همه پورتها غیر از پورتهای HTTP را مسدود میکند. این ویژگی برای تمام CDN ها قابل دسترسی است.
- ویژگی پیشرفته دیگری که در شبکه توزیع محتوا قرار دارد محافظت از رباتها، برنامههای حمله به فایروال وب و حملات از DDoS ها است که به عنوان ماژولهای قابل ارائه در شبکه توزیع محتوا در دسترس هستند. البته چنین ماژولهای محافظتی معمولاً گران قیمت هستند و پیکربندی آنها به زمان و تلاش و دانش بالایی نیاز دارد. در نتیجه آنها توسط چندین شرکت منتخب استفاده میشوند. این شرکتها معمولاً با چنین چالشها و حملاتی در سرورهای شبکه توزیع محتوا خود روبرو هستند و از این راه حلهای گران قیمت استفاده میکنند.
کاهش هزینهها
از آنجایی که محتوای ثابت یکی از بهترین مدلهای محتوا برای سرورهای شبکه توزیع محتوا است در نتیجه این نوع محتوا توسط CDN ها کش شده و به راحتی به کاربران نمایش داده میشود. در نتیجه هزینه زیر ساخت برای پهنای باند بیشتر در سرور اصلی شما کاهش پیدا میکند. علاوه بر کاهش هزینه پهنای باند، شما میتوانید هزینههای تحمیل شده برای افزایش بار سرور اصلی را نیز کاهش دهید. در نهایت صورتحساب ماهیانه شما مقدار بسیار کمتری را به شما نمایش داده و شما هزینههای کمتری را متحمل خواهید شد.
فرآیند بروز رسانی کش Content delivery network چگونه انجام میشود؟
همانطور که گفته شد رایجترین وظیفه یک سرور شبکه توزیع محتوا این است که محتوای سایت اصلی را کش کرده و آن را در مدت زمان کوتاهتری به کاربر ارائه دهد. این به این معنی است که مدت زمان لود صفحه برای کاربر به شدت کاهش پیدا میکند و کاربر سریعتر سایت را مشاهده میکند.و
در نتیجه محتوا باید با سرعت بالایی در سرور شبکه توزیع محتوا قرار داده شده و خیلی سریع هم برای کاربر ارسال شود. محتوا اگر مدت زمان بیشتری در کش سرور CDN قرار بگیرد سریعتر به کاربر نمایش داده میشود. یکی از نکات مهمی که در ابزار Google PageSpeed به آن اشاره میشود و برای گوگل مهم است، این است که سایت شما به دلیل نداشتن کش طولانی مدت جریمه شده و از امتیازش کاسته میشود.
با توجه به این موضوع شما باید بتوانید که مدت زمان ماندن در کش سرور شبکه توزیع محتوا خود را مدیریت کرده و اگر محتوای سرور اصلی شما تغییر کرد خیلی سریع آن را در سرور CDN فراخوانی کنید. در واقع اگر به عنوان مثال شما در سایت اصلی خود تصاویر مربوط به کتانی نایکی را که مشکی رنگ بود تغییر دهید، این تصویر در سایت شما بلافاصله تغییر میکند اما در سرور CDN این تغییر به سرعت رخ نمیدهد.
برای حل این مشکل استانداردهایی در سرورهای شبکه توزیع محتوا قرار میگیرد که روشهای بروزرسانی را بهینه سازی میکند. در این صورت میتوانید این اطمینان را به دست بیاورید که در صورت بروز رسانی سایت خیلی سریع سرور CDN شما تغییرات انجام شده روی سایت را متوجه شده و خیلی سریع اقدام به بروز رسانی خود کند. در خصوص این استانداردها و تکنیکها در مقالات تخصصی به صورت مفصل توضیح داده شده است و در موضوع این مقاله قرار نمیگیرند.
نتیجهگیری
در این مقاله در خصوص شبکه توزیع محتوا و کارایی CDN ها توضیح داده شد. شما در خصوص نحوه عملکرد این سرورها اطلاعات لازم را کسب کردید. تا حدودی با اصطلاحات فنی در خصوص شبکه توزیع محتوا آشنا شدید. برای اینکه بیشتر با شبکه توزیع محتوا آشنا شوید باید مقالههای فنی در خصوص تنظیم این سرورها را مطالعه کنید. دنیای استفاده از سرورهای CDN بسیار بزرگ است و شما را میتواند به راحتی در خود غوطهور کند.
اگر سوالی در مورد نحوه نصب CDN دارید همکاران ما در سایت سئورب پاسخگوی شما هستند
شرکتهای معروف فروش CDN
- کلود فلیر
- ابر آروان
- BunnyCDN
- fastly
- keycdn
سؤالات متداول در مورد CDN
- شبکه توزیع محتوا به چه معنا است؟
شبکه توزیع محتوا یا همان CDN گروهی از سرورها هستند که در نقاط مختلف جغرافیایی قرار گرفتهاند. هدف از این سرورها این است که محتوای ارائه شده در وب سایتها را به نزدیکترین کاربر خود ارائه دهند تا کاربر با سرعتی مناسب بتواند به محتوای مدنظر خود دسترسی داشته باشد.
- سرور CDN چیست و برای چه محتواهایی استفاده میشود؟
شبکه توزیع محتوا امکان انتقال سریع انواع محتواها در بستر اینترنت را دارد. این محتواها میتوانند شامل صفحات HTML، کدهای جاوا و اسکریپتهای Css، ایمیلها، متنها، عکسها، ویدیوها، فایلهای صوتی، دیتاها و بازیهای آنلاین باشند.
- مفهوم Cloud CDN چیست؟
مفهوم Cloud CDN در واقع ابزاری است که توسط گوگل ارائه شده است. این ابزار در شبکه توزیع محتوا مجموعه گوگل استفاده میشود و برای ذخیرهسازی متعادل اطلاعات در سرورهای مختلف استفاده میشود. در این صورت هنگامی که شما اطلاعات مورد نیاز را در گوگل جستجو میکنید یک از سرورهای شبکه توزیع محتوا گوگل یا همان Cloud CDN گوگل که در نزدیکترین فاصله با شما است به درخواست و جست و جوی شما پاسخ میدهد.
- مفهوم CDN video به چه معنا است؟
مفهوم CDN video به معنی است که یک شبکه توزیع محتوا فقط برای پشتیبانی فایلهای ویدئویی ایجاد شده است. این سرورها به شما کمک میکنند که به عنوان بیننده فایلهای ویدئویی از سرتاسر دنیا بتوانید با سرعت و بدون تأخیر فایلهای ویدئویی مدنظر خود را مشاهده کنید.
- کش کردن در CDN به چه معنا است؟
کش کردن به فرایند ذخیرهسازی اطلاعات و محتواها در سرورهای شبکه توزیع محتوا گفته میشود. فرایند کش کردن یک فرایند موقتی است و اطلاعاتی که کش شدهاند بعد از یک زمان مشخص پاک خواهند شد. در نتیجه سرورهای CDN محتواهای ارائه شده در سرور اصلی را هر چند ساعت یکبار کش کرده و در حافظه خود ذخیره میکنند در نتیجه شما وقتی به یک سرور CDN متصل میشوید اطلاعات کش شده را مشاهده میکنید. البته در سازمانهای بزرگ و سرورهای مدرن CDN فرایند کش کردن ممکن است هر چند ثانیه یکبار رخ بدهد.
فهرست منابع
https://www.belugacdn.com/blog/cdn/what-is-cdn
https://www.cdnetworks.com/what-is-a-cdn
https://www.digitalocean.com/community/tutorials/using-a-cdn-to-speed-up-static-content-delivery
بدون دیدگاه