چرا Netflix زبان پایتون را به جاوا ترجیح می دهد؟

نتفلیکس (Netflix) یک شرکت آمریکایی رسانه جاری است که به پخش آنلاین و تولید محصولات نمایشی از جمله فیلم های سینمایی و مجموعه های تلویزیونی می پردارد. همچنین تا آوریل سال 2020 بیش از 182 میلیون مشترک دارد.  Netflix به طور فزاینده ای از جاوا به پایتون مهاجرت می کند تا جنبه های خاصی از سرویس پخش ویدئو خود را تولید کند، مانند تولید و پردازش هشدار ها، تقویت انعطاف پذیری، امنیت تراکنش ها و معاملات، تولید AMI های قابل استفاده (Amazon Machine Images) و مدیریت خوشه های کاساندرا (Cassandra clusters) به صورت خودکار.

استفاده از Python در Netflix

Roy Rapoport، مدیر مهندسی نظارت در نتفلیکس، با اشاره به کتابخانه های غنی و استاندارد، نحو (Syntax) مختصر و تمیز، جامعه توسعه دهندگان بزرگ و کتابخانه های شخص ثالث، نشان داد که محبوبیت و استفاده از پایتون در بین توسعه دهندگان Netflix در حال افزایش است.

Netflix یک وب اپلیکیشن RESTful به نام CAG (Central Alert Gatway) ایجاد کرده است که قادر است روزانه صد ها هزار هشدار تولید شده توسط سیستم تله متری شرکت را گرفته و به صورت هوشمند آن ها را توزیع یا دفع کند. به عنوان مثال برخی از هشدار ها به صورت خودکار به سیستم اطلاع رسانی شرکت برای مهندسان صفحه تماس ارسال می شوند. برخی از این هشدار ها در صورت اطلاع به افراد مربوطه، متوقف می شوند. در موارد دیگر، CAG به طور خودکار اقداماتی را برای اصلاح آن ها انجام می دهد.

این شرکت برای آزمایش انعطاف پذیری در مقیاس بزرگ از ابزاری به نام Chaos Gorilla استفاده می کند. Chaos Gorilla با Edda و Asgard ادغام می شود تا از بین رفتن یا آفلاین شدن یک ناحیه در دسترس در یک منطقه مشخص را شبیه سازی کند. این نوع خرابی تقریبا هر 3 سال یک بار رخ می دهد اما به اندازه کافی مشکل بزرگی هست که شبیه سازی آن و اطمینان از اینکه سیستم ما در برابر آن مقاوم خواهد بود، برای ما اهمیت داشته باشد.

در زمینه امنیت، نتفلیکس Security Monky و Howler Monkey را به کار گرفته است. مورد اول برای ردیابی تاریخچه پیکربندی و ایجاد هشدار در مورد تغییر در سیاست های امنیتی EC2 طراحی شده است. هدف دومی کشف و ردیابی گواهینامه های SSL در محیط Netflix و نام دامنه ها و همچنین هشدار به گیرندگان مربوط با نزدیک شدن تاریخ انقضای گواهی SSL است.

همچنین این شرکت از پایتون برای تبدیل برنامه های کاربردی به AMI (به نوعی ماشین مجازی آمازون) با ابزاری به نام Aminator استفاده می کند. این ابزار یک ایمیج را به یک نمونه EC2 در حال اجرا متصل می کند، آن را از قبل آماده کرده، پکیج ها را روی ایمیج نصب کرده و ایمیج حاصل شده را به یک برنامه کامل Netflix تبدیل می کند. Roy Rapoport در این باره می گوید: “از نظر مفهوم و اجرا ساده است، اما برای موفقیت ما بسیار حیاتی است”.

نتفلیکس تعداد زیادی ماژول مبتنی بر پایتون را برای مدیریت و حفظ خوشه با کلاستر های پایگاه داده کسندرا ایجاد کرده است. ماژول ها از REST API ها برای برقراری ارتباط با سایر ابزار های Netflix برای کارهایی مانند مدیریت نمونه های داخل AWS و کسندرا استفاده می کنند. Roy Rapoport در ادامه افزود: “این فعالیت ها شامل ایجاد خوشه (کلاستر) با استفاده از Asgard، ردیابی خزانه نظارت بر Eureka برای اطمینان از اینکه خوشه ها برای کلاینت قابل مشاهده هستند، مدیریت تعمیرات و فشرده سازی کسندرا و انجام بروزرسانی های نرم افزاری هستند.”

لیست ابزار های پایتون Netflix به همین جا ختم نمی شود. تیم های علم داده و مهندسی از یک وب سرویس RESTful به نام Sting استفاده می کنند که برای تکه تکه کردن مجموعه داده های بزرگ در حافظه و تولید تجسم های مفید از داده ها طراحی شده است.

QR:  چرا Netflix زبان پایتون را به جاوا ترجیح می دهد؟
به اشتراک بگذارید