Bagaimana Netflix membangun infrastruktur data waktu nyata

Bergabunglah dengan eksekutif terkemuka hari ini secara online di Data Summit pada 9 Maret. Daftar disini.


Apa yang membuat Netflix, Netflix? Membuat program orisinal yang menarik, menganalisis data penggunanya untuk melayani pelanggan dengan lebih baik, dan membiarkan orang mengonsumsi konten dengan cara yang mereka sukai, menurut analisis Investopedia.

Meskipun hanya sedikit orang yang tidak setuju, mungkin tidak banyak yang mengetahui latar belakang apa yang memungkinkan analisis data pengguna dan operasional Netflix untuk melayani pelanggan dengan lebih baik. Selama pertumbuhan hiper global Netflix, keputusan bisnis dan operasional bergantung pada data logging yang lebih cepat dari sebelumnya, kata Zhenzhong Xu.

Xu bergabung dengan Netflix pada tahun 2015 sebagai insinyur pendiri di real- tim infrastruktur data waktu, dan kemudian memimpin tim mesin pemrosesan aliran. Dia mengembangkan minat pada data real-time di awal 2010-an dan sejak itu percaya bahwa ada banyak nilai yang belum terungkap di area ini.

Baru-baru ini, Xu meninggalkan Netflix untuk mengejar visi yang serupa namun diperluas dalam ruang pembelajaran mesin waktu nyata. Xu mengacu pada pengembangan Infrastruktur data real-time Netflix sebagai perjalanan berulang, yang berlangsung antara 2015 dan 2021. Dia merinci perjalanan ini dalam empat fase yang berkembang.

Fase 1: Menyelamatkan log Netflix dari saluran pipa batch yang gagal (2015)

Fase 1 melibatkan penyelamatan log Netflix dari saluran pipa batch yang gagal. Pada fase ini, tim Xu membangun platform streaming pertama dari bawah ke atas untuk menggantikan saluran pipa yang gagal.

Peran Xu dan timnya adalah memberikan pengaruh dengan mengelola fondasi secara terpusat infrastruktur, memungkinkan tim produk untuk fokus pada logika bisnis.

Pada tahun 2015, Netflix telah memiliki sekitar 60 juta pelanggan dan secara agresif memperluas kehadiran internasionalnya. Tim platform tahu bahwa dengan segera meningkatkan leverage platform akan menjadi kunci untuk mempertahankan pertumbuhan pelanggan yang meroket.

Sebagai bagian dari keharusan itu, tim Xu harus mencari cara untuk membantu Netflix skala praktik penebangannya. Saat itu, Netflix memiliki lebih dari 500 layanan mikro, menghasilkan lebih dari 10PB data setiap hari.

Mengumpulkan data tersebut akan melayani Netflix dengan mengaktifkan dua jenis wawasan. Pertama, ini membantu mendapatkan wawasan analisis bisnis (misalnya, retensi pengguna, durasi sesi rata-rata, apa yang sedang tren, dll.). Kedua, ini membantu mendapatkan wawasan operasi (misalnya, mengukur pemutaran streaming per detik untuk memahami kesehatan sistem Netflix dengan cepat dan mudah) sehingga pengembang dapat memperingatkan atau melakukan mitigasi.

Data harus dipindahkan dari tepi di mana itu dihasilkan ke beberapa toko analitis, kata Xu. Alasannya diketahui oleh semua orang data: layanan mikro dibangun untuk melayani kebutuhan operasional, dan menggunakan toko pemrosesan transaksional (OLTP) online. Analytics memerlukan pemrosesan analitik online (OLAP).

Menggunakan toko OLTP untuk analitik tidak akan berfungsi dengan baik dan juga akan menurunkan kinerja layanan tersebut. Oleh karena itu, ada kebutuhan untuk memindahkan log dengan andal dalam mode latensi rendah. Pada tahun 2015, volume logging Netflix telah meningkat menjadi 500 miliar peristiwa/hari (1PB penyerapan data), naik dari 45 miliar peristiwa/hari pada tahun 2011.

Infrastruktur pencatatan yang ada (a platform pipa batch sederhana yang dibangun dengan Chukwa, Hadoop, dan Hive) gagal dengan cepat melawan peningkatan jumlah pelanggan mingguan. Tim Xu memiliki waktu sekitar enam bulan untuk mengembangkan solusi streaming-first. Lebih buruk lagi, mereka harus melakukannya dengan enam anggota tim.

Selanjutnya, Xu mencatat bahwa pada saat itu, ekosistem data streaming belum matang. Beberapa perusahaan teknologi telah membuktikan keberhasilan penerapan streaming-first pada skala yang dibutuhkan Netflix, sehingga tim harus mengevaluasi opsi dan eksperimen teknologi, dan memutuskan apa yang akan dibuat dan alat apa yang baru lahir untuk dipertaruhkan.

Pada tahun-tahun itulah fondasi untuk beberapa produk buatan Netflix seperti Keystone dan Mantis diletakkan. Produk-produk itu memiliki kehidupannya sendiri, dan Mantis kemudian menjadi open-source.

Fase 2: Menskalakan ke ratusan kasus penggunaan pergerakan data (2016)

Keputusan penting yang dibuat sejak awal berkaitan dengan memisahkan masalah daripada mengabaikannya. Tim Xu memisahkan masalah antara kasus penggunaan operasional dan analitik dengan mengembangkan Mantis (berfokus pada operasi) dan Keystone (berfokus pada analitik) secara terpisah, tetapi menciptakan ruang untuk menghubungkan kedua sistem.

Mereka juga memisahkan perhatian antara produsen dan konsumen. Mereka melakukannya dengan memperkenalkan klien produsen/konsumen yang dilengkapi dengan protokol kabel standar dan manajemen skema sederhana untuk membantu memisahkan alur kerja pengembangan produsen dan konsumen. Ini kemudian terbukti menjadi aspek penting dalam tata kelola data dan kontrol kualitas data.

Dimulai dengan prinsip tanggung jawab tunggal yang berorientasi layanan mikro, tim membagi seluruh infrastruktur menjadi pesan (transportasi streaming ), pemrosesan (stream processing), dan bidang kontrol. Memisahkan tanggung jawab komponen memungkinkan tim untuk menyelaraskan antarmuka sejak dini sambil membuka kunci produktivitas dengan berfokus pada bagian yang berbeda secara bersamaan.

Selain kendala sumber daya dan ekosistem yang belum matang, tim awalnya harus berurusan dengan fakta bahwa perhatian analitis dan operasional berbeda. Pemrosesan aliran analitik berfokus pada kebenaran dan prediktabilitas, sementara pemrosesan aliran operasional lebih berfokus pada efektivitas biaya, latensi, dan ketersediaan.

Selain itu, ketahanan cloud-native untuk platform data stateful adalah keras. Netflix telah beroperasi di AWS cloud selama beberapa tahun saat Fase 1 dimulai. Namun, mereka adalah yang pertama mendapatkan platform data stateful ke infrastruktur cloud kemas, dan itu menimbulkan tantangan teknis yang signifikan.

Setelah mengirimkan MVP Keystone awal dan memigrasikan beberapa pelanggan internal , tim Xu secara bertahap mendapatkan kepercayaan dan berita itu menyebar ke tim teknik lainnya. Streaming mendapatkan momentum di Netflix, karena menjadi mudah untuk memindahkan log untuk pemrosesan analitik dan untuk mendapatkan wawasan operasional sesuai permintaan. Sudah waktunya untuk menskalakan untuk pelanggan umum, dan itu menghadirkan serangkaian tantangan baru.

Tantangan pertama adalah peningkatan beban operasi. Bantuan sarung tangan putih awalnya ditawarkan kepada pelanggan baru di dalam pesawat. Namun, dengan cepat menjadi tidak berkelanjutan mengingat meningkatnya permintaan. MVP harus berevolusi untuk mendukung lebih dari selusin pelanggan.

Tantangan kedua adalah munculnya kebutuhan yang beragam. Dua kelompok utama pelanggan muncul. Satu kelompok lebih menyukai layanan terkelola sepenuhnya yang mudah digunakan, sementara kelompok lain lebih menyukai fleksibilitas dan membutuhkan kemampuan komputasi yang kompleks untuk memecahkan masalah bisnis yang lebih maju. Xu mencatat bahwa mereka tidak dapat melakukan keduanya dengan baik pada saat yang bersamaan.

Tantangan ketiga, Xu mengamati dengan jujur, adalah bahwa tim tersebut melanggar hampir semua layanan ketergantungan mereka di beberapa titik karena ke skala –dari S3 Amazon hingga Apache Kafka dan Apache Flink. Namun, salah satu pilihan strategis yang dibuat sebelumnya adalah berevolusi bersama dengan mitra teknologi, meskipun tidak dalam kondisi kedewasaan yang ideal.

Itu termasuk mitra yang menurut catatan Xu memimpin arus upaya pemrosesan di industri, seperti LinkedIn, tempat lahirnya proyek Apache Kafka dan Samza. Bersamaan dengan itu, perusahaan yang dibentuk untuk mengkomersialkan Kafka;Data Artisans, perusahaan, yang dibentuk untuk mengkomersialkan Apache Flink, kemudian berganti nama menjadi Ververica.

Memilih jalur kemitraan memungkinkan tim untuk berkontribusi perangkat lunak sumber terbuka untuk kebutuhan mereka sambil memanfaatkan pekerjaan komunitas. Dalam hal menghadapi tantangan terkait infrastruktur cloud kemas, tim bermitra dengan tim Titus.

Xu juga merinci lebih banyak keputusan penting yang dibuat sejak awal, seperti memilih untuk membangun Produk MVP berfokus pada beberapa pelanggan pertama. Saat menjelajahi kecocokan pasar produk awal, perhatian mudah teralihkan. Namun, tulis Xu, mereka memutuskan untuk membantu beberapa pelanggan internal berprioritas tinggi dan bervolume tinggi dan khawatir tentang penskalaan basis pelanggan nanti.

Fase 3: Mendukung kebutuhan dan penskalaan kustom di luar ribuan kasus penggunaan (2017 – 2019)

Sekali lagi, tim Xu membuat beberapa keputusan penting yang membantu mereka selama Fase 2. Mereka memilih untuk fokus pada kesederhanaan terlebih dahulu dibandingkan memaparkan kompleksitas infrastruktur kepada pengguna, karena hal itu memungkinkan tim untuk menangani sebagian besar pergerakan data dan kasus penggunaan ETL streaming sederhana sambil memungkinkan pengguna untuk fokus pada logika bisnis.

Mereka memilih untuk berinvestasi dalam layanan mandiri multi-penyewa yang dikelola sepenuhnya dibandingkan melanjutkan dengan dukungan sarung tangan putih manual. Pada Fase 1, mereka memilih untuk berinvestasi dalam membangun sistem yang mengantisipasi kegagalan dan memantau semua operasi versus menunda investasi. Pada Fase 2, mereka terus berinvestasi di DevOps, yang bertujuan untuk mengirimkan perubahan platform beberapa kali sehari sesuai kebutuhan.

Sekitar tahun 2017, tim merasa telah membangun fondasi operasional yang kokoh: Pelanggan jarang diberi tahu selama panggilan mereka, dan semua masalah infrastruktur dipantau dan ditangani dengan cermat oleh tim platform. Platform pengiriman yang kuat telah tersedia, membantu pelanggan untuk memperkenalkan perubahan ke dalam produksi dalam hitungan menit.

Xu mencatat Keystone (produk yang mereka luncurkan) sangat bagus dalam apa yang awalnya dirancang untuk do: platform perutean data streaming yang mudah digunakan dan skalabel yang hampir tak terbatas. Namun, menjadi jelas bahwa potensi penuh dari pemrosesan aliran masih jauh dari realisasi. Tim Xu terus-menerus menemukan kebutuhan baru untuk kontrol yang lebih terperinci pada kemampuan pemrosesan yang kompleks.

Netflix, tulis Xu, memiliki budaya kebebasan dan tanggung jawab yang unik di mana setiap tim diberdayakan untuk membuat sendiri keputusan teknis. Tim memilih untuk memperluas cakupan platform, dan dalam melakukannya, menghadapi beberapa tantangan baru.

Tantangan pertama adalah bahwa kasus penggunaan khusus memerlukan pengalaman pengembang dan operasi yang berbeda. Misalnya, rekomendasi Netflix mencakup berbagai hal mulai dari apa yang harus ditonton selanjutnya, hingga karya seni yang dipersonalisasi dan lokasi terbaik untuk ditampilkan.

Kasus penggunaan ini melibatkan kemampuan pemrosesan streaming yang lebih canggih, seperti waktu acara/pemrosesan yang kompleks dan semantik jendela, keterlambatan yang diizinkan, dan manajemen pos pemeriksaan keadaan besar. Mereka juga membutuhkan lebih banyak dukungan operasional, antarmuka pemrograman yang lebih fleksibel, dan infrastruktur yang mampu mengelola status lokal di TB.

Tantangan kedua adalah menyeimbangkan antara fleksibilitas dan kesederhanaan. Dengan semua kasus penggunaan kustom baru, tim harus mencari tahu tingkat eksposur kontrol yang tepat. Selain itu, mendukung kasus penggunaan khusus menentukan peningkatan tingkat kebebasan platform. Itu adalah tantangan ketiga – peningkatan kompleksitas operasi.

Terakhir, tanggung jawab tim adalah menyediakan platform pemrosesan aliran terpusat. Namun karena strategi sebelumnya untuk fokus pada kesederhanaan, beberapa tim telah berinvestasi di platform pemrosesan streaming lokal mereka menggunakan teknologi yang tidak didukung – “meninggalkan jalur beraspal”, dalam terminologi Netflix. Tim Xu harus meyakinkan mereka untuk kembali ke platform terkelola mereka. Itu, yaitu platform pusat vs. lokal, adalah tantangan keempat.

Pada Fase 3, Flink diperkenalkan dalam campuran, dikelola oleh tim Xu. Tim memilih untuk membangun titik masuk produk baru, tetapi memfaktorkan ulang arsitektur yang ada versus membangun produk baru secara terpisah. Flink berfungsi sebagai titik masuk ini, dan pemfaktoran ulang membantu meminimalkan redundansi.

Keputusan penting lainnya adalah memulai dengan streaming ETL dan kasus penggunaan observabilitas, dibandingkan menangani semua kasus penggunaan khusus sekaligus. Kasus penggunaan ini adalah yang paling menantang karena kompleksitas dan skalanya, dan Xu merasa masuk akal untuk menangani dan belajar dari yang paling sulit terlebih dahulu.

Keputusan kunci terakhir dibuat pada titik ini adalah untuk berbagi tanggung jawab operasi dengan pelanggan pada awalnya dan secara bertahap berinovasi bersama untuk menurunkan beban dari waktu ke waktu. Pengadopsi awal mandiri, dan dukungan sarung tangan putih membantu mereka yang tidak. Seiring waktu, investasi operasional seperti penskalaan otomatis dan penerapan terkelola ditambahkan ke dalam campuran.

Fase 4: Memperluas tanggung jawab pemrosesan aliran (2020 – sekarang)

Saat kasus penggunaan pemrosesan aliran diperluas ke semua organisasi di Netflix, pola baru ditemukan, dan tim menikmati kesuksesan awal. Tetapi Netflix terus mengeksplorasi batas-batas baru dan melakukan investasi besar dalam produksi konten dan lebih banyak game. Dengan demikian, serangkaian tantangan baru muncul.

Tantangan pertama adalah sisi lain dari otonomi tim. Karena tim diberdayakan untuk membuat keputusan sendiri, banyak tim di Netflix akhirnya menggunakan berbagai teknologi data. Teknologi data yang beragam membuat koordinasi menjadi sulit. Dengan banyak pilihan yang tersedia, sudah menjadi sifat manusia untuk menempatkan teknologi dalam ember pemisah, dan perbatasan sulit didorong dengan batasan pemisah, tulis Xu.

Tantangan kedua adalah kurva pembelajaran menjadi lebih curam. Dengan semakin banyaknya alat data yang tersedia dan spesialisasi yang terus mendalam, pengguna sulit mempelajari dan memutuskan teknologi apa yang cocok dengan kasus penggunaan tertentu.

Tantangan ketiga, Xu mencatat, adalah bahwa praktik pembelajaran mesin tidak memanfaatkan kekuatan penuh dari platform data. Semua tantangan yang disebutkan sebelumnya menambah beban pada praktik pembelajaran mesin. Umpan balik ilmuwan data panjang, produktivitas insinyur data menurun, dan insinyur produk memiliki tantangan dalam berbagi data berharga. Pada akhirnya, banyak bisnis kehilangan kesempatan untuk beradaptasi dengan pasar yang berubah dengan cepat.

Tantangan keempat dan terakhir adalah batasan skala pada model platform pusat. Karena skala platform data pusat menggunakan kasus pada tingkat superlinear, tidak dapat dipertahankan untuk memiliki satu titik kontak untuk dukungan, catat Xu. Ini adalah waktu yang tepat untuk mengevaluasi model yang memprioritaskan mendukung platform lokal yang dibangun di atas platform pusat.

Xu mengambil pelajaran berharga dari proses ini, beberapa di antaranya mungkin akrab bagi pemilik produk, dan dapat diterapkan di luar dunia streaming data. Pelajaran seperti memiliki lingkungan yang aman secara psikologis untuk gagal, memutuskan apa yang tidak boleh dikerjakan, mendidik pengguna untuk menjadi juara platform, dan tidak retak di bawah tekanan. VentureBeat mendorong pembaca yang tertarik untuk merujuk ke akun Xu secara keseluruhan.

Xu juga melihat peluang unik untuk pemrosesan data waktu nyata di Fase 4 dan seterusnya. Streaming data dapat digunakan untuk menghubungkan dunia, meningkatkan abstraksi dengan menggabungkan yang terbaik dari kesederhanaan dan fleksibilitas, dan memenuhi kebutuhan pembelajaran mesin dengan lebih baik. Dia bertujuan untuk melanjutkan perjalanan ini dengan fokus pada poin terakhir, saat ini sedang mengerjakan startup bernama Claypot.

Misi VentureBeat adalah menjadi alun-alun kota digital untuk keputusan teknis -pembuat untuk mendapatkan pengetahuan tentang teknologi perusahaan transformatif dan bertransaksi. Belajarlah lagi

Baca selengkapnya