
CDN چیست و چرا باید از آن استفاده کنید؟
CDN امروزه از جمله ابزار لازم برای اکثر وبسایتها و برنامههای کاربردی می باشد که هر روزه مردم با آنها سر و کار دارند و جهت ارائه هرچه سریعتر محتوای موجود در سایتها یا برنامهها (مانند تصاویر، متن و ویدئو) به سراسر جهان با سرعت بالا استفاده میشود. به بیانی دیگر، اگر سرورهای یک وبسایت در شهر تهران مستقر باشند، مردم مازندران سریعتر از افراد مقیم اهواز یا زاهدان محتوا را دریافت خواهند کرد! به این ترتیب هرچه مشتریان از دیتا سنتر یک شرکت دورتر باشند، سرعت لود وبسایت یا برنامه کاهش خواهد یافت و این موضوع یک تجربه کاربری ناسازگار و خسته کننده را ایجاد میکند. در مجموع کاهش سرعت بارگذاری و لود تجربه ناخوشایندی را منتقل مینماید و باید اشاره کرد که:
- 25 درصد از کاربران وبسایتی را که لود آن بیش از چهار ثانیه طول میکشد را رها میکنند.
- 74 درصد از کاربران سایتی که لود آن بیش از پنج ثانیه در نسخه موبایل بطول انجامد، آن را رها میکنند.
- 46 درصد از کاربران به وبسایتهای کُند باز نمیگردند!
عمده موارد و مشکلات فوق را به راحتی میتوان بهوسیله خرید CDN برطرف کرد. پس در ادامه همراه با ما باشید.
- منظور از CDN چیست؟
- CDN ها چگونه کار میکنند؟
- ذخیره محتوا یا کَشینگ در CDN
- چه کسی می تواند از CDN استفاده کند؟
- CDNهای مدرن در مقابل CDNهای سنتی
- CDN پارس پک
- برتری CDN پارس پک به سایرین
- ملاحظات امنیتی با CDN های قدیمی
- حمله به CDN!
- چشم انداز جامعه CDN
- جمعبندی: اما این تازه شروع کار است!
- سوالات متداول
منظور از CDN چیست؟
CDN روشی است که با استفاده از آن میتوانید محتوای وبسایت یا برنامه تلفن همراه خود را بر اساس موقعیت جغرافیایی، سریعتر و کارآمدتر به افراد ارائه دهید. "شبکه توزیع محتوا" از شبکهای از سرورها ("نقاط حضور" یا POPs ) در نقاط مختلف جهان تشکیل شده است و نزدیکترین سرور CDN به یک کاربر، به عنوان Edge Server شناخته میشود. به این ترتیب هنگامی که افراد مطالبی را از یک وبسایت که از طریق CDN ارائه میشود درخواست میکنند، به نزدیکترین سرور edge متصل میگردند و بهترین تجربه آنلاین ممکن را در پیش رو خواهند داشت.
درک نحوه کار یک شبکه توزیع محتوا با مثال
تصور کنید که در تهران هستید و تصویری را از یک سرور در کشوری اروپایی، 5300 کیلومتر دورتر درخواست کردهاید. معمولاً ارسال درخواست و دریافت پاسخ حدود 300 میلی ثانیه طول میکشد. اگر بخواهید همان تصویر را از سروری در ایران، که در حدود 50 کیلومتری تهران قرار دارد، درخواست کنید؛ ارسال درخواست و دریافت پاسخ حدود 10 میلی ثانیه طول خواهد کشید که در واقع 30 برابر از حالت اول بهتر است، اما چون ما بر حسب میلی ثانیه صحبت میکنیم، این تفاوت ممکن است نامحسوس بنظر برسد. با این حال، اگر در نظر بگیرید که یک صفحه وب معمولی شامل بیش از 2 مگابایت اطلاعات با 30 درخواست همزمان باشد، این تفاوت بسیار چشمگیر میشود و از آنجا که هر درخواست ممکن است چندین بار رفت و برگشت به سرور داشته باشد، این میلی ثانیه به زمان طولانی تبدیل شده و باعث کندی وبسایت میشود.
شبکه تحویل محتوا به روایت تصویر
CDN ها چگونه کار میکنند؟
برای جلوگیری از نارضایتی ناشی از کند بودن سرویسدهی به کاربران، CDN ها محتوا را به کاربر نزدیکتر میکنند تا میزان تأخیر در ارائه را کاهش داده و تجربه کاربر را بهبود بدهند. از نظر تئوری، این کار ساده و جالب به نظر میرسد اما در عمل، برخی از چالش های فنی نیز وجود دارد. در قدم نخست برای کاهش تأخیر برای هر کاربر خاص، یک شبکه توزیع محتوا باید دارای یک سرور ذخیره محتوا و یک حافظه کَش (Cache) نزدیک به خود باشد، اما متأسفانه داشتن Cache نزدیک برای هر کاربر احتمالی اینترنت امکان پذیر نیست. اما در عوض، cache ها را در PoPs سازماندهی و آنها را در مناطق بزرگ جغرافیایی (اروپا ، ایالات متحده ، آسیا و غیره) توزیع کرده و سپس آنها را در مراکز اصلی جمعیتی آن مناطق قرار میدهند.
در قدم بعدی با درخواست یک کاربر، CDN باید آن را به نزدیکترین POP هدایت کند که اکثر سی دی ان ها این کار را با استفاده از فناوری به نام GeoIP انجام میدهند. GeoIP را میتوان یک جدول جستجوی بزرگ دانست که آدرسهای آی پی را به مناطق جغرافیایی، (کشور، شهر و غیره) ترسیم میکند و هنگامی که درخواست در حال پردازش است، شبکه تحویل محتوا جدول را ارجاع میدهد و ترافیک کاربر را به نزدیکترین سرور موجود هدایت میکند.
ذخیره محتوا یا کَشینگ در CDN
شما میتوانید محتویات خود را روی CDN ذخیره (موقتاً) کنید تا خیلی سریعتر از آنچه که از مبدا ارسال میگردد، بتواند از طریق سرور های edge به کاربران نهایی شما تحویل داده شود. اگر از سی دی ان استفاده میکنید، بدین معناست که اگر شخصی سعی کند از وب سایت یا برنامه تلفن همراه شما به محتوا دسترسی پیدا کند، درخواست آن شخص برای محتوا فقط باید به PoP نزدیک برود، و مسیرهای طولانی تا سرورهای اصلی شرکت را نمیپیماید.
و اما کَش(Cache) چیست؟
میتوان یک cache را به عنوان یک فروشگاه بزرگ با ارزش کلیدی در نظر گرفت. هنگامی که یک درخواست وارد میشود، وظیفه cache این است که تعیین کند کاربر چه چیزی را درخواست مینماید و داده ها را پیدا کرده و مجدداً برای کاربر ارسال میکند. اطلاعات درخواستی (request information) بسیاری وجود دارد که میتوان برای تعیین محتوای ارائه شده استفاده کرد. مواردی مانند نام دامنه، مسیرها(path)، پارامترهای پرس و جو و حتی headerها از این قبیل اطلاعات میباشند.
در این میان cache از جداول جستجوی چند سطحی با استفاده از الگوریتمهای بهینه شده، برای یافتن محتوای مناسب و درست در کوتاهترین زمان استفاده میکند. از طرفی دیگر، CDNها محتوا را دائماً پاکسازی (حذف و بروز رسانی) میکنند، به طوری که جدیدترین و مرتبطترین مطالب ارائه میگردد. این موضوع به مشاغل اجازه میدهد در صورت لزوم محتوا را به روز نمایند.
مقایسه سرویسدهی بدون CDN و با CDN
چه کسی می تواند از CDN استفاده کند؟
CDN می تواند برای هرکسی که دارای وبسایت یا برنامه تلفن همراه است و به احتمال زیاد توسط بیش از یک کاربر درخواست همزمان بر روی سامانه دارد، مفید باشد. این موضوع به ویژه برای وبسایتهای پیچیده و بزرگ با کاربران گسترده در سراسر جهان و وبسایتها یا برنامههای تلفن همراه با محتوای پویا بسیار مهم میباشد. برخی از مزایایی که CDN می تواند به وبسایت شما ارائه دهد عبارتند از:
- لودِ سریعتر برای کاربران وب و تلفن همراه
- Scaleable در مواقع ترافیک سنگین
- به حداقل رساندن خطر افزایش ترافیک در نقطه مبدا و تضمین ثبات سایت
- کاهش هزینههای زیرساختی به دلیل تخلیه ترافیک
- عملکرد بهتر سایت
CDNها مزایای خاص زیادی را برای انواع مختلف مشاغل و سازمانها ارائه میدهند، مانند:
✓ تجارت الکترونیک
CDN به سایتهای تجارت الکترونیکی کمک میکند تا محتواها را حتی در مواقع ترافیک سنگین، مانند BlackFriday و تعطیلات، سریع و کارآمد ارائه دهند.
✓ دولت
وبسایتهای بزرگ و پر محتوا میتوانند اطلاعات حیاتی را با استفاده از CDN بسیار سریعتر و کارآمدتر در اختیار شهروندان قرار دهند.
✓ دارایی، مالیه، سرمایه گذاری
CDN ها زیرساخت های سریع، امن و قابل اطمینان را برای موسسات بانکی فراهم می کنند تا داده های حساس را به مصرف کنندگان و تحلیلگران ارائه دهند.
✓ رسانه / انتشارات
وبسایتهای رسانهای باید اطلاعات را به موقع و به روز را ارائه دهند و CDN میتواند به شرکتهای رسانهای کمک کند تا عناوین و صفحات اصلی اخبار را با انتشار اخبار در زمان واقعی به روز کنند و با قدیمی شدن داده ها آنها را حذف یا آرشیو کنند.
✓ برنامه های موبایل
CDN محتوای پویای مبتنی بر مکان را برای برنامههای تلفن همراه، کاهش زمان بارگذاری و افزایش سرعت پاسخگویی ارائه میدهد.
✓ فناوری و SaaS
شبکه تحویل محتوا به وبسایتهای فناوری کمک میکند تا میلیاردها درخواست را در روز بدون اُفت عملکرد به کاربران وب ارائه دهند.
نحوه عملکرد شبکههای توزیع محتوای چندگانه
CDNهای مدرن در مقابل CDNهای سنتی
CDNها از اواخر دهه 1990 وجود داشتهاند، اما CDNهای سنتی اغلب از پیشرفت در سختافزار و فناوری عقب هستند و نمیتوانند مزایای یک CDN مدرن را ارائه دهند. اغلب CDNهای قدیمی محیط نرمافزاری سریعی برای شرکتی که دائماً در حال تکرار محصولات، بازخورد مشتریان و بهبود محصول است؛ نمیباشند. این شبکه های تحویل محتوا به مدت پنج سال یا بیشتر بدون تغییرات زیادی وجود داشته اند و دارای ناکارآمدی های مهمی هستند که CDN های مدرن آنها را برطرف ساختند، از جمله:
✓ ذخیرهسازی محتوای ایستاتیک
CDNهای سنتی فقط می توانند محتوای استاتیک را ذخیره کنند، که نسبتاً ساده است و بر اساس ورودی کاربر تغییر نمیکند. برخی از نمونههای محتوای ثابت شامل مواردی چون تصاویر، ویدئو، CSS و Javascript میباشد. از سوی دیگر، محتوای داینامیک یا پویا شامل محتوای متغیری است که به منطق سرور نیاز دارد. برای مثال میتوان به تراکنشهای کارت اعتباری یا به روزرسانی سبد خرید در یک سایت تجارت الکترونیک اشاره کرد. محتوای پویا اغلب به عنوان محتوای "غیرقابل ذخیرهسازی" طبقهبندی میشود که به دلیل حساس بودن داده ها باید از طریق سرور مبدأ ارسال گردد. این موضوع تا حدی درست میباشد اما بخش زیادی از محتوای داینامیک را میتوان ذخیره کرد، محتوایی که شامل داده های شخصی نميباشد، اما هنوز غیرقابل پیش بینی و اغلب در حال تغییر است. این محتوای پویا مبتنی بر رویداد و براساس اقدام انسان یا ماشین میباشد. اکثر شبکه های توزیع محتوا، این محتوا را "غیرقابل ذخیره سازی" تلقی میکنن، اما در واقع میتوان آنها را نیز ذخیره کرد.
✓ فضای ذخیره سازی محدود در سرور Edge
CDN های سنتی میتوانند به مشتریان خود فقط به اندازه محدود فضا ارائه نمایند، زیرا بیشتر آنها به چرخاندن هارد دیسکها متکی هستند. این بدان معناست که آنها باید اولویت بندی کنند که کدام محتوا اول در edge کَش شود و کدام یک بعدا در آن cache گردند و این موضوع بدان معناست که وبسایتهای بزرگتر بر وبسایتهای کوچکتر اولویت دارند. از سوي ديگر، سی دی ان های مدرن بر روی شبکه بزرگی از درایوهای حالت جامد (SSD) ساخته شدهاند و میتوانند تمام محتوا را در edge ذخیره کنند، بنابراین همه مشتریان از مزایای آن برخوردار میگردند.
✓ پراکسی با درخواست مشتری
یکی دیگر از مزایای اصلی CDNهای مدرن، پروکسی معکوس است. بهوسیله سی دی ان های سنتی، انتظار میرود که مشتریان اولین بار محتوای خود را مستقیماً در سرورهای کَش آپلود کنند. شبکه های توزیع محتوای مدرن محتوا را (درصورت درخواست) از سرور مبدا مشتری دریافت و ذخیرهسازی میکنند، بنابراین نیازی به front-load سرورهای cache نمیباشد. وبسایتهایی که از CDNهای سنتی استفاده می کنند اغلب مجبور می شوند محتوای داینامیک را در سرور مبدا نگه دارند، که میتواند منجر به افزایش ترافیک و کندی عملکرد شود و شبکه توزیع محتوا را از هدف اصلی خود دور کند.
CDN پارس پک
CDN پارس پک پک تاثیر بسزایی در بهبود سرعت سایت شما و در نتجه سئوی آن خواهد داشت و در کنار آن به حفظ امنیت وب سایت شما هم کمک شایانی خواهد کرد. در این رابطه باید اضافه کرد که با توجه به پلن های ارائه شده، SSL اتوماتیک بر روی وب سایت شما نصب می شود و در برخی پلن های ارائه شده می توانید امنیت وب سایت خود را در برابر مواردی چون دیداس حفظ کنید. همچنین در پلن های پیشرفته تر پارس پک آنتی ویروس برای محافظت در برابر تروجان ها و بدافزارها هم در نظر گرفته شده است. از دیگر امکانات امنیتی CDN پارس پک، استفاده از فناوری وف می باشد که تمامی request ها را ابتدا بر روی یک فایروال امنیتی چک می کند و بدین ترتیب جلوی هک شدن سایت را خواهد گرفت.
افرادی که دارای مشتریان و بازدیدکنندگانی از ایران هستند، بهتر است از سرویس های توزیع محتوای داخلی استفاده کنند که دارای نودهایی در داخل ایران می باشند، تا بدین وسیله سرعت سرویس دهی به کاربران خود را افزایش دهند. سرویس CDN پارس پک دارای 15 نود داخلی و 15 نود در اروپا می باشد که با بهترین توزیع و امکانات برای بهبود سرعت و امنیت کسب و کار آنلاین شما از شرایط ویژه ای برخوردار می باشند.
برتری CDN پارس پک به سایرین
در ادامه بد نیست مزیت های رقابتی CDN پارس پک نسبت به رقبا را چند مورد ذکر کنیم:
- امکان تعیین دستورهای مستقل برای فایل های استاتیک و داینامیک بر روی فایروال
- پنل و رابط کاربری بسیار آسان و کاربردی
- قابلیت نصب آنتی ویروس
- بهره بری از قابلیت Balancing Load
- Debug برای اشکال زدایی و ارائه setting استاندارد از CDN
ملاحظات امنیتی با CDN های قدیمی
CDN ها مدت زیادی هست که وجود دارند، اما همه آنها به یک شکل ساخته نشدهاند. در حالی که پلتفرم ابری پارس پک از طریق انتقال دیتا به سرور edge فراتر از شبکه های تحویل محتوای سنتی رفته است، تفاوتهای اساسیتری هم وجود دارد. غیر معمول نیست که شبکه های توزیع محتوا قوانین خود را در مورد نحوه سرویسدهی به ترافیک وب وضع کنند، زیرا آنها هنگام تعریف HTTP وجود نداشتند. برای بهبود اين امر، پلتفرمها برای استانداردسازی CDN ها تلاش میکنند.
حمله به CDN!
مشتریان مخرب میتوانند با ایجاد حلقههای ارسال در داخل یک CDN یا چندین CDN به شبکههای تحویل محتوا حمله کنند. چنین loopهایی باعث میشوند که یک درخواست به طور مکرر یا حتی نامحدود پردازش شود و منجر به مصرف نامطلوب منابع و حملات احتمالی Denial-of-Service شود. برای ارزیابی کاربردی چنین حملاتی، ما چندین ارائه دهنده محبوب شبکه تحویل محتوا را بررسی کردیم و متوجه شدیم که همه آنها در برابر چنین حملاتی آسیبپذیر هستند. به دلیل مقیاس وسیع بسیاری از CDN ها که دارای link capacity ترابیتی در ثانیه در سراسرجهان می باشند، این یک مشکل بالقوه بسیار ترسناک میباشد! چه یک حمله عمدی باشد و چه یک پیکربندی سهوی، می تواند بخش بزرگی از اینترنت را با CDN های مورد نظر مختل کند. البته بسیاری از سی دی ان ها و همچنین پلتفرم ابری پارس پک از قبل دارای مکانیزم های محافظت از حلقه - معمولاً با استفاده از header برای شناسایی درخواستهایی که قبلاً دیده شدهاند- هستند.
✓ مقابله CDN با حملات
مشکل این است که این راه حلها بین یکدیگر هماهنگ نیستند، بنابراین ممکن است یک شبکه تحویل محتوا بگونهای پیکربندی شود که هدرهای تشخیص حلقه CDN دیگری را عمداً یا تصادفی حذف کند. یک CDN با پیکربندی مناسب به محافظت از وبسایتها در برابر برخی حملات مخرب رایج مانند حملات دیداس (DDOS) کمک میکند. پیاده سازی و اجرای سی دی ان ها برای اضافه کردن هر درخواستی لازم است تا از تغییرات تصادفی (یا نه چندان تصادفی) محافظت کنند و اینکه بتواند چنین حلقههایی را با اطمینان بیشتری تشخیص داده و کاهش دهند(حتی زمانی که یک حلقه شامل چندین CDN میشود).
چشم انداز جامعه CDN
پارس پک به تلاش برای ایجاد تجربیات بهتر و سازگارتر از CDN برای مشتریان معتقد است، زیرا داشتن یک روش استاندارد برای تعامل با CDN، تعامل مشتریان را آسانتر میکند. همچنین برای بسترهای مدیریت محتوا مانند وردپرس(WorldPress) و دروپال(Drupal) کارکردن یکپارچه با CDNها نتیجه عملکردی را رضایت بخش می کند.
جمعبندی: اما این تازه شروع کار است!
CDN از ابزارهایی می باشد که کمک به افزایش امنیت وب سایت شما می کند. در کل قبل از هرچیز باید امنیت اسکریپت را در نظر بگیرید تا احتمال هک شدن کمتر شود و هرچه لایه های امنیتی قوی تر شوند، احتمال حمله کمتری در آینده خواهید داشت. در این مقاله به بسیاری از ایدههای اصلی پشت خدمات شبکه تحویل محتوا، تعریف و نحوه عملکرد آنها، مزایا و ریسک آنها اشاره شده است. گزینه های مختلف را بررسی کنید و سعی کنید دریابید که سی دی ان مورد نظرتان چگونه می تواند عملکرد وب سایت شما را بهبود ببخشد.
سوالات متداول
✓ CDN چه مشکلاتی را می تواند حل کند؟
CDN ها به مشکلات عمده عملکرد از سمت سرور، تاخیر در سرویس دهی عمدی، در دسترس بودن و پهنای باند کمک می کنند.
✓ چگونه CDN یک وب سایت را بررسی کنم؟
برای بررسی CDN یکی از روش ها، چک کردن page source سایت میباشد. در مرورگر کروم، کافی است روی صفحه خود راست کلیک کرده و "View Source Page" را انتخاب کنید. با این کار پنجره دیگری باز می شود که تمام HTML سایت شما را نمایش می دهد.
✓ URL CDN چیست؟
CDN ها شبکه ای از شبکه ها هستند که به صورت استراتژیک در بسیاری از نقاط جهان توزیع شده اند. این کار به این منظور انجام می شود که داده های یک وب سایت به طور مساوی و کارآمد بین مخاطبان بین المللی آن توزیع شود. یک URL CDN جایی است که asset های شما پس از اتمام مراحل به آنجا هدایت می شوند.
✓ چگونه می توانم آدرس اصلی CDN خود را پیدا کنم؟
اگر باید URL یا شناسه منطقه سایت خود را پیدا کنید: پس از فعال کردن CDN روی صفحه سایت خود راست کلیک کرده یا ctrl کلیک کنید و View Source Page را انتخاب کنید. کد منبع سایت خود را برای URL جستجو کنید.
✓ پاک کردن حافظه پنهان در WP Engine
شما باید روی آیتم منوی WP Engine در نوار مدیریت(admin bar) کلیک کنید و سپس در تنظیمات "General" روی دکمه purge all caches کلیک کنید. WP Engine اکنون تمام cache ذخیره شده برای سایت وردپرس شما را پاک می کند.
✓ purge CDN به چه معناست؟
Purging یک دستور به CDN است تا ارائه فایل را از cache متوقف کند. به عنوان مثال، با purge شدنِ /images /screen. png، شما به شبکه دستور می دهید که این تصویر ذخیره شده را در همه سرورهای CDN در سراسر جهان invalid یا نامعتبرکند. برخی از شبکه های تحویل محتوا فایل ها را باطل نمی کنند، آنها فقط محتوا را از cache پاک می کنند.
✓ مزایا و معایب استفاده از شبکه تحویل محتوا (CDN) چیست؟
از معایب آن می توان به هزینه آن اشاره داشت و اینکه کمی پیچیدگی به مراحل فنی کار شما می افزاید. مزیت اصلی افزایش سرعت تحویل محتوا به کاربران در کنار ایجاد امنیت بیشتر برای وب سایت شما میباشد.