هرآنچه باید از CDN بدانید؛ راز موفقیت نتفلیکس و دیگر پلتفرمهای بزرگ
دو سال پیش که صدها هزار خانواده در سراسر جهان همزمان مشغول تماشای سریال اسکویید گیم نتفلیکس بودند و با بیش از ۱٫۶ میلیارد ساعت تماشا، آن را به موفقترین سریال پخششده از این پلتفرم تبدیل کردند، احتمالاً بسیاری از ما حواسمان به یک موضوع خارقالعاده نبود؛ اینکه نتفلیکس زیر بار این حجم سرسامآور از ترافیک بیننده قد خم نکرد؛ آن هم زمانی که سایر سرویسهای استریم فیلم و سریال شرایط بسیار سختی را برای سرپانگهداشتن سرورهای خود برای سریالهای بسیار کمبینندهتر از اسکویید گیم تجربه میکردند.
دیزنیپلاس درست همان روز اول بهخاطر اینکه نتوانست از پس ترافیک بینندگان سریال وانداویژن برآید، برای مدتی از دسترس خارج شد. سرویس HBO Max چنان از پایبست ویران است که حتی مدیرانش هم به آن اذعان کردهاند. اینستاگرام، فیسبوک و واتساپ هم دو سال پیش بهخاطر مشکلی که برای روترهای هماهنگکنندهی ترافیک شبکه پیش آمده بود، بهمدت ۶ ساعت از کار افتادند و بسیاری از کاربران اینترنت را بهدردسر انداختند.
تابهحال به این فکر کردهاید که چرا سرورهای نتفلیکس هیچوقت از دسترس خارج نمیشوند؟
قلب تپندهی هر سرویس اینترنتی که موفقیت یا شکستش را رقم میزند، همین توانایی بهظاهر سادهی ارائهی محتوا به کاربران بهسریعترین و قابلاطمینانترین شکل ممکن است؛ و نتفلیکس ۱۱ سال گذشته را مشغول توسعهی شبکهی سرور بسیار وسیعی موسوم به Open Connect بوده تا بسیاری از سردردهای دنیای استریم را دور بزند.
Open Connect درواقع شبکهی توزیع محتوای اختصاصی نتفلیکس موسوم به CDN است که بهطور ویژه برای ارائهی محتوای فیلم و سریال این پلتفرم به بینندگان سراسر دنیا توسعه یافته است. بهلطف همین شبکهی CDN است که نتفلیکس توانسته از پس ترافیک ۱۱۱ میلیون نفری که در هفتهی اول پخش اسکویید گیم پای تماشای این سریال دیستوپیایی نشستند، برآید.
اما CDN دقیقاً چیست، چطور کار میکند و چطور به پلتفرمهایی مانند نتفلیکس که موفقترین سرویس استریم روی کرهی زمین است، کمک می کند تا سرپا بایستند و به رشد خود ادامه دهند؟ با این مطلب همراه شوید تا به تمام این پرسشها پاسخ دهیم.
CDN چیست؟
شبکهی تحویل محتوا (Content Delivery Network) یا شبکهی توزیع محتوا (Content Distribution Network) که بیشتر بهصورت اختصاری CDN شناخته میشود، همانطور که از اسمش پیدا است، مسئول تحویل محتوا به سریعترین شکل ممکن به کاربران وب است. این شبکه درواقع متشکل از چندین سرور است که در بخشهای مختلف جهان توزیع شدهاند تا با نزدیکتر شدن به مکان جغرافیایی کاربران، سرعت ارسال و کیفیت محتوای وب را افزایش دهند.
این روزها، بخش عمدهای از محتوای اینترنتی از طریق CDNها به دست ما میرسند. CDNها نسخههایی از صفحات وب، تصاویر و ویدیوها را از سرور اصلی گرفته و در سرورهای نزدیک به مکان فیزیکی کاربر بهاصطلاح «کش» (Cache) یا ذخیره میکنند تا بدین ترتیب، برای انجام کارهایی مثل تماشای فیلم، دانلود نرمافزار، بررسی موجودی حساب بانکی، ارسال پست در شبکههای اجتماعی یا خرید آنلاین منتظر لود شدن محتوا نباشند.
اگر سرور اصلی «بانک» باشد، CDNها کار دستگاههای خودپرداز را بازی میکنند
اصلاً بیایید به CDN به چشم یک دستگاه خودپرداز نگاه کنیم؛ هرچه تعداد این دستگاهها در گوشهوکنار محل زندگی، کار و رفتوآمد شما بیشتر باشد، میتوانید با سرعت بیشتری پول خود را از بانک دریافت کنید. اما اگر خبری از دستگاه خودپرداز نبود و مجبور بودید هربار برای برداشت پول به بانک مراجعه کنید، آنوقت باید چند ساعت در روز را در صفهای طولانی بانک انتظار میکشیدید.
سرویس CDN برای حل مشکل ترافیک اینترنتی ناشی از ارائهی محتوای حاوی تصاویر و ویدیو ایجاد شد. تا پیش از ظهور CDNها، دریافت محتوای اینترنتی از سرورهایی که از نظر جغرافیایی به کاربران دور بودند، بیش از حد طول میکشید. این سرویس حالا بهقدری رشد کرده تا هر نوع محتوای اینترنتی که فکرش را بکنید، از متن، تصویر، ویدیو و اسکریپت گرفته تا دانلود نرمافزار، اسناد، پورتالها، خرید آنلاین، استریم زنده، اجرای بازی آنلاین و فعالیت در شبکههای اجتماعی را در برمیگیرد.
شبکههای CDN اواخر دههی ۱۹۹۰ ظهور پیدا کردند و تا امروز سه نسل تکامل را پشت سر گذاشتهاند. نسل اول CDNها بر اصول مدیریت هوشمند ترافیک شبکه و مراکز داده برای تکثیر متمرکز بود.
نسل دوم این تکنولوژی در پاسخ به افزایش سرویسهای استریم موسیقی و فیلم و رسانههای خبری و همچنین برای حل چالشهای جدید ارائهی محتوا در گوشیهای هوشمند توسعه یافت. در این زمان شرکتها از تکنیک رایانش ابری و شبکههای همتابههمتا برای سرعت بخشیدن به توزیع محتوا استفاده میکردند.
و اما نسل سوم CDNها که همچنان درحال توسعه و تکامل است، روی ساختار رایانش لبهای (edge computing) تمرکز دارد که براساس آن، دادههای مشتریان در نزدیکی منبع داده پردازش میشود. شبکههای لبهای خودگردان که قابلیت مدیریت خود را دارند ممکن است گام بعدی در پیشبرد تکنولوژی CDN باشد.
CDN چگونه کار میکند؟
مأموریت اصلی CDN کاهش تأخیر آزاردهندهای است که هنگام تلاش برای دسترسی به صفحه وب یا استریم ویدیو تجربه میکنید. این تأخیر اگرچه در اکثر نقاط دنیا با واحد میلیثانیه اندازهگیری میشود، وقتی پای استریم سریال محبوب یا اجرای بازی آنلاین وسط میآید، همین چند میلیثانیه تأخیر هم ممکن است به چشم کاربر اندازهی چند سال بیاید؛ دربرخی مواقع هم اگر زمان اتصال کاربر به سرور از زمان تعیینشده بیشتر شود، با خطای تایماوت (time-out) روبهرو میشود و کلاً از دسترسی به محتوای موردنظرش باز میماند.
اینجا است که شبکههای توزیع محتوا به میدان میآیند تا با کاهش فاصلهی فیزیکی سروری که محتوا در آنجا تولید شده، زمان دسترسی کاربر به آن را کاهش دهند. بنابراین، هرچه CDNها بزرگتر و سرورهای آنها در دنیا گستردهتر باشد، عملکرد بهمراتب بهتری در تحویل سریعتر و باکیفیتتر محتوا خواهند داشت.
فرض کنید یکی از روزهای آخر هفته میخواهید از یکی از وبسایتهای استریم ویدیو، فیلم موردعلاقهی خود را تماشا کنید. چنانچه این وبسایت از CDN استفاده کند (که به احتمال ۹۰ درصد همینطور است)، آنوقت CDN برای پخش فیلم موردنظر شما، در شبکهاش دنبال سروری میگردد که از نظر موقعیت جغرافیایی به شما نزدیکتر باشد و فایل ویدیو را از سرور اصلی گرفته و نسخهای از آن را روی سرور نزدیک به شما ذخیره میکند. بدینترتیب، سایر کاربرانی که در شهر شما زندگی میکنند هم به همان نسخهی کششده از فیلم دسترسی خواهند داشت. اگر هم فیلمی که قصد تماشایش را داشتید در سرور وجود نداشته باشد یا قدیمی شده باشد، CDN نسخهی جدید را روی سرور نزدیک به شما ذخیره میکند تا برای دفعات بعدی، در دسترس باشد.
CDNها تقریباً هرآنچه را در اینترنت میزبانی شود، به دست کاربر میرسانند
اگرچه ارائهی محتوای وب رایجترین مسئولیت CDNها است، تنها کارشان نیست. درواقع، CDNها تقریبا هرآنچه را در اینترنت میزبانی شود، به دست کاربر میرسانند؛ ازجمله ویدیوهای 4K و HD، استریم موسیقی، دانلود نرمافزار و بازیها و حتی بهروزرسانیهای سیستمعامل. اصلاً هر دادهای که بتواند به صورت دیجیتالی ارائه شود میتواند از طریق شبکهی توزیع محتوا با سرعت بیشتری به دست کاربر برسد.
برای درک جادوی CDNها که در پشت صحنهی اینترنت اتفاق میافتد، بیایید آن را شبیه مسیریابی ترافیک شهری در دنیای واقعی در نظر بگیریم. مثلاً فرض کنید از نقطهی A به B راهی وجود داشته باشد که در نبود ترافیک، سریعترین مسیر است؛ اما اگر این مسیر شلوغ شود، رانندگان دیگر مجبور میشوند از مسیرهای دیگری به B برسند. شاید در این حالت، مسیر چند دقیقهای طولانیتر شود (البته در مقیاس سرعت اینترنت، این افزایش مسیر در حد میکروثانیه است)، اما در عوض دیگر از ترافیک سنگین و اعصابخردکن خبری نیست. البته این احتمال هم وجود دارد که شما جزو رانندگانی باشید که از مسیر کوتاهتر رفتهاند، چون رانندگان دیگر تصمیم گرفتهاند مسیرهای طولانیتر را انتخاب کنند. بنابراین، روش کار CDN طولانیتر کردن مسیر یا کندتر کردن سرعت دسترسی به اینترنت نیست؛ بلکه موضوع برقراری تعادل در حجم ترافیک کاربران و استفاده از تمام منابع موجود در راستای بهبود تجربهی وبگردی آنها است.
بهعبارت دیگر، اگر CDNها نبودند، ما هر روز پشت ترافیک اینترنتی شبیه ترافیک خیابانهای تهران در روزهای آخر سال گیر میکردیم و با کلی سردرد در نهایت از وبگردی چشمپوشی میکردیم.
اهمیت CDN برای اقتصاد دیجیتال و پیشبرد اهداف آن
با ادامهی گذار جهان به اقتصاد دیجیتال، کسبکارهای بیشتری از اینترنت برای بازاریابی محتوا استفاده میکنند تا به بیشترین تعداد مشتری دسترسی پیدا کنند. در بازاریابی محتوا هم وبسایتها نقش مهمی ایفا می کنند. در حالت ایدئال، زمان بارگیری وبسایت باید ۴ ثانیه یا کمتر باشد، هرچند کاربران امروزی که به جدیدترین تکنولوژیهای روز دسترسی دارند، انتظار دارند حداکثر زمان بارگذاری وبسایت ۲ ثانیه باشد.
مطالعات نشان میدهد که تقریباً ۵۰ درصد کاربران وب انتظار دارند صفحات وب در کمتر از ۲ ثانیه لود شود و ۴۰ درصد هم درصورتی که زمان بارگذاری بیش از ۳ ثانیه باشد، کلاً قید بازدید از آن وبسایت را میزنند. در ضمن، ۷۹ درصد خریداران آنلاین میگویند دیگر به وبسایتی که کُند بارگذاری میشود، سر نخواهند زد. برای همین، استفاده از CDN برای کاهش تأخیر بارگذاری وبسایت و راضی نگه داشتن کاربران برای تمام کسبوکارهای اینترنتی حیاتی است.
زمان ایدئال بارگیری وبسایت باید ۴ ثانیه یا کمتر باشد
بهگفتهی ویل لاو، معمار ارشد مهندسی رسانه در شرکت Akamai که از غولهای ارائهدهندهی خدمات CDN بهشمار میرود، «هرکسی که بخواهد عملکرد وبسایتش را بهبود بخشد، باید سعی کند تا سروری را تاحد امکان به کاربر نهایی نزدیک کند و با قراردادن سرور در نزدیکی محل زندگی او، بار سنگینی را از دوش اینترنت و نقاط تبادل بردارد.»
براساس آزمایشهای مختلف، CDN میانگین تأخیر بارگذاری وبسایت را درمقایسه با وبسایتهایی که از CDN استفاده نمیکنند، تا ۷۰ درصد کاهش میدهد. اینروزها سرعت بارگذاری محتوای آنلاین برای پیشبرد اهداف اقتصاد دیجیتال حرف اول را میزند، چون تأثیر درخودتوجهی بر کاهش بانس ریت (Bounce rate) و تجربهی کلی کاربر دارد.
جالب است بدانید CDNها خدمات امنیتی هم ارائه میدهند؛ ازجمله محدودیت نرخ درخواست (Rate limiting) برای جلوگیری از حملات DoS، فایروال برنامههای تحت وب (WAF) و مهمتر از همه، محافظت دربرابر حملات منع سرویس توزیع شده (DDoS). بدینترتیب، در دنیایی که خیلی وقت است در مسیر صددرصد دیجیتالی شدن گام برداشته و تجربهی کاربران موفقیت و شکست کسبوکارهای آنلاین را مشخص میکند، CDNها کلیدیترین مهرههای بازی بهشمار میروند.
CDN چگونه به موفقیت پلتفرمهای بزرگی مثل نتفلیکس کمک کرده است؟
بیایید به مقدمهی این مطلب و ماجرای موفقیت نتفلیکس برگردیم.
یکی از دلایلی که نتفلیکس در بازار استریم فیلم و سریال از تمام رقیبان خود جلوتر است و آمار مشترکانش به بیش از ۲۳۰ میلیون نفر میرسد، چیزی است که تقریباً تمام افراد بیرون از بحث فنی این صنعت آن را دستکم میگیرند؛ منظورم شبکهی CDN اختصاصی نتفلیکس موسوم به Open Connect است.
بهگفتهی جینا هسپیلر، معاون Open Connect، دلیل توسعهی این شبکه این بود که نتفلیکس «میدانست که ما باید سطحی از فناوری زیرساخت ایجاد کنیم که از پس حجم ترافیکی که انتظار میرفت با موفقیت این پلتفرم به دست آید، برآید. ما احساس میکردیم که موفق میشویم و میدانستیم که اینترنت در آن زمان توانایی تحمل حجم ترافیکی را که در سطح جهانی مورد نیاز است، نداشت.»
پروژه Open Connect شبکه CDN اختصاصی نتفلکیس است
هیچکس دلش نمیخواهد پای تماشای فیلمی بنشیند و تا ابد منتظر لود شدن محتوا باشد. چیزی که آن زمان نتفلیکس بهخوبی پیشبینی و درک کرده بود این بود که اگر میخواست محتوای باکیفیتی را به کاربرانش ارائه دهد، باید خودش دستبهکار میشد و سیستم توزیع محتوای اختصاصی خودش را میساخت.
پروژهی Open Connect در سال ۲۰۱۲ شروع شد. نتفلیکس از آن سال تاکنون به ارائهدهندگان خدمات اینترنتی یا همان ISPها دستگاههای فیزیکی میدهد تا نسخههایی از کاتالوگ فیلم و سریال نتفلیکس را در آنها ذخیره کرده و با حذف تعداد مسیرهایی که محتوا باید از آن عبور کند تا به دست کاربر برسد، فشار روی شبکه را کاهش دهند.
سیستم Open Connect از دو نوع سرور استفاده میکند؛ یکی از نوع فلش که مسئول تحویل سریع محتوا است و دیگری از نوع ذخیرهسازی که ظرفیت آن به ۳۵۰ ترابایت داده میرسد. اگر فیلم یا سریالی در سرور ذخیرهسازی محبوب شود، نتفلیکس آن را به سرور فلش منتقل میکند تا با سرعت بیشتری به کاربران برسد.
مهم نیست کجا باشید؛ اینترنت از هر نظر غیرقابلاطمینان است. قطعی، سرعت پایین و هرگونه مشکل در شبکه میتواند در دسترسی کاربر به اینترنت مشکل ایجاد کند. نتفلیکس با استفاده از شبکهی CDN و قراردادهایی که با ISPها بسته، توانسته بسیاری از این چالشها را برای کاربرانش برطرف کند. درواقع، سیاست نتفلیکس این است که صرف نظر از اینکه چقدر اینترنت کاربر ضعیف و بیکیفیت است، بهترین تجربه را هنگام تماشای فیلم از این پلتفرم تجربه کند.
برای این کار، نتفلیکس سه نسخه از هر عنوان فیلم و سریال را با کیفیتهای مختلف به سرورهایش در سراسر دنیا میفرستد. اگر ISP کاربر تحت فشار باشد یا اتصال اینترنت برای لحظهای قطع شود، CDN نتفلیکس میتواند نسخهی در حال پخش را بلافاصله با نسخهای کمکیفیتتر جایگزین کند تا بدینترتیب تأخیری هنگام استریم پیش نیاید.
علاوهبراین، نتفلیکس برای عناوینی که پیشبینی میکند قرار است پربیننده باشند، منتظر درخواست کاربر نمینشیند و از پیش، نسخههایی از آنها را در تمام سرورهایش قرار میدهد تا حتی همان اولین کاربر هم هیچ تأخیری هنگام استریم تجربه نکند.
سرورهای CDN نتفلیکس همهجا هستند؛ بهگفتهی این شرکت، ۱۷ هزار سرور در ۱۵۸ کشور قرار داده شده و قرار است به تعداد آنها افزوده شود. نتفلیکس براساس اینکه در کدام مناطق بیشترین کاربر و بیشترین تعداد قرارداد را با ISPها دارد، توسعهی سرورها را اولویتبندی میکند.
نتفلیکس سرورهای CDNاش را بهرایگان در اختیار ISPها قرار میدهد و تیم متخصصش با این شرکتها برای سروپا نگهداشتن سرورها همکاری میکنند. مزیت این همکاری، هزینههای کمتر برای ISPها است؛ چون دیگر لازم نیست خودشان برای گرفتن نسخههایی از محتوای اصلی، هزینه کنند.
نتفلکیس برای Open Connect نزدیک به یک میلیارد دلار هزینه کرده است
نتفلیکس میگوید از زمان ایجاد Open Connect که ۱۱ سال از عمر آن میگذرد، نزدیک به یک میلیارد دلار برای آن هزینه کرده و دلیلش هم ساده است؛ هستهی اصلی استراتژی کسبوکار نتفلیکس ارائهی تجربهی استریم ممتاز و پریمیوم به کاربر است و مدل اشتراکی آن تاحدی براساس کیفیت پخش ویدیوی انتخابی کاربر ایجاد شده؛ بدون CDN نتفلیکس نمیتوانست به اهداف کسبوکارش برسد.
سرویس CDN نتفلیکس دقیقاً از همان تکنولوژی بهکاررفته در CDNهای دیگر استفاده میکند و تنها فرقش این است که فقط برای ارائهی محتوای نتفلیکس بهکار میرود و نه هیچ محتوای دیگر. اکثر شرکتهای بزرگی که خدمات CDN ارائه میدهند، چندین کار را همزمان انجام می دهند و به چندین درخواست از شرکتهای دیگر پاسخ میدهند. مثلاً شرکت آمریکایی Akamai که از سال ۱۹۹۸ در زمینهی شبکه تحویل محتوا فعالیت میکند، هزاران مشتری دارد.
البته توسعهی شبکهی CDN اختصاصی بسیار هزینهبر است و اکثر سرویسهای استریم از شبکههای CDN شرکتهای دیگر، مثل CloudFlare یا Google Cloud CDN یا Akamai استفاده میکنند. بدون این شبکهها، درخواست هر ISP برای دسترسی به محتوا باید حداقل از چهار، پنج شبکهی دیگر عبور کند تا به سرور اصلی که محتوا در آنجا ذخیره شده است، برسد. این کار نهتنها در تحویل محتوا به کاربر تأخیر ایجاد میکند، بلکه برای ISPها هم گران تمام خواهد شد، چون باید برای دسترسی به محتوا از جیب خودشان هزینه کنند.
بیش از ۲۰ سال است که CDNها با ارائهی سریع محتوای آنلاین، ستونهای نامرئی اینترنت را تشکیل دادهاند. CDN تعادل ترافیک کلی اینترنت را برقرار میکند تا به تمام افرادی که به اینترنت دسترسی دارند، بهترین تجربهی ممکن از وب را ارائه دهد. بدون آنها و تواناییشان در تکثیر و ذخیرهی اطلاعات از سرورهای اصلی و سپس نزدیکتر کردن محتوای دیجیتال به محل دسترسی کاربران به وب، سرعت اینترنت این روزها یادآور سرعت دایلآپ بود.