نتفلیکس چگونه کار میکند؟
نتفلیکس
همانطور که میدانید نتفلیکس همواره برای کاربران خود برای تولید محتوای سرگرم کننده، زیرساخت های پیچیده ای دارد، بنابراین این شبکه با پخش سرویس روزانه ۲۵۰ میلیون ساعت ویدئو برای ۹۸ میلیون کاربر در ۱۹۰ کشور جهان آن هم در ابعادی چنین بزرگ، واقعاً فرایندی جدی محسوب میشود که علاوه بر زیر ساخت ها، نیازمند مذاکرات متعدّد با طرفهای درگیر در مراحل مختلف نیز هستند، از جمله بازیگران این عملیات پیچیده میتوان به شرکتهای تولیدکنندهی محتوا و ارائهدهندگان خدمات اینترنت اشاره کرد.
صدها مایکروسرویس، یک سرویس عظیم
در این قسمت زیرساخت های فنّی نتفلیکس را با مثالی ساده برای شما توضیح خواهیم داد، فرض کنید در رابطه با تمام مکان هایی که میروید، یک اپلیکیشن نقشه هوشمند، اطلاعات پیچیده ای را به شما بدهد و تمام مسیرهای شما را در فایلی تحت عنوان locations.txt ذخیره کند، حال با طراحی یک اپلیکیشن دیگر با نام LocoList که دارای نقشه باشد، میخواهید تا اطلاعات از فایل مذکور و تمام مکان های ثبت شده را در یک فهرست ساده تر نشان داده شود.
سپس بعد از مدتّی سازندگان اپلیکیشن Maps تصمیم میگیرند تا اطلاعات را بهنحوی دیگر ذخیره کنند، بدین ترتیب با آپدیت این نسخه و با توجّه به این نکته که فایل قبلی داده های شما را ذخیره نمیکند، دیگر نیازی به اپلیکیشن LocoList برای خواندن اطلاعات مورد نیازش پیدا نخواهید کرد، زیرا هیچ راه دیگری برای استخراج اطلاعات از اپلیکیشن نقشه وجود ندارد و درنهایت، اپلیکیشن شما بلااستفاده خواهد ماند.
شاید ازکار افتادن اپلیکیشنی همانند مثال بالا ، چندان نگران کننده نباشد امّا وقتی در ابعاد سرویسی همچون نتفلیکس این اتفاق بیفتد، باعث ایجاد مشکل در بخشهای دیگر یا کل سیستم خواهد شد که قطعاً تأثیرات منفی روی تجربهی کاربران خواهد گذاشت، بههمین دلیل، نتفلیکس نمیتواند از چنین رویکردی در سرویس خود استفاده کند.
مایکروسرویسهای نتفلیکس بهصورت مستقل فعالیت میکنند
در تغییراتی که در دهه گذشته در زیرساخت های نتفلیکس حاصل شد، این شبکه توانست اپلیکیشن ارائهکنندهی خدمات خود را به معماری مایکروسرویس مجهز کند که در این سرویس، کد یا منابع هر اپلیکیشن و مایکروسرویس، مختص خود آن بود و امکان جابه جایی یا استفاده از کد توسط دیگر سرویس ها ممکن نبود و در صورت احتیاج دو اپلیکیشن به یکدیگر، این امکان برای آنها فراهم بود که از رابط APIکه مجموعهای از قوانین سختگیرانه بود استفاده نمایند، همچنین در سیستمهای مایکروسرویس، توسعهدهندگان بهراحتی میتوانند تغییرات متعدّد را در اپلیکیشنها ایجاد کنند، امّا قبل از آن میبایست مطمئن شوند که تغییرات، با API مورد استفاده برای هماهنگی سازگار است.
نتفلیکس ادعا میکند که برای اجرای تمامی قابلیتها و فرایندهای سرویس اصلی، از ۷۰۰ مایکروسرویس مجزا استفاده میکند که از جمله خدمات این سرویس ها را میتوان: 1-ذخیره تمامی محتوای تماشا شده توسط کاربر 2-کسر اشتراک ماهیانه از کارت اعتباری کاربر 3-عرضه فرمت مناسب برای پخش در دستگاه کاربر 4-ذخیره تاریخچه تماشای کاربر به منظور شناسایی علایق و در اختیار گذاشتن فهرستی از سریال های دلخواه 5-نشان دادن اطلاعات فیلم ها در منوی کاربر اشاره کرد.
سرویسها کجا اجرا میشوند؟
همانطور که میدانید برای اجرای این حجم از خدمات سرویس ها، نیاز به یک شبکه پیچیده از کامپیوتر بود، نتفلیکس
بعد مدتّی پس از استفاده از این شبکه، تصمیم گرفت تا هزینه خود را بجای سیستم رایانه ای، صرف سرویس محیط ابری AWS شرکت آمازون کند.
نکته جالب این است که نتفلیکس، برای خدمات ابری خود شرکتی را انتخاب کرده که با سرویس Prime video بهعنوان رقیب اصلی محسوب میشود، اما میتوان گفت در دنیای فناوری، رقابت شرکت ها با یکدیگر امری طبیعی است همانند اپل و سامسونگ که با وجود رقابت شدید در بازار گوشیهای هوشمند، اکثر قطعات محصولات اپل توسط سامسونگ ساخته میشود، هرچند نتفلیکس پیش از رونمایی از سرویس ویدیوی آمازون، مشتری خدمات ابری آنها شد، ولی خوشبختانه سرویس جدید منجر به رفتارهای مخرب دو شرکت نسبت به همدیگر نشد.
رقابت آمازون و نتفلیکس، مانع از همکاری در حوزهی خدمات ابری نمیشود
طبق بررسی های صورت گرفته، همکاری این دو شرکت، به سود هر دو تمام میشود، زیرا نتفلیکس حرفهایترین مشتری AWS محسوب میشود و تاکنون از تمامی ظرفیتهای خدمات آنها به حد اعلا استفاده کرده است علاوه بر این، نتفلیکس انواع کاربردها را از سرورهای متنوع آمازون استخراج نموده که از این میان آنها میتوان به، اجرای مایکروسرویسها، ذخیرهسازی فیلمها و کنترل ترافیک اینترنت اشاره کرد، آمازون نیز در مقابل بهره برداری از این سرورها، خدمات متنوعی را به آنها ارائه کرد که از جمله انها، بهینهسازی سرورهای برای تحمل حجم بالای فشار از سوی نتفلیکس بود.
درنهایت، بخش سرویس وب آمازون (Amazon Web Services - AWS) نتفلیکس را با افتخار بهعنوان بزرگترین مشتری خود معرفی کرده و نتفلیکس نیز با تکیه بر خدمات این شرکت، سرویسهای خود را به بهترین نحو به کاربران عرضه میکند درنتیجه، رقابت شدید نتفلیکس و سرویس پرایم ویدئو، هیچگاه مانعی بر سر همکاری دو شرکت اصلی نخواهد بود.
مسیر طولانی از تولید تا پخش
تهیه محتوای مناسب یکی از مهم ترین کارهای هر پخش کننده میباشد، به همین دلیل نتفلیکس برای ارائه این محتواها به کاربران مسیری طولانی و دشوار را طی میکند:
1-اگر یک فیلم یا سریال، محصول خود نتفلیکس نباشد، آنها باید با شرکتهای فعّال در حوزهی توزیع محتوای ویدئویی مذاکره کرده و حق پخش را از آنها دریافت نمایند که گرفتن این اخذ مجوز نیازمند پرداخت هزینه بالایی میباشد، در برخی مواقع، قراردادهای پخش در نقاط مختلف جهان، تفاوتهایی دارند، بهعنوان مثال سریال خانهی پوشالی با تأخیری یک ماهه برای مشتریان نتفلیکس در غرب آسیا پخش شد.
2-مرحلهی بعدی پس از اخذ مجوزهای لازم، ذخیرهی فیلم یا سریال موردنظر در سرورهای AWS است، با توجّه به حجم بالای فایل های ویدئویی، نتفلیکس برای ذخیره و پخش آنها باید مراحل پردازش و تغییر فرمت را انجام دهد.
3-سرویس نتفلیکس روی هزاران نوع دستگاه قابل اجرا میباشد که هریک از آنها فرمت مخصوص خود را برای پشتیبانی از صوت و تصویر دارند، یکی از این سرویس ها AWS میباشد که فیلمهای اصلی را دریافت میکند و آنها را به صدها نوع فیلم و صدای دیگر با قابلیت پخش در دستگاههای مختلف، تبدیل میسازد، پروسهی تبدیل ویدیویی اصلی به فرمتهای قابل پشتیبانی در دستگاههای مختلف بانام Transcoding شناخته میشود.
4-بعد از مرحله شناسایی، اپلیکیشن یا وبسایت نتفلیکس، دستگاه مورد استفادهی کاربر را تشخیص میدهد و فایل مناسب آن را بسته به دستگاه و سرعت اینترنت از سرورهای اصلی دریافت میکند.
5-مهم ترین بخش برای نتفلیکس به منظور جذب و حفظ کاربر، دریافت و ارسال فایل نهایی به آنهاست، در این مرحله، شبکهی اینترنت محتوا را از سرورهای AWS به دست مشتری میرساند، در صورت نامناسب بودن سرعت و کیفیت اینترنت تمام تلاش های نتفلیکس بی اثر خواهد بود زیرا، اینترنت را میتوان بند ناف تغذیهی کاربران توسط نتفلیکس دانست که حیات شرکت به آن بسیار وابسته میباشد.
رقابت با زمان بافر
همانطور که گفته شد در صورت با کیفیت نبودن شبکه اینترنتی، تمام فعالیّتهای نتفلیکس بی نتیجه خواهد ماند چراکه محتوا و تکنولوژیهای مورد استفاده همه به سرعت اینترنت وابسته هستند، در اینجا برای درک بهتر چگونگی رفع چالشهای احتمالی توسط شرکت، کارکرهای اولیه شرکت را مورد بررسی قرار خواهیم داد.
وقتی که کاربر برای انجام فعالیّت خود نیازمند به یک ارتباط اینترنتی باشد، یک درخواست (Request) بهسمت ارائهدهندهی سرویس اینترنت یا همان ISP ارسال میکند، اپراتور نیز آن را به سرور وبسایت میفرستد، در این حالت، سرور یک پاسخ (Response) برای شما ارسال مینماید که در آن نتیجه مشخص شده است، باید گفت که برای نتفلیکس و دیگر سرویسهای بزرگ اینترنتی که میلیونها ساعت ویدئو را را از سرورهای خود بهسمت کاربران میفرستند، وجود چنین شبکه هایی نیاز است که در اصطلاح آنها را بهنام CDN میشناسند.
CDN به زبان ساده
CDN محتوای وبسایت اصلی را بهصورت کامل دریافت کرده و آن را در شبکهای از سرورهای خود در سرتاسر جهان پخش میکند، در تعریفی دیگر میتوان گفت وقتی شما از غرب آسیا به نتفلیکس متّصل میشوید، بهجای سرور اصلی شرکت در آمریکا، با نزدیکترین سرور CDN به کشور ارتباط پیدا میکنید درنهایت، استفاده از CDN، زمان بافر (زمان مورد نیاز برای ارسال درخواست و دریافت پاسخ از سرور) را بسیار کاهش میدهد، درواقع CDN ابزاری است که باعث بارگذاری با سرعتی مناسب برای وبسایتهای بزرگ همچون گوگل، فیسبوک و یوتیوب نیز در هرنقطه از جهان میگردد، نتفلیکس نیز برای ارائه خدمات خود از چندین شبکهی تحویل محتوا یا CDN استفاده میکرد که توسط غولهای بازار همچون Akamai، Level 3 و Limelight عرضه میشدند البته، افزایش کاربران، نیازمند ارائه بهتر و با هزینه پایین تر میباشد به همین دلیل نتفلیکس شبکهی خود را با نام Open Connect توسعه داد.
اپراتورهای اینترنت در سایر نقاط جهان، جعبههای معروف نتفلیکس را درکنار سرورها نصب مینمایند، این دستگاههای اوپن کانکت، محتوای نتفلیکس را از سرورهای اصلی در آمریکا دانلود میکنند البته برخی از آنها با توجّه به نیاز منطقه و علاقه مندی کاربران برای دانلود اولویت بالاتری دارند درنتیجه، فیلمی که از طرفداران کمتری برخوردار است با سرعت پایین تری نسبت به سایر ویدئوهای دیگر بارگذاری میشود.
دستگاههای اوپن کانکت نتفلیکس بهنوعی درایوهای ذخیرهسازی فیلم به حساب می آیند که در سرتاسر جهان، پخش شدهاند، هرچه این دستگاهها به کاربر نزدیکتر باشند، سرعت بارگذاری محتوا نیز بیشتر خواهد شد البته، فرایند آن کمی پیچیدهتر است به این شکل که نتفلیکس پس از صدور دستور پخش سریال توسط کاربر، ابتدا به ۱۰ دستگاه اوپن کانکت در نزدیکی او متّصل میشود و سپس از بین آنها، نزدیکترین را با بهترین سرعت برمیگزیند.
خلاصه فرایند پخش محتوا در نتفلیکس
اتفاقات زیر در زمان استفاده کاربر از مایکروسرویس رخ میدهد:
- تعداد زیادی از برنامه های مستقل با همدیگر کار میکنند تا سرویس بزرگی با نام نتفلیکس به خوبی اجرا شود.
- محتوای خریداری شده، به فرمت و ابعادی تبدیل میشود که با صفحهی نمایش و دستگاه کاربر همخوانی داشته باشد.
- سرورها در سرتاسر جهان یک کپی از فیلم موردنظر را ذخیره میکنند تا نزدیکترینِ آنها به کاربر، محتوا را با سرعت بالا به او عرضه نماید.
- وقتی کاربر دستور پخش را به اپلیکیشن میدهد، نزدیکترین سرور انتخاب شده و با فرمت مناسب پخش میگردد.