از انبار داده تا سرویس آنلاین: داستان موفقیت CloudStream در نتفلیکس

نتفلیکس، غول پخش آنلاین ویدئو، همواره به دنبال راه‌هایی برای بهبود عملکرد و کاهش هزینه‌ها بوده است. یکی از بزرگ‌ترین چالش‌های این شرکت، جابجایی حجم عظیمی از داده‌ها (به‌اندازه ترابایت) از سیستم‌های آفلاین مانند انبار داده به سیستم‌های سرویس‌دهی آنلاین بوده است. این فرآیند که تحت عنوان پروژه CloudStream انجام شد، منجر به کاهش ۹۰ درصدی زمان استقرار داده و کاهش ۷۰ درصدی هزینه‌ها گردید. در این مقاله، به بررسی جزئیات این تحول معماری عظیم می‌پردازیم.

اعتماد، ارز است: اصول بنیادین پروژه

پایه و اساس همه تصمیم‌ها در این پروژه، یک اصل ساده اما قدرتمند بود: اعتماد، ارز است. برای جلب اعتماد ذی‌نفعان، تیم مهندسی نتفلیکس بر سه اصل کلیدی تمرکز کرد:

  • ایمنی (Safety): سیستم باید بتواند از خود و کاربرانش محافظت کند، مثلاً با محدود کردن عملیات یا مدیریت خطاها.
  • مشاهده‌پذیری (Observability): قابلیت نظارت، اندازه‌گیری و درک وضعیت داخلی و پیشرفت سیستم.
  • اعتبارسنجی (Validation): اثبات این که سیستم به نتایج مورد نظر دست یافته است.

نمودار معماری انتزاع‌های نتفلیکس

لایه انتزاع: پایه معماری حیاتی

در نتفلیکس، برنامه‌ها مستقیماً به پایگاه داده متصل نمی‌شوند. یک لایه واسطه به نام انتزاع (Abstraction) وجود دارد که یک رابط پایدار و یکنواخت ارائه می‌دهد. این لایه به تیم‌های برنامه اجازه می‌دهد بدون نگرانی از تغییرات فناوری پایگاه داده، روی مشکلات اصلی کسب‌وکار تمرکز کنند. بیش از ۸۴٪ از ناوگان Cassandra نتفلیکس از طریق این انتزاع‌ها قابل دسترسی است و بزرگترین انتزاع حدود ۸ میلیون پرسش در ثانیه (QPS) را مدیریت می‌کند.

نمودار شلوغ‌ترین خوشه Cassandra نتفلیکس با ۱.۸ میلیون خواندن و ۴.۹ میلیون نوشتن در ثانیه

چالش بزرگ: از آفلاین به آنلاین

سیستم‌های داده آفلاین (انبار داده) حاوی حجم عظیمی از داده‌های پردازش‌شده هستند، اما در زمان اجرا توسط دستگاه‌هایی مثل تلویزیون قابل دسترسی نیستند. در مقابل، سیستم‌های آنلاین باید داده را با سرعت بالا و دسترسی تصادفی ارائه دهند. تیم مهندسی نتفلیکس برای این انتقال، یک چارچوب تکرارپذیر به نام ضبط، تبدیل، استقرار (Capture, Conversion, Deployment) توسعه داد. این فرآیند با یک معماری بدون حالت (Stateless) برای داده‌های غیرقابل تغییر شروع شد، اما برای پشتیبانی از داده‌های قابل تغییر، نیاز به تبدیل به معماری حالت‌دار (Stateful) بود.

چرخه ضبط، تبدیل و استقرار داده در CloudStream

نتیجه‌گیری و نگاه به آینده

پروژه CloudStream نشان داد که با اتکا به اصول ایمنی، مشاهده‌پذیری و اعتبارسنجی می‌توان تحولات بزرگی در معماری داده ایجاد کرد. نتفلیکس اکنون قادر است داده‌ها را ۹۰٪ سریع‌تر و با ۷۰٪ هزینه کمتر مستقر کند. این موفقیت نه تنها در کاهش هزینه‌ها، بلکه در افزایش سرعت نوآوری در محصولات جدید نیز تأثیرگذار بوده است. تیم مهندسی در حال تعمیم این فرآیند به موارد استفاده بیشتر است تا بتواند حجم بیشتری از داده‌ها را با کارایی بالاتری جابجا کند.