سایتها چطور معضل تأخیر در لود شدن صفحه را حل میکنند؟ کوتاه جواب بدهیم: با کمک CDN یا شبکه تحویل محتوا.
بیستوچند سالی میشود که استفاده از CDN، برای بهبود عملکرد سایتها رواج پیدا کرده است. این شبکهها نهتنها سرعت را بهبود میبخشند، بلکه در جوانب دیگر هم اثرات مثبتی دارند. در این مقاله، میخواهیم ببینیم cdn چیست و چطور میتواند به سایت ما کمک کند.
اگر دنبال اطلاعات کامل هستید، جای درستی آمدهاید؛ قرار است راجعبه صفر تا صد این موضوع صحبت کنیم. برای شروع هم سراغ تعریف این مفهوم خواهیم رفت.
شبکه تحویل محتوا (CDN) چیست؟
چند سالی میشود که نقش پول نقد در زندگیهایمان کمرنگتر از گذشته شده است؛ اما خب فرض میگیریم به هر دلیلی، نیاز به مقداری اسکناس دارید. اگر مقدار موردنیازتان اندک باشد، به بانک میروید یا از ATM استفاده میکنید؟
رفتن به بانک مساوی است با انتظار و سروکله زدن با متصدی؛ در حالی که با خودپرداز، میتوانید بدون دردسر، پول نقد موردنیاز خود را برداشت کنید.
این مثال را زدیم تا مفهوم و کارایی CDN را بهتر درک کنید؛ و اما cdn چیست و چه میکند؟
این عبارت که مخفف Content Delivery Network است، شبکهای متشکل از مجموعهای از سرورها است که در موقعیتهای جغرافیایی مختلف قرار گرفتهاند. وقتی سایتی از CDN استفاده میکند، محتوایش روی همۀ سرورهای این شبکه (منظور همان CDN است) Cache میشود؛ یعنی یک کپی از تمام محتواها بهصورت موقت روی سرورها قرار میگیرد.
به این ترتیب، محتوای سایت، از نزدیکترین سرور به بازدیدکننده ارائه میشود؛ اقدامی که به افزایش سرعت سایت منجر میشود.
در ابتدا، هدف از ساخت شبکه تحویل محتوا، رفع مشکلات شلوغی شبکه بود. مشکلاتی که ناشی از انتقال محتواهای سنگین مثل فایلهای گرافیکی و ویدئوها بود؛ اما حالا، از CDN برای کش کردن انواع محتوا استفاده میشود.
ضمناً ناگفته نماند که وقتی CDN بهدرستی تنظیم و پیادهسازی شود، میتواند از سایت در برابر برخی خطرات سایبری، مثل حملات DDoS محافظ کند.
خب بهصورت تئوری فهمیدید که سی دی ان چیست. حالا بیایید یک مثال واقعی بزنیم تا کلیت موضوع را بهتر درک کنید.
پیشنهاد خواندنی: حمله DDoS چیست و چگونه انجام میشود؟
مثالی از کارکرد CDN
وقتی کاربری قصد بازدید از یک سایت را داشته باشد، درخواستی از مرورگر دستگاهش به سرور حاوی محتوای سایت فرستاده میشود؛ سرور هم در پاسخ، صفحۀ مدنظر را به او نمایش میدهد. همانطور که گفتیم، فاصلۀ سرور تا دستگاه کاربر، روی سرعت لود شدن صفحه تأثیرگذار خواهد بود.
مثلاً اگر سرور در تبریز باشد و کاربر زیر باد کولر در زاهدان نشسته باشد، بهخاطر فاصلۀ زیاد بین این دو شهر، ممکن است صفحه کمی با تاخیر لود شود. در حالی که اگر سرور در شیراز بود، سرعت هم بهمیزان قابلتوجهی افزایش پیدا میکرد.
با استفاده از CDN، حتی اگر سرور در تبریز باشد، با Cache شدن محتوا روی سرور شیراز، کاربر بلوچ، خیلی سریعتر به سایت موردنظرش دسترسی پیدا خواهد کرد. در حالی که کاربر ساکن رشت، بهخاطر نزدیکتر بودن به تبریز، محتوا را از همانجا دریافت میکند.
البته خب CDNهای معروف و بینالمللی، در مقیاس بسیار بزرگتری کار میکنند. مثلاً ممکن است یک سرور در دوبی باشد و باقی سرورها در تمام شهرهای مهم شرق آسیا، اروپا و سرتاسر قارۀ آمریکا و آفریقا قرار داشته باشد. منظور این است که سرورهای CDN، لزوماً نباید داخل یک کشور باشند!
حالا از آنجایی که ممکن است برخی گیج شوند، تفاوت بین CDN و هاست را هم بررسی میکنیم.
تفاوت CDN و هاست چیست؟
خب گفتیم که CDN از محتوای سایتها نگهداری میکند؛ آیا این یعنی شبکۀ تحویل محتوا نوعی هاست است؟ نه!
همانطور که گفتیم، CDN فقط محتوا را کش میکند و نیاز به داشتن یک میزبان درستوحسابی را از بین نمیبرد. شما برای نگهداری از سایتتان و محتویاتش، به هاست نیاز خواهید داشت و CDN کمک میکند عمکلرد سایت را با افزایش سرعت بهبود ببخشید.
خب تا اینجا فهمیدیم CDN چیست و نسبتبه این مجموعه سرورها اطلاعات داریم؛ برای فهم بهتر تفاوت بین این دو، خوب است با هاست هم آشنایی کامل داشته باشید. برای این منظور، میتوانید مقالۀ هاست چیست را بخوانید.
اما بهطور خلاصه، هاست فضایی است که از سایت و محتواهای درون آن میزبانی میکند؛ محتواهایی که توسط CDN کش میشوند.
بیایید با اجزای اصلی شبکه تحویل محتوا آشنا شویم.
اجزای تشکیلدهندۀ CDN چیست؟
بهطور کلی، میتوان گفت CDNها از ۳ جزء اصلی تشکیل شدهاند:
۱. سرور مبداء (Origin Server)
این همان هاست سایت است؛ سرور یا سرورهایی که میزبان سایت و محتویاتش هستند. سرورهای مبداء، منبع اصلی محتواهایی هستند که توسط سرورهای لبه (جلوتر راجعبه آنها هم صحبت میکنیم) کش میشوند. وقتی CDN به فایلی که کاربر میخواهد دسترسی نداشته باشد، سراغ Origin Server میرود و در آنجا جستوجویش را ادامه میدهد.
پس از پیدا کردن فایلهای لازم، آنها را کش میکند تا به مراجعان بعدی نمایش دهد.
۲. سرورهای لبه (Edge Servers)
گفتیم که سیدیان، متشکل از مجموعهای از سرورها است؛ همچنین، فهمیدیم که منبع اصلی اطلاعات و فضایی که سایت روی آن نگهداری میشود، با نام سرور مبداء یا Origin Server شناخته میشود.
پس یک یا تعدادی از این مجموعه سرورها، Originها هستند؛ هر سرور دیگری، سرور لبه یا Edge Server نامیده میشود.
یادتان است که بالاتر مثالی زدیم که در آن، سایت اصلی روی سروری در تبریز نگهداری میشد؟ در آن مثال، سرور مبداء، همانی بود که در تبریز قرار داشت. کاربر زاهدانی مثال ما از طریق سروری در شیراز به محتوای سایت دسترسی پیدا میکرد؛ یعنی سرور شیراز، یک سرور لبه محسوب میشود.
بهطور کلی، آن دسته از سرورهایی که حاوی اطلاعات کششده هستند، سرور لبه نام دارند.
۳. حافظۀ پنهان (Caching)
تا اینجای مقاله، چندین بار به Caching اشاره کردیم. حالا در این قسمت میخواهیم آن را کامل توضیح دهیم.
سومین جزء اصلی هر شبکه تحویل محتوا، Caching یا کش کردن است. به آن حافظۀ پنهان هم میگویند.
این سیستم، به CDN اجازه میدهد که کپیای از محتواهای پراستفادۀ سایت، روی سرورهای لبه داشته باشد. وقتی درخواستی برای بازدید صفحهای از سایت، از جانب یک کاربر ارسال میشود، سیدیان قبل از مراجعه به سرور مبداء، بررسی میکند که آیا اطلاعات لازم روی سرورهای لبه کش شده است یا نه؟
اگر اطلاعات روی Edge Serverها موجود بودند، از همانجا پاسخ کاربر را که منتظر نمایش صفحه است، ارسال میکند. اگر نتواند اطلاعات را روی سرورهای لبه پیدا کند، سراغ Origin Server میرود و پس از Cache کردن آنها، پاسخ را از نزدیکترین سرور لبه برای کاربر میفرستد.
پس در واقع، منظور از کش کردن، نگهداری از کپی محتواها (مخصوصاً استاتیک، مثل تصاویر و متون ثابت)، روی سرورهای لبه است. این کار به منظور پاسخ به کاربر از نزدیکترین سرور و افزایش سرعت انجام میشود.
موافقید شیوۀ عملکرد شبکه تحویل محتوا را هم بررسی کنیم؟
نحوه کار CDN به زبان ساده
هدف اصلی CDN کاهش تأخیر است. تأخیری که هنگام لود شدن سایت وجود دارد، میتواند کاربران را کلافه کند؛ حتی اگر بسیار کوتاه باشد.
سیدیان با کاهش فاصله بین سرور و موقعیت مکانی بازدیدکننده، تلاش میکند این تأخیر را به حداقل برساند. بسته به گسترۀ جغرافیایی پخش شدن مخاطبان هدفتان، هرقدر شبکه تحویل محتوایی که از آن استفاده میکنید، سرورهای لبۀ بیشتری داشته باشد، سایتتان هم علمکرد بهتری خواهد داشت.
مثلاً وقتی مخاطبان هدفتان فقط داخل ایران باشند، استفاده از یک CDN که در اقصینقاط کشورمان سرور داشته باشد، کارتان را راه میاندازد؛ اما اگر فعالیتتان بینالمللی است و احتمال میدهید از ۵ قاره بازدیدکننده داشته باشید، باید سراغ گزینهای بروید که در گرداگرد کرۀ خاکی سرور داشته باشد.
تصویر زیر را ببینید:
در این تصویر، یک سرور مبداء داریم که با رنگ نارنجی مشخصشده است. Origin Server ما در ایالات متحدۀ آمریکا واقع شده است. علاوهبر آن، ۵ سرور لبه یا Edge Server داریم که در نقاط مختلف زمین قرار دارند. دو سرور در قارۀ آفریقا، یکی در آمریکای جنوبی و برزیل، یک سرور کمی بالاتر از سرور مبداء و در کانادا و یکی هم در آسیا حوالی هند.
همانطور که میبینید، سرورهای لبه، همگی به سرور مبداء متصل هستند و اطلاعات آن را کش میکنند. ارتباط بین آنها با خطوط نارنجی مشخص شده است.
همچنین، ۷ بازدیدکننده از نقاط مختلف دنیا داریم که هرکدام، با خطی آبی به نزدیکترین سرور لبه متصل شدهاند؛ یعنی پاسخ آنها، بهجای سرور مبداء، از سرور لبهای که کمترین فاصله را دارد داده میشود. مثلاً کاربری که در استرالیا است، به سرور لبهای که در جنوب آفریقا قرار دارد متصل میشود؛ در حالی که کاربر ساکن آسیای شرقی، اطلاعات را از سرور لبۀ حوالی هند میگیرد.
به این ترتیب، خیال دارندۀ سایتی که اطلاعاتش روی سرور مبداء قرار گرفته است راحت میشود؛ چون هر کاربر به نزدیکترین سرور لبه متصل میشود و میزان تأخیر در لود شدن کامل سایت، تا حد بسیار زیادی کاهش پیدا میکند.
مثلاً اگر یک VOD جهانی روی سرور مبداء قرار داشته باشد، اگر کاربری برزیلی بخواهد در آخر هفته مشغول تماشای فیلم روی این سایت شود، بهجای دریافت دادهها از Origin Server که دور از محل زندگی او است، اطلاعات را از سرور لبۀ نزدیکی که محتوا روی آن کش شده است دریافت خواهد کدر.
توجه داشته باشید که همۀ سرورهای cdn، در بهترین دیتاسنترها با شدیدترین تدابیر امنیتی قرار میگیرند؛ بنابراین، خیالتان از بابت مشکلاتی مثل تراکم شبکه و هرگونه مشکل در اتصال راحت خواهد بود.
در بخش بعدی، بررسی میکنیم که شبکه تحویل محتوا چه تأثیری روی عملکرد سایت میگذارد.
قدرت واقعی در سرور مجازی لیموهاست
شروع قیمت از
۸۴۰ هزار تومان
CDN چطور عملکرد سایت را بهبود میبخشد؟
خب مهمترین تأثیر، همانطور که بالاتر هم گفتیم، کاهش Latency یا تأخیر در زمان لود شدن کامل سایت است.
علاوهبر این، CDN به کاهش فشار روی سرور مبداء کمک میکند. وقتی همۀ ترافیک به سوی یک سرور روانه شود، احتمال پایین آمدن سرعت آن وجود دارد و ممکن است سایت از دسترس خارج شود؛ اما وقتی این ترافیک بین سرورهای مختلف تقسیم شود، آپتایم کلی سایت بهبود پیدا میکند؛ در نتیجه، عمکلرد سایت بهتر میشود.
فایدۀ دیگر سیدیان در رابطه با بهبود عملکرد سایت، به کاهش هزینههای پهنای باند مربوط میشود. نیازی نیست سرور مبداء به تمام درخواستها مستقیماً پاسخ بدهد؛ پس صرفهجویی قابلتوجهی در مصرف پهنای باند خواهیم دید.
CDN با تقسیم بار ترافیک، کمک میکند تا همۀ کاربران، تجربۀ خوشایندی در استفاده از یک سایت داشته باشند؛ همانطور که میدانید، تجربۀ کاربری خوب، یکی از مهمترین لازمههای موفقیت سایت است؛ بنابراین، شبکه تحویل محتوا از این جهت هم به بهبود عمکلرد سایت کمک میکند.
اجازه دهید مثالی مرتبط از جادههای ماشینرو داشته باشیم. برای رسیدن از تهران به مازندران، دو مسیر اصلی وجود دارد:
- جادۀ چالوس؛
- جادۀ هراز.
برای این مثال از جادۀ فیروزکوه چشمپوشی میکنیم.
فارغ از اینکه یکی به غرب مازندران میرسد و دیگر به شرق آن، بسیاری مورد اول را بهخاطر طبیعت زیبایش ترجیح میدهند. چه میشود وقتی همه تصمیم بگیرند سراغ جاده چالوس بروند؟ خب ترافیک سرسامآوری رخ خواهد داد که ممکن است ساعتها ماشینها را گیر بیندازد.
در چنین حالتی، اگر بخشی از ماشینها به جاده هراز بروند، ترافیک از بین میرود و همه میتوانند سریعتر و راحتتر به مقصد برسند.
منظور از تقسیم بار توسط CDN چنین چیزی است.
جدا از همۀ اینها، سیدیان در افزایش امنیت سایت هم مؤثر است. اجازه دهید این مورد را بهطور کاملتری در بخش بعد بررسی کنیم.
شبکه تحویل محتوا چه کمکی به امنیت وبسایت میکند؟
اولین مورد را بالاتر هم گفتیم. CDN سایت را در برابر حملات DDoS ایمن میکند!
با استفاده از CDN، وقتی هکرها موفق به پایین آوردن یکی از سرورها شوند، دیگر سرورها همچنان به فعالیت ادامه میدهند و سایت را بالا نگه میدارند. همچنین، CDNها سیستمی پیشفرض برای شناسایی حملات DDoS و گرفتن دسترسی از کاربران غیرمجاز دارند.
جدا از این، امنیت اطلاعات یکی از مهمترین خط قرمزهای تمام شبکههای تحویل محتوا محسوب میشود. CDNها با استفاده از گواهیهای SSL و TSL، سطح بالایی از احراز هویت و رمزنگاری را اجرا میکنند.
بسیاری از CDNها، یک فایروال شبکه یا WAF را هم ارائه میکنند. این نوع فایروالها، برای محافظت از سایت در برابر حملاتی مثل SQL Injection و XSS کاربرد دارند.
وقتی سایتی از CDN استفاده میکند، آدرس آیپی سرور مبداء پنهان و به افزایش امنیت آن کمک میشود.
علاوهبر اینها، در صورت استفاده از CDN، میتوانید برای آیپیها بلکلیست و وایتلیست درست کنید؛ آنهایی که اجازۀ دسترسی دارند در وایتلیست قرار میگیرند و آیپیهای غیرمجاز به بلکلیست منتقل میشوند؛ یعنی نمیتوانند به سایت دسترسی داشته باشند.
در کل، سیدیان میتواند نقشی تکمیلی و البته مهم را در تأمین امنیت سایت ایفا کند. ناگفته نماند که پیادهسازی و استفادۀ درست از آن، شروط لازم و ضروری برای بالا بردن امنیت سایت هستند.
بیایید با چند مورد از شناختهشدهترین تأمینکنندگان CDN آشنا شویم.
پیشنهاد خواندنی: گواهینامه SSL چیست و چه کاربردی دارد؟
محبوبترین ارائهدهندگان CDN کدامند؟
در مقیاس بینالمللی، دو مورد از باقی معروفتر هستند و کاربران بیشتری دارند.
Cloudflare
بدون شک، شناختهشدهترین شبکه تحویل محتوا همین کلودفلر است. با استناد به آمار سایت InfoQ، نزدیک به ۲۰ درصد از ترافیک کل اینترنت توسط این شبکه پشتیبانی میشود.
این مجموعه ادعا میکند در هر ثانیه ۴۶ میلیون درخواست HTTP را پردازش میکند.
همین حالا میلیونها سایت از کلودفلر استفاده میکنند و روزانه دهها هزار سایت به این آمار اضافه میشوند. البته کلودفلر رنج گستردهتری از خدمات را ارائه میکند و کاربرد آن محدود به شبکه تحویل محتوا نیست.
Akamai
بزرگترین رقیب Cloudflare، همین Akamai است. این شبکه با بیش از ۳۶۵ هزار سرور در ۱۳۵ کشور، بزرگترین CDN دنیا محسوب میشود.
این شرکت آمریکایی در اوایل هزارۀ جدید میلادی تأسیس شد و اکنون بهجایی رسیده است توسط بسیاری از شرکتهای بزرگ دنیا مورداستفاده قرار میگیرد. برای مثال، از بین ۱۰ سرویس استریم ویدئو برتر دنیا، هر ۱۰ مورد مشترکین این مجموعه هستند.
اینها دو نمونۀ بینالمللی بودند. جالب است بدانید که CDN ایرانی هم داریم.
ابرآروان
فارغ از تمام حاشیههایی که همیشه پیرامون این شرکت وجود دارد، ابرآروان یکی از بهترین و معروفترین CDNهای ایرانی است.
سرورهای این مجموعه در 5 قاره و ۳۰ کشور قرار دارند که باعث میشوند بهرهگیری از آن، کمک بزرگی به کاهش تأخیر یا Latency سایتها بکند. این شرکت با ارائۀ ویژگیهای نمونههای بینالمللی، مثل تأمین امنیت حداکثری، گزینۀ نسبتاً خوبی برای سایتهای ایرانی محسوب میشود.
نکته: توصیه ما استفاده از گزینههای خارجی، بهخصوص کلودفلر است؛ اما اگر به هر دلیلی قصد استفاده از CDN داخلی داشتید، ابرآروان میتواند گزینه مناسبی باشد.
کار سایت بدون CDN لنگ میماند!
با توجه به تمام چیزهایی که گفتیم، احتمالاً شما هم موافق باشید که نمیتوان سایتی داشت و برای آن CDN تهیه نکرد!
در این مقاله، فهمیدیم CDN چیست و چطور کار میکند. شبکه تحویل محتوا، با بهبود عملکرد سایت، بهطور مستقیم و غیرمستقیم، روی بهبود سئو سایت هم اثرگذار است؛ به همین خاطر، توصیه میشود برای سایتتان، فارغ از هدف راهاندازی آن، CDN تهیه کنید.
همچنین، در انتهای مطلب، ۳ ارائهدهندۀ معروف CDN را معرفی کردیم که دو مورد خارجی بودند، یعنی Cloudflare و Akamai. به یک مورد ایرانی هم اشاره کردیم که ابرآروان بود.
اگر همچنان سؤالی در رابطه با این نوع شبکهها، یعنی CDN دارید، در قسمت کامنتها برایمان بنویسید.
سوالات متدوال
هاست CDN چیست؟
از نظر فنی، عبارت هاست CDN معنایی ندارد؛ اما ممکن است منظور برخی از این عبارت، همان سرور مبداء یا Origin Server باشد که میزبان اطلاعات اصلی است.
مزایا و معایب شبکه تحویل محتوا چیست؟
از مهمترین مزایا میتوان به بهبود عمکلرد سایت و افزایش امنیت اشاره کرد. در رابطه با معایب هم باید گفت چشمگیرترین موارد، پرداخت هزینههای اضافی (اما لازم) و محدودیت کنترل بر چگونگی ارسال محتوا هستند.
۳ جزء اصلی تشکیلدهندۀ CDN چیست؟
سرور مبداء (Origin Server)، سرور لبه (Edge Server) و کشینگ (Caching)، یا به قول برخی حافظۀ پنهان، ۳ جزء اصلی تشکیلدهندۀ شبکه تحویل محتوا هستند.
منابع: Cloudflare
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید