شركات وبايثون – Netflix وطريق الترفيه الذي يمر عبر البايثون
شركات وبايثون هي سلسلة جديدة ومبتكرة، تُقدمها بايثونات لجمهورها ولكل محبي البرمجة بشكل عام وبلغة بايثون بشكل خاص. هذه السلسلة تتحدث عن دور لغة البرمجة بايثون في عمل الشركات الكبرى والعالمية، وكيف أن هذا الشركات استطاعت تقديم خدماتها والسطيرة في مجال عملها عبر لغة البايثون. الهدف الأساسي من هذه السلسلة هو توعوي، نُبرز فيه قوة البايثون ودرجة الاعتماد الكبير عليها، ونقدم في هذه السلسلة العديد من الأمثلة لمكتبات وتطبيقات بالبايثون استخدمتها الشركات واعتمدت عليها في تقديم خدماتها.
كيف تُساعد لغة البايثون Netflix على الإنتشار؟
سنبدأ باكورة هذه المقالات بعملاق الترفيه على المستوى العالمي “Netflix“، وكيف استطاعت هذه الشركة الاستفادة جيدًا من قوة لغة البايثون في إسعاد أكثر من 148 مليون شخص عبر العالم.
يُقر المهندسون لدى Netflix بأنهم يستخدمون لغة البايثون في جميع مراحل الخدمة التي تقدمها Netflix لجمهورها، بدءًا بمعرفة أي المحتوى سيتم اعتماده في الشبكة وحتى عملية البث لقرابة 148 مليون مشترك حول العالم
عندما تبدأ بمشاهدة فيلمك المفضل على Netflix، أو عندما تبدأ خيارات المشاهدة بالتدفق على الشاشة استنادًا لرغباتك السابقة وأرشيف مشاهداتك، قد لا يخطر على بالك دور لغة البايثون فيما تشاهده أمامك، ومن المؤكد ايضًا أنك لن تهتم بما بذله جيش مطوري Netflix باستخدام بايثون، ليجعلوك تتمتع بما تُشاهده. هنا ستتعرف أكثر وتنجلي حقيقة الدور الكبير للغة البرمجة بايثون في إسعادك.
تُعد شركة Netflix أحد أكبر عمالقة الترفيه على مستوى العالم، وهي شركة أمريكية تُقدم خدمات عرض المحتوى المرئي حسب الطلب On-Demand Services. استطاعت الشركة توظيف لغة البرمجة البايثون بشكل أساسي في تحليل البيانات والخدمات الخلفية Back End Services والعديد من الخدمات الأخرى، هذا وقد ذكرت مصادر عدة أن شركة Netflix تُرجع سر نجاحها إلى لغة البايثون (المقصود، من وجهة نظر بايثونات، أن البايثون هي سر النجاح التقني للشركة).
تؤكد المدونة التقنية Netflix أن الشركة تستخدم البايثون خلال جميع مراحل عملية تقديم المحتوى للمستخدمين ابتداءً من تحديد أي محتوى ينبغي تقديمه، مرورًا بأدوات الأمان وخوارزميات التوصية، وحتى تشغيل شبكة تقديم المحتوى Content Distribution Network والتي تُطلق عليها الشركة اسم Open Connect.
شبكة Open Connect
يبدأ دور شبكة Open Connect عندما تضغط على زر التشغيل Play. إن سيل البيانات الذي يبدأ بالتدفق ويظهر على شكل مقاطع مرئية تشاهدها على شاشتك، تتحكم بها شبكة Open Connect. تستند هذه الشبكة في عملها على مجموعة كبيرة من تطبيقات بُنيت وصُممت باستخدام لغة البرمجة بايثون. تعمل تلك التطبيقات على معرفة نوع الجهاز المستخدم في العرض، وما هو رقم إصداره، وما هي مكوناته الصلبة وموقعه. كُل ذلك يلعب دورًا هامًا في تحديد حجم وكم البيانات التي سيتم ارسالها لجهاز العرض لديك، وما هي الشيفرة التي تناسب العتاد الخاص بالجهاز.
أي المقاطع المرئية سيتم اقتراحها عليك، بالاضافة للعناوين الجديدة والمحتوى الخاص بك والذي يستند لأرشيف مشاهداتك السابقة، وهل أنت مخول بالدخول والاستفادة من خدمات Netflix، كل ذلك، يتم تشغيله وإدارته باستخدام خدمات أمازون عبر الويب AWS وجميعها تعتمد في عملها على شبكة Open Connect.
تحاول Netflix قدر المستطاع أن تضع المحتوى المرئي بالقرب منك، ويُقصد بذلك أن يتم حفظ المحتوى بداخل أقرب خادم إليك جغرافيًا. يُقلل ذلك التكلفة على الشركة وعلى مزودي خدمات الانترنت، ويعمل على تقديم محتوى ذو جودة كبيرة ويُعزز من تجربة المستخدم. العديد من الأنظمة والبرامج تحتاج Netflix لتطويرها وبناءها لتشغيل شبكة Open Connect، وقد ذكرت الشركة أن جُزء كبير من هذه الأنظمة مبنية باستخدام البايثون.
“نحن فخورون بأن العديد من الأدوات التي نستخدمها في عملنا تم بناؤها بشكل أساسي باستخدام البايثون”
فريق مهندسي Netflix
البُنية التقنية لخدمة Netflix
كم هو مُزعجٌ أن تكون قد عُدت من يوم عملٍ شاق، وتُريد أن ترتاح في المساء وتشاهد فيلمك المُفضل على Netflix، ثم فجأة، تنقطع الخدمة عن العمل. إنها لحظات تُثير العصبية لدى البعض، وهذا ما حدث فعلًا في عام 2012 عندما توقفت Netflix لمدة 7 ساعات بسبب خلل في خدمات AWS. إن العدد الكبير لمستخدمي Netflix يُحتم عليها أن تبني شبكة الطلب على خدماتها بطريقة تضمن عدم انقطاعها، وإن حدث إنقطاع، فينبغي ألا يكون إلا لتفرات قصيرة.
عمل مهندسو Netflix على بناء شبكة العرض بحيث تتمتع بمرونة كبيرة تُراعي المكان الجغرافي للمستخدم، وتضمن عملية توزيع المحتوى بشكل متوازن. العديد من مكتبات بايثون الشهيرة، ساعدت المهندسين على جعل Netflix واقفة بقوة على قدميها في مواجهة حالات الانقطاع والتوقف، فمكتبات مثل Numpy و Scipy استخدمتها Netflix لتحليل البيانات، ومكتبة Boto3 التي تُعتبر البوابة للتعامل مع خدمات أمازون AWS. كذلك، مكتبة البايثون RQ أُستخدمت في إدارة الأحمال غير المتزامنة، ولا ننسى هنا أن نذكر أيضًا إطار بايثون الشهير للويب Flask، والذي استخدمته Netflix لبناء الواجهات البرمجية للعديد من الأدوات لديها.
يعتمد مهندسو Netflix على بايثون في بناء إضافات مُخصصة لأداة Jupyter الشهيرة، والتي تسمح لهم بإدارة العديد من المهام مثل التسجيل Logging والأرشفة والنشر ونسخ مستندات Jupyter الأخرى. ما سبق يُعطي صورة واضحة عما يُمكن أن تُقدمه البايثون لشركة عملاقة مثل Netflix.
فريق مهندسي Netflix الرئيسي CORE Team
فريق CORE في Netflix هو مجموعة من فرق صُغرى متنوعة من المهندسين الذين يُعتبرون العقل المُشغل لعملاق الترفيه. يستخدم فريق CORE لُغة البايثون في العمليات الرياضية والتحليلية التي تُغذي أنظمة التنبيه ومراقبة المشاكل والأخطاء. عندما نذكر العمليات الرياضية وتحليل البيانات فإننا نتكلم بكل تأكيد عن مكتبات البايثون مثل Numpy و scipy و pandas و ruptures. جميع تلك المكتبات تُستخدم في متابعة أكثر من 1000 إشارة لها علاقة بنظام التنبيه المسؤول عن معرفة المشاكل والأخطاء في Netflix.
أضف لما سبق، فإن فريق CORE يعرف جيدًا قُدرة البايثون في أتمتة العمليات، لذلك، فهم يعتمدون بشكل كبير عليها في تنفيذ العديد من العمليات الروتينية والمتكررة. لا ننسى هنا قدرات البايثون في الإظهار الرسومي للبيانات واستكشاف مجموعات البيانات الكبيرة والمعقدة والتي أقر فريق مهندسي Netflix بأنهم يستخدمونها.
البايثون وأمن المعلومات وNetflix
يستخدم فريق أمن المعلومات لدى Netflix لغة البايثون لإنجاز العديد من المهام المُتعلقة بتأمين البيانات والمعلومات والخدمات. أتمتة العمليات الأمنية، وتحديد المخاطر، والمعالجات الآلية، ومعرفة الثغرات، جميعها ساحات لا يتألق بها إلا نجمٌ واحد، ألا وهو البايثون. تعتمد العديد من الأنظمة لدى Netflix على مكتبة بايثون المُسماة Bless في الوصول إلى العديد من المصادر خلال اتصال SSH، كما ويستخدم فريق مهندسي Netflix البايثون في إصدار شهادات TLS باستخدام مكتبة بايثون Lemur.
العديد من المشاريع والأنظمة لدى Netflix تتضمن Prism وهو نظام يُساعد مهندسي أمن المعلومات على تقييم المخاطر وتحديد الثغرات في الشيفرات البرمجية. تُقدم Netflix مكتبات بايثون وروبي التي يُمكن من خلالها التعامل مع نظام Prism. أداة التحقيق الرقمي الجنائي Diffy، التي أصدرها الفريق الأمني لـ Netflix والذي يُدعى SIRT، هي أداة مبنية باستخدام البايثون، ومن خلال هذه الأداة، تستطيع فِرق التحقيق الجنائي الرقمي من التعرف على الخوادم المُصابة أو المُخترقة، وتُساعدهم للتركيز على طبيعة الاستجابة خلال الحوادث الأمنية في خدمات السحابة.
المُراقبة والتنبيه والمعالجة الآلية
فريق Insight Engineering هو الفريق المسؤول عن بناء وتشغيل الأدوات التي تُراقب العمليات التشغيلية في Netflix. تعمل الأدوات التي يُنتجها الفريق على المراقبة والتنبيه والمعالجات الآلية. استطاع الفريق تقديم العديد من المشاريع من خلال البايثون وجعلها مفتوحة المصدر مثل مشروع Spectator. العديد من مكتبات بايثون أصدرها فريق Insight Engineering بهدف التخاطب مع منصات أخرى تابعة لـ Netflix. بالاضافة للمكتبات والأدوات، أنظمة متكاملة استطاع الفريق بناؤها مثل Winston و Bolt باستخدام مكتبات وأطر شهيرة بالبايثون مثل Gunicorn و Flask و Flask-RESTPlus.
خاتمة القصة: البايثون… دور لا ينتهي
هي قصةٌ لها بداية، ثم تشعبت حبكتها ومشاهدها، دون نهاية. هذا ما يُمكن أن نقوله عن لُغة البايثون، التي بدأت قصتها أوائل تسعينيات القرن العشرين على يد Guido van Rossum. ولكن، بالطبع لأن البايثون لغة برمجة قوية، ذلك التشعب لا يزيدها إلا تألُقًا وجمالا، عندما تنتشر استخدامًا في العديد من المجالات، ويُدلي فيها كُل مبرمج خبير، بخبرته وتجربته فيها. إنها قصة جميلة، طرقنا في هذا المقال، أحد فصولها.
ولحِين أن نتناول فصلًا آخر، وقصة جديدة لشركة مع البايثون، نسعد بأن تُشاركنا رأيك، ونسعد أكثر بمتابعتنا عبر منصات التواصل الاجتماعي.
إلى لقاء آخر…
شكرا جزيلا لمشاركة نوع من المعلومات.