จุดหมายปลายทางแบบครบวงจรสำหรับผู้ชื่นชอบภาพยนตร์ทุกเรื่องคือ Netflix แต่จะเกิดอะไรขึ้นถ้าคุณกำลังดูภาพยนตร์เรื่องโปรดของคุณและมันยังคงบัฟเฟอร์อยู่ตลอดเวลา? คุณเพียงแค่ปิดแอปพลิเคชันและเลือกตัวเลือกอื่น แต่จะจัดการการเข้าชมของผู้ใช้นับล้านอย่างรวดเร็วได้อย่างไร? ขอบคุณ . ในบทความนี้เรามาดูวิธีที่ Netflix ใช้ Python
เริ่มต้นด้วยการดูธีมที่เติมเต็มบทความนี้:
ผลรวมของตัวเลขใน java โดยใช้สำหรับการวนซ้ำ
มาเริ่มกันเลย :)
ข้อมูลเบื้องต้นเกี่ยวกับ Netflix
Netflix เป็น บริษัท สัญชาติอเมริกันที่ให้บริการ 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 อย่างไร' และเราจะติดต่อกลับโดยเร็วที่สุด