بازگشت به کتابخانهکتابخانه2.4CDN: محتوا نزدیک کاربر
طراحی سیستم نرم‌افزاریSYSTEM DESIGNاز صفر تا تسلط
v1.0.0
01مبانی و تصویر بزرگ
02Scalability و ظرفیت
03لایه داده
04Cache، Queue و جریان
05معماری نرم‌افزار
06قابلیت اطمینان و عملیات
07متد طراحی
08Case Study های واقعی
09سیستم‌های توزیع‌شده عمیق
10مهندسی تولید: داده، امنیت و کارایی
11تمرین پیشرفته و کیس‌استادی‌های مکمل
12زیر کاپوت دیتابیس و معماری داده
13وب بلادرنگ و پروتکل‌های مدرن
14سیستم‌های توزیع‌شده پیشرفته
15SaaS ،SRE ،امنیت و شبکه پیشرفته
16طراحی سیستم در عصر AI
17Case Study های تکمیلی
LESSON 2.4فصل ۲Scalability و ظرفیت

CDN: محتوا نزدیک کاربر

  • ~۸ دقیقه
  • ۳ پرسش
  • متن را انتخاب کن تا هایلایت شود

یک رستوران زنجیره‌ای را تصور کن که همه غذا را از یک آشپزخانه مرکزی در تهران می‌فرستد. مشتری شیراز بیست دقیقه منتظر پیک می‌ماند — نه چون آشپز کند است، چون فاصله فیزیک است. راه‌حل: چند آشپزخانه لبه در شهرهای دیگر، با کپی همان غذاهای پرتکرار. در وب به این شبکه می‌گویند CDN.

CDN کپی محتوا را نزدیک کاربر نگه می‌دارد. Latency کمتر می‌شود، بار روی Origin کم می‌شود، و هجوم ناگهانی اول به لبه می‌خورد نه به آشپزخانه اصلی. عکس و JS و ویدیو معمولاً این‌جا زندگی می‌کنند؛ سبد خرید شخصی نه.

انبار مرکزی و چند فروشگاه محلی
انبار بزرگ عقب است؛ مشتری از دکه نزدیک جعبه را برمی‌دارد. CDN یعنی کپی نزدیک، نه سفر هر بار تا Origin.
DIAGRAMکاربر به لبه می‌رسد نه به Origin
User — تهران
Edge Server — نزدیک‌ترین
Origin — دیتاسنتر اصلی

دو مدل پر کردن لبه

سؤال این است جعبه چطور به دکه محلی می‌رسد: بار اول که کسی خواست، یا از قبل هل دادی؟

Pull CDN
لبه اولین‌بار که چیزی خواسته شد از Origin می‌گیرد و Cache می‌کند. ساده؛ مناسب اغلب سایت‌ها. اولین کاربر کمی صبر می‌کند.
Push CDN
تو خودت محتوا را به لبه‌ها هل می‌دهی. برای فایل حجیم و ازپیش‌معلوم: نسخه جدید اپ، ویدیو، بسته نصب.
TTL
عمر Cache هر شیء در لبه. کوتاه یعنی تازه‌تر و بار بیشتر روی Origin. بلند یعنی ارزان‌تر و کهنه‌تر.
Invalidation
حذف دستی قبل از تمام شدن TTL. راه بهتر: نام فایل Versioned مثل app.9f31c.js که هرگز عوض نمی‌شود — فایل تازه، نام تازه.

چه چیزی روی CDN می‌رود؟

شغل CDN نزدیک کردن چیزهایی است که بین خیلی‌ها مشترک‌اند. چیز شخصی را نزدیک نکن؛ لو می‌رود و تازه هم نمی‌ماند.

  • بله: فایل‌های استاتیک — JS، CSS، عکس، فونت — ویدیوی تکه‌تکه، و حتی پاسخ API عمومیِ کم‌تغییر با TTL کوتاه.
  • نه: داده شخصی و پاسخ کاملاً داینامیک هر-کاربر. سبد خرید و صفحه حساب روی CDN نمی‌ماند.
  • بونوس‌ها: TLS در لبه، جذب بخشی از DDoS، فشرده‌سازی. لبه دربان است، نه فقط قفسه.

به زبان ساده

CDN کپی محتوا را نزدیک کاربر نگه می‌دارد تا هر بار تا آشپزخانه مرکزی سفر نکند.

مثال واقعی

رستوران زنجیره‌ای غذای پرتکرار را در شهر مشتری می‌پزد؛ عکس محصول هم از لبه استرالیا می‌آید، نه از دیتاسنتر اروپا.

دانش‌سنجی

آزمون درس

۳ Q
01
مزیت اصلی CDN چیست؟
02
برای فایل نصبی جدیدی که فردا میلیون‌ها بار دانلود می‌شود کدام مدل بهتر است؟
03
بهترین راه به‌روزرسانی فایل استاتیک Cache‌شده با TTL بلند چیست؟