Python และ Netflix: จะเกิดอะไรขึ้นเมื่อคุณสตรีมภาพยนตร์



รู้ว่า Netflix คืออะไรและยักษ์ใหญ่สตรีมมิ่งรายนี้ใช้ Python อย่างไรในโดเมนต่างๆเช่น Operations, Machine learning, Informtion Security เป็นต้น

จุดหมายปลายทางแบบครบวงจรสำหรับผู้ชื่นชอบภาพยนตร์ทุกเรื่องคือ Netflix แต่จะเกิดอะไรขึ้นถ้าคุณกำลังดูภาพยนตร์เรื่องโปรดของคุณและมันยังคงบัฟเฟอร์อยู่ตลอดเวลา? คุณเพียงแค่ปิดแอปพลิเคชันและเลือกตัวเลือกอื่น แต่จะจัดการการเข้าชมของผู้ใช้นับล้านอย่างรวดเร็วได้อย่างไร? ขอบคุณ . ในบทความนี้เรามาดูวิธีที่ Netflix ใช้ Python

เริ่มต้นด้วยการดูธีมที่เติมเต็มบทความนี้:





ผลรวมของตัวเลขใน java โดยใช้สำหรับการวนซ้ำ

มาเริ่มกันเลย :)

ข้อมูลเบื้องต้นเกี่ยวกับ Netflix

โลโก้ Netflix - วิธีที่ Netflix ใช้ Python-EdurekaNetflix เป็น บริษัท สัญชาติอเมริกันที่ให้บริการ Video on Demand (VOD) Netflix มีสำนักงานใหญ่อยู่ที่เมือง Los Gatos รัฐแคลิฟอร์เนียมีสมาชิกประมาณ 148 ล้านคนทั่วโลกและยังคงมีจำนวนเพิ่มขึ้นเรื่อย ๆ ในแต่ละวัน ในช่วงเวลาประมาณสองทศวรรษที่ผ่านมา Netflix ได้กลายเป็น 'ราชาแห่งตระกูล' สำหรับซีรีส์และภาพยนตร์ทางทีวีที่ยิ่งใหญ่ที่สุดทั่วโลก การเป็นแบรนด์ที่เติบโตเร็วที่สุดของอเมริกาและมีรายได้ 20.5 พันล้านดอลลาร์ในปี 2019 ก็เพียงพอแล้วที่จะเป็น 'สะดุดตา' จึงน่าสนใจทั้งหมดในแวดวงเทคโนโลยี



จากความสนใจเดียวกัน Netflix ได้เปิดเผยว่ามันใช้ประโยชน์จากภาษาที่ได้รับความนิยมมากที่สุดอย่างไร Python สำหรับโครงสร้างพื้นฐาน

ตอนนี้เรามาดูกันดีกว่าว่า Netflix ใช้ Python อย่างไร?



Netflix ใช้ Python อย่างไร

“ เราใช้ Python ตลอดวงจรชีวิตของเนื้อหาตั้งแต่การตัดสินใจว่าจะให้เงินสนับสนุนเนื้อหาใดไปจนถึงการดำเนินงาน CDN ที่ให้บริการวิดีโอขั้นสุดท้ายแก่สมาชิก 148 ล้านคน” - วิศวกรที่ Netflix

ตั้งแต่ฉROM แอดมินโดเมนเพื่อความน่าเชื่อถือและ วิทยาศาสตร์ข้อมูล ถึง ฯลฯ Netflix ใช้ Python สำหรับธุรกิจเกือบทุกด้าน

ตอนนี้เรามาดูวิธีการที่ลึกซึ้งยิ่งขึ้น ถูกใช้ในโดเมนต่างๆที่ Netflix:

เปิด Connect:

CDN (Content Delivery Network) ที่ Netflix ใช้คือ Open Connect เปิดการเชื่อมต่อโดยทั่วไปจะเป็นภาพเมื่อคุณคลิกที่ปุ่ม 'เล่น' เนื้อหาทั้งหมดที่ส่งไปยังผู้ใช้จะได้รับการดูแลโดย CDN นี้

การเชื่อมต่อแบบเปิดต้องใช้ระบบซอฟต์แวร์อื่น ๆ ในการออกแบบสร้างและใช้งานซึ่งจะเขียนด้วยภาษา Python ไม่เพียงแค่นี้อุปกรณ์เครือข่ายที่อยู่ภายใต้ CDN นี้เป็นแอปพลิเคชัน Python เนื่องจาก Python มีความโดดเด่นในการแก้ปัญหาเครือข่าย

ทีมวิศวกรรมความต้องการ:

ทีมวิศวกรรมความต้องการมีหน้าที่รับผิดชอบในการจัดการความล้มเหลวในภูมิภาคของระบบคลาวด์ของ Netflix การดูแลการจราจรการจัดการการปฏิบัติการความจุ (ดูแลขีด จำกัด ที่เนื้อหาสามารถให้บริการได้) และประสิทธิภาพของยานพาหนะ องค์ประกอบของ Python ที่ทีมนี้ใช้คือ:

NumPy และ SciPy:

และ SciPy เป็นห้องสมุดที่ใช้สำหรับการคำนวณทางวิทยาศาสตร์ Netflix ใช้ไลบรารี Python เหล่านี้เพื่อทำการวิเคราะห์เชิงตัวเลขจึงช่วยให้สามารถจัดการ Regional Failovers ได้

Boto3:

Boto3 เป็น Software Development Kit (SDK) ของ สำหรับ Python สิ่งนี้ช่วยให้นักพัฒนา Python รวม Python เข้ากับ AWS จึงทำให้สามารถพัฒนาโครงสร้างพื้นฐานได้

RQ (คิว Redis):

นี่คือไลบรารี Python ที่ช่วยติดตามงานที่มีอยู่ในคิวและอนุญาตให้ดำเนินการได้ซึ่งจะทำให้สามารถจัดการปริมาณงานแบบอะซิงโครนัสได้

กระติกน้ำ:

สุดท้าย Netflix ใช้ Flask (ไลบรารีการพัฒนาเว็บ Python) เพื่อเชื่อมโยงส่วนก่อนหน้าทั้งหมดเข้าด้วยกัน

การสอน android studio สำหรับผู้เริ่มต้น

Netflix ใช้ประโยชน์จากไฟล์ ซึ่งเป็นเว็บแอปโอเพนซอร์สที่ใช้สำหรับการพัฒนา Python พร้อมกับ nteract (ส่วนขยายสำหรับ Jupyter) ในระดับใหญ่ เป็นที่ทราบกันดีว่า Jupyter เป็นที่นิยมในการวิเคราะห์ข้อมูล ทำหน้าที่ได้ดีมากในการวิเคราะห์ข้อมูลการดำเนินงานและการแสดงภาพซึ่งจะช่วยในการตรวจจับการถดถอยของกำลังการผลิต

โครงสร้างพื้นฐานของ Machine Learning:

มีตั้งแต่การสร้างอัลกอริธึม Personalization ไปจนถึงการหากรณีการใช้งาน อัลกอริธึม Personalization ช่วยในการฝึกโมเดล Machine Learning ตามมาตรฐาน Netflix ให้คำแนะนำส่วนบุคคลโครงร่างในแต่ละวันรุ่นฉลาก ฯลฯ

ห้องสมุดที่จำเป็นในการเรียนรู้ Deep Neural Networks คือ TensorFlow , ยาก และ Pytorch ในขณะที่ XGBoost และ LightGBM สำหรับ Gradient Boosted Decision Treesพวกเขายังได้พัฒนาไลบรารีระดับสูงขึ้นไปเล็กน้อยซึ่งช่วยในการรวมกับพื้นที่ทำงานเช่นการบันทึกข้อเท็จจริงการแยกคุณลักษณะการเผยแพร่ ฯลฯ นอกเหนือจากนี้ Netflix ยังใช้ MetaFlow เพื่อสร้างโครงการแมชชีนเลิร์นนิง

“ Metaflow ผลักดันขีด จำกัด ของ Python: เราใช้ประโยชน์จากโค้ด Python ที่ขนานกันและปรับให้เหมาะสมเพื่อดึงข้อมูลที่ความเร็ว 10Gbps จัดการจุดข้อมูลหลายร้อยล้านจุดในหน่วยความจำและจัดการการคำนวณบนแกน CPU นับหมื่น” - Netflix

ข้อมูลใหญ่:

ทีมมีหน้าที่ดำเนินการ ETL (แยก, แปลง, โหลด) และไปป์ไลน์ Adhoc ส่วนสำคัญของการเรียบเรียงนี้เขียนด้วยภาษา Python ทีมนี้ใช้ตัวกำหนดตารางเวลาซึ่งทำงานบน Jupyter Notebooks พร้อม papermill เพื่อสร้างประเภทงานด้วยเทมเพลตตัวอย่างเช่น , เร็ว ๆ นี้ ฯลฯ

นอกจากนี้ทีมงานยังได้สร้างแพลตฟอร์มที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งสร้างขึ้นอย่างสมบูรณ์บน Python พวกเขาได้สร้างเหตุการณ์จำนวนมากและรวมไว้เป็นเหตุการณ์เดียวเพื่อให้ Netflix สามารถกรองตอบสนองและกำหนดเส้นทางเหตุการณ์ได้ Pygenie ยังเป็นส่วนหนึ่งของโครงสร้างพื้นฐานนี้ซึ่งเชื่อมต่อกับ Genie (บริการดำเนินการตามลักษณะงาน)

การทดลองทางวิทยาศาสตร์:

นี่คือแพลตฟอร์มที่สร้างขึ้นโดยทีมทดลองทางวิทยาศาสตร์เพื่อให้ การทดสอบ A / B พร้อมกับการทดลองอื่น ๆ ที่นี่นักวิทยาศาสตร์และวิศวกรสามารถนำเสนอนวัตกรรมใหม่ ๆ ในด้านข้อมูลสถิติและการแสดงภาพ

Python ที่นำมาใช้คือ เมตริก Repo ซึ่งขึ้นอยู่กับ PyPika และอนุญาตให้เขียนแบบสอบถามที่กำหนดพารามิเตอร์ที่ใช้ซ้ำได้ สำหรับภาคสถิติ PyArrow และ RPy2 ใช้เพื่อคำนวณสถิติใน Python หรือ R พล็อต ช่วยในการแสดงภาพ

การเข้ารหัสวิดีโอ / วิศวกรรมคลาวด์สื่อ:

ทีมนี้มีหน้าที่ในการเข้ารหัสและเข้ารหัสงานสำหรับแคตตาล็อก Netflix Python ถูกใช้ประมาณ 50 โครงการเช่น VMAF (Video Multi-Method Assessment Fusion) และ MezzFS (ระบบไฟล์ Mezzanine), โซลูชั่นคอมพิวเตอร์วิชั่น (จัดการกับภาพ) โดยใช้ ธนู ฯลฯ

Netflix Animation และ NVFX:

Python เป็นฐานสำหรับ Animations และ Visual Effects (VFX) ทั้งหมดที่ Netflix สหภาพมายาและ Nuke ทั้งหมดทำบน Python

ประเภทของความคิดเห็นใน java

IS (ความปลอดภัยของข้อมูล):

Netflix ใช้ระบบ IS ที่ขับเคลื่อนด้วย Python สำหรับการแก้ไขอัตโนมัติการรักษาความปลอดภัยอัตโนมัติการจำแนกความเสี่ยง ฯลฯ โครงการ Python แบบโอเพนซอร์สที่มีการใช้งานมากที่สุดของทีมนี้คือ ลิงรักษาความปลอดภัย . Netflix ยังใช้ อวยพร (บริการ Lambda Ephemeral SSH ของ Bastion) ป้องกัน สสส ทรัพยากร (Secure Shell) RepoKid ใช้เพื่อให้สิทธิ์ แล้ว สิทธิ์และใบรับรอง TLS ได้รับการจัดสรรผ่าน Lemur งานทั้งสองนี้อาศัย Python เป็นหลัก

การตรวจสอบและการแก้ไขอัตโนมัติ:

ทีมนี้รู้จักกันในชื่อทีม Insight Engineering พวกเขาสร้างและเรียกใช้เครื่องมือสำหรับข้อมูลเชิงลึกด้านการปฏิบัติงานการวินิจฉัยการแก้ไขอัตโนมัติและการปรับเปลี่ยน สำหรับบริการส่วนใหญ่ทีมนี้ใช้ Python ตัวอย่างเช่นไลบรารีไคลเอ็นต์ Spectator Python ไลบรารีนี้ใช้สำหรับบันทึกอนุกรมเวลาเชิงมิติ นอกเหนือจากไลบรารีเหล่านี้ผลิตภัณฑ์เช่น Winston และ Bolt ยังสร้างขึ้นบนเฟรมเวิร์ก Python ซึ่งเป็น , Gunicorn และ Flask-RestPlus

สรุปแล้วเราสามารถอ้างสิทธิ์ Python เป็นแรงผลักดันให้ Netflix ได้อย่างง่ายดาย ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบล็อกนี้ในหัวข้อ“ Netflix ใช้ Python อย่างไร” ฉันหวังว่าคุณจะเข้าใจทุกอย่างที่คุยกัน

หากต้องการรับความรู้เชิงลึกเกี่ยวกับ Python พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถลงทะเบียนเพื่อถ่ายทอดสด ด้วยการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Python ใช้ Netflix อย่างไร' และเราจะติดต่อกลับโดยเร็วที่สุด