Codoloper

راز پشت پرده یوتیوب: چگونه میلیاردها ساعت ویدیو را ذخیره و مدیریت می‌کند؟

راز پشت پرده یوتیوب: چگونه میلیاردها ساعت ویدیو را ذخیره و مدیریت می‌کند؟ | عکس
تا به حال فکر کرده‌اید وقتی یک ویدیوی ۴K ده دقیقه‌ای را در یوتیوب آپلود می‌کنید، دقیقاً چه بلایی سر آن می‌آید؟ یوتیوب فقط یک وب‌سایت اشتراک ویدیو نیست؛ بلکه یکی از پیچیده‌ترین و عظیم‌ترین سیستم‌های مهندسی نرم‌افزار و سخت‌افزار در تاریخ بشر است.
 
هر دقیقه بیش از ۵۰۰ ساعت ویدیو در این پلتفرم آپلود می‌شود. اما چگونه این غول فناوری بدون از دست رفتن داده‌ها یا کندی شدید، این حجم عظیم را مدیریت می‌کند و همزمان ویدیو را با کیفیت‌های مختلف (از ۱۴۴p تا ۴K) به شما نمایش می‌دهد؟ در این مقاله، پشت پرده این جادوی مهندسی را به زبان ساده اما فنی بررسی می‌کنیم.
 

حجم داده‌ها: صحبت از ترابایت نیست، صحبت از اگزابایت است

برای درک مقیاس یوتیوب، باید با واحدهای اندازه‌گیری فراتر از گیگابایت و ترابایت آشنا شویم. یوتیوب داده‌های خود را در مقیاس «اگزابایت» (هر اگزابایت برابر با یک میلیارد گیگابایت) مدیریت می‌کند. ذخیره چنین حجمی روی هارد دیسک‌های معمولی در یک اتاق سرور غیرممکن است. راه‌حل، استفاده از معماری توزیع‌شده است.
 

راز اول: سیستم فایل توزیع‌شده (Google Colossus)

یوتیوب ویدیوهای شما را روی یک سرور خاص ذخیره نمی‌کند. گوگل از سیستم فایل توزیع‌شده اختصاصی خود به نام Colossus (جانشین سیستم معروف GFS) استفاده می‌کند.
 
وقتی ویدیویی آپلود می‌شود، این سیستم آن را به بلوک‌های کوچک‌تری به نام «شِرد» (Shard) تقسیم می‌کند. این بلوک‌ها سپس در هزاران سرور مختلف در دیتاسنترهای گوناگون پخش می‌شوند. علاوه بر این، از هر بلوک حداقل سه نسخه (Replica) در مکان‌های فیزیکی متفاوت ساخته می‌شود. اگر یکی از سرورها آتش بگیرد یا هارد دیسک آن از کار بیفتد، دو نسخه دیگر بلافاصله جایگزین آن می‌شوند و کاربر هیچ‌گاه متوجه خرابی نمی‌شود.
 

راز دوم: جادوی فشرده‌سازی و کدک‌های ویدیویی

چگونه یوتیوب این حجم عظیم را در خود جای می‌دهد؟ پاسخ در «فشرده‌سازی» نهفته است. ویدیوی خام آپلود شده توسط شما، حجمی وحشتناک دارد. یوتیوب بلافاصله پس از دریافت، آن را با استفاده از الگوریتم‌های پیچیده ریاضی فشرده می‌کند.
 
یوتیوب از چندین «کدک» (Codec) استفاده می‌کند:
  • H.264: قدیمی‌تر اما با سازگاری بالا برای دستگاه‌های قدیمی.
  • VP9: کدک متن‌باز توسعه‌یافته توسط گوگل که فشرده‌سازی بهتری نسبت به H.264 دارد.
  • AV1: جدیدترین و کارآمدترین کدک. AV1 می‌تواند حجم ویدیو را تا ۳۰ درصد بیشتر از VP9 بدون افت کیفیت محسوس کاهش دهد. این یعنی صرفه‌جویی عظیم در پهنای باند و فضای ذخیره‌سازی.
 

راز سوم: چگونه همه کیفیت‌ها را همزمان دارد؟ (Transcoding و ABR)

این بخش جذاب‌ترین قسمت ماجراست. وقتی شما ویدیویی را با کیفیت ۱۰۸۰p آپلود می‌کنید، یوتیوب آن را به عنوان یک فایل واحد نگه نمی‌دارد.
 
۱. ترنس‌کدینگ (Transcoding): مزارع سروری یوتیوب (که اغلب از سخت‌افزارهای تخصصی رمزنگاری ویدیو استفاده می‌کنند)، ویدیوی اصلی را می‌گیرند و آن را به چندین نسخه با رزولوشن‌های مختلف (۱۴۴p, 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p) تبدیل می‌کنند.
 
۲. قطعه‌قطعه کردن (Chunking): هر کدام از این نسخه‌های کیفیت، به تکه‌های بسیار کوچکی به مدت ۲ تا ۱۰ ثانیه تقسیم می‌شوند.
 
۳. استریم تطبیقی (Adaptive Bitrate Streaming - ABR): یوتیوب از پروتکلی به نام DASH استفاده می‌کند. پلیر یوتیوب در مرورگر یا اپلیکیشن شما، به طور مداوم سرعت اینترنتتان را رصد می‌کند. اگر اینترنت شما قوی باشد، تکه‌های ۱۰۸۰p را درخواست می‌کند. اگر اینترنت ضعیف شود، بدون اینکه ویدیو متوقف (Buffer) شود، به طور نامحسوس تکه‌های بعدی را با کیفیت ۴۸۰p درخواست می‌کند. این تغییر کیفیت همان چیزی است که گاهی در حین تماشای ویدیو آن را حس می‌کنید.
 

راز چهارم: نقش حیاتی CDN در تحویل سریع

حتی با فشرده‌سازی و قطعه‌قطعه کردن، اگر سرور یوتیوب در آمریکا باشد و شما در ایران باشید، تاخیر شبکه (Latency) باعث کندی می‌شود. اینجا شبکه توزیع محتوا (CDN) وارد عمل می‌شود.
 
گوگل یکی از بزرگ‌ترین CDNهای جهان را با نام Google Global Cache اداره می‌کند. آن‌ها سرورهایی را در داخل دیتاسنترهای شرکت‌های ارائه‌دهنده اینترنت (ISP) در سراسر جهان قرار می‌دهند. وقتی شما ویدیویی را تماشا می‌کنید، به احتمال زیاد آن تکه‌های چند ثانیه‌ای را از سروری دریافت می‌کنید که از نظر فیزیکی فقط چند کیلومتر با شما فاصله دارد، نه چند هزار کیلومتر.
 

مقایسه یوتیوب با هاستینگ ویدیوی سنتی

در یک هاستینگ ویدیوی سنتی، معمولاً یک فایل واحد (مثلاً MP4) روی یک سرور ذخیره می‌شود. اگر اینترنت کاربر نوسان کند، ویدیو متوقف می‌شود تا بافر پر شود. کاربر نمی‌تواند کیفیت را به صورت پویا تغییر دهد و فشار زیادی به سرور اصلی وارد می‌شود.
 
در مقابل، معماری یوتیوب بر پایه توزیع، افزونگی (Redundancy) و تطبیق‌پذیری بنا شده است. این سیستم نه تنها تجربه کاربری را بدون وقفه نگه می‌دارد، بلکه بار ترافیکی را به بهینه‌ترین شکل ممکن بین هزاران سرور تقسیم می‌کند.
 

مزایا و چالش‌های این معماری عظیم

مزایا:
  • پایداری فوق‌العاده: خرابی یک دیتاسنتر کل سرویس را از کار نمی‌اندازد.
  • تجربه کاربری یکپارچه: تغییر خودکار کیفیت بر اساس سرعت شبکه، بدون نیاز به توقف ویدیو.
  • بهینه‌سازی منابع: استفاده از کدک‌هایی مثل AV1 هزینه‌های پهنای باند گوگل را به شدت کاهش می‌دهد.
 
چالش‌ها:
  • مصرف انرژی بالا: ترنس‌کدینگ و نگهداری دیتاسنترها در این مقیاس، مصرف برق بسیار بالایی دارد.
  • هزینه محاسباتی سنگین: پردازش ویدیو برای تولید چندین کیفیت و فرمت، نیازمند سخت‌افزارهای گران‌قیمت و تخصصی است.
  • پیچیدگی نگهداری: مدیریت هماهنگی بین میلیون‌ها سرور و تریلیون‌ها فایل کوچک، یکی از سخت‌ترین چالش‌های مهندسی نرم‌افزار در جهان است.
 

جمع‌بندی نهایی و نگاه شخصی

به عنوان یک مهندس نرم‌افزار، هر بار که به معماری یوتیوب فکر می‌کنم، حس احترام عمیقی پیدا می‌کنم. این سیستم «جادو» نیست؛ نتیجه دهه‌ها تحقیق، شکست، و سرمایه‌گذاری عظیم روی الگوریتم‌های فشرده‌سازی و سیستم‌های توزیع‌شده است.
 
باید صادقانه بگویم که بسیاری از استارتاپ‌ها سعی کرده‌اند رقیب یوتیوب شوند، اما شکست خورده‌اند. دلیل شکست آن‌ها تکنولوژی نبود، بلکه ناتوانی در مدیریت هزینه‌های سرسام‌آور ذخیره‌سازی و پهنای باند در این مقیاس بود. یوتیوب نه تنها یک پلتفرم محتوا، بلکه یک شاهکار مهندسی داده است که مرزهای ممکن را جابه‌جا کرده است.
 

سوالات متداول

چرا گاهی اوقات کیفیت ویدیو در یوتیوب خود به خود پایین می‌آید؟ این یک ویژگی است، نه باگ. پروتکل ABR (استریم تطبیقی) تشخیص می‌دهد که سرعت اینترنت شما لحظه‌ای کاهش یافته است. برای جلوگیری از توقف ویدیو (Buffering)، پلیر به طور خودکار تکه‌های بعدی ویدیو را با کیفیت پایین‌تر درخواست می‌کند تا پخش روان باقی بماند.
 
آیا یوتیوب ویدیوهای قدیمی و کم‌بازدید را پاک می‌کند تا فضا آزاد شود؟ خیر. هزینه ذخیره‌سازی داده در مقیاس گوگل نسبت به ارزش نگه‌داری آن داده ناچیز است. با این حال، یوتیوب از سیستم‌های «ذخیره‌سازی سرد» (Cold Storage) استفاده می‌کند. ویدیوهای قدیمی که به ندرت تماشا می‌شوند، به هارد دیسک‌های کندتر اما بسیار ارزان‌تر منتقل می‌شوند و فقط در صورت درخواست کاربر، با کمی تاخیر اولیه در دسترس قرار می‌گیرند.
 
تفاوت اصلی کدک AV1 با نسل‌های قبلی چیست؟ AV1 توسط اتحادیه‌ای باز (شامل گوگل، نتفلیکس، آمازون و دیگران) توسعه یافته تا از پرداخت حق امتیاز (Royalty) معاف باشد. مهم‌تر از آن، الگوریتم فشرده‌سازی آن بسیار هوشمندتر است و می‌تواند ویدیوهایی با کیفیت مشابه را با حجمی حدود ۳۰ درصد کمتر از VP9 یا H.265 ارائه دهد که برای پخش ویدیو در موبایل و اینترنت‌های ضعیف‌تر انقلابی است.
اطلاعات نویسنده
عرفان دهقانی
نوشته ها در
تبلیغات
کامنت جدید

برای ثبت کامنت وارد شوید

برای اینکه بتوانید زیر این پست کامنت بگذارید، باید وارد حساب کاربری خود شوید.

برای ادامه، وارد حساب خود شوید

بعد از ورود، دوباره به همین پست برمی‌گردید و می‌توانید کامنتتان را ثبت کنید.

ورود به حساب
کامنت‌ها

نظرات کاربران

دیدگاه‌هایی که برای این نوشته ثبت شده‌اند.

هنوز کامنتی برای این پست ثبت نشده است.