Netflix baru-baru ini berkongsi butiran mengenai pembaharuan seni bina Tudum, laman web peminat mereka, dengan menggantikan sistem CQRS dengan stor objek dalam memori yang dipanggil RAW Hollow. Walaupun syarikat itu mempersembahkan ini sebagai kisah kejayaan teknikal, komuniti kejuruteraan telah bertindak balas dengan kritikan meluas, mempersoalkan sama ada kerumitan sedemikian wajar untuk apa yang dilihat ramai sebagai pada asasnya sebuah laman blog.
Ketidakpadanan Skala vs Kerumitan
Aspek yang paling menarik perhatian dalam kontroversi ini berpusat pada jurang dramatik antara saiz masalah dan kerumitan penyelesaian. Ahli komuniti dengan pantas menunjukkan bahawa keseluruhan set data Tudum - termasuk kandungan tiga tahun - termampat kepada hanya 130MB. Jejak kecil ini telah menyebabkan ramai mempersoalkan mengapa Netflix menggunakan sistem teragih gred perusahaan termasuk Kafka, Cassandra, dan pangkalan data dalam memori tersuai untuk apa yang berjumlah kurang data daripada aplikasi telefon pintar biasa.
Beberapa pembangun menyatakan bahawa pemproses moden mempunyai saiz cache yang menghampiri volum data ini, menjadikan pilihan infrastruktur kelihatan sangat berlebihan. Konsensus komuniti mencadangkan bahawa penyelesaian tradisional seperti PostgreSQL dengan replika baca, atau bahkan penjanaan laman statik, akan mengendalikan beban kerja ini dengan kerumitan yang jauh lebih sedikit.
Perbandingan Saiz Dataset Tudum
- Data termampat: 130MB (kandungan selama 3 tahun)
- Saiz tidak termampat: ~520MB
- Konteks: Saiz cache L3 pemproses mewah menghampiri tahap ini
- Pengguna bulanan: 20 juta
Masalah Pratonton Yang Memulakan Semuanya
Isu asal yang Netflix bertujuan untuk selesaikan agak biasa: editor kandungan terpaksa menunggu puluhan saat untuk melihat pratonton perubahan mereka disebabkan kitaran penyegaran cache. Walau bagaimanapun, komuniti telah mengenal pasti banyak penyelesaian yang lebih mudah yang boleh menangani masalah ini tanpa pembaharuan seni bina. Cadangan termasuk mencipta persekitaran pratonton khusus dengan cache dilumpuhkan, melaksanakan teknik cache-busting menggunakan hash kandungan, atau hanya membina sistem CMS tempatan-pertama.
Penyelesaian biasa adalah untuk memutar nama hos DNS khusus yang dipanggil sesuatu seperti 'preview.www.netflix.com' dan mematikan semua cache apabila pengguna pergi melalui laluan itu. Editor dan pengulas menggunakan itu, dan itu... selesai!
Sentimen ini mencerminkan kekecewaan komuniti terhadap apa yang mereka anggap sebagai penyelesaian kejuruteraan kepada masalah organisasi yang boleh diselesaikan melalui perubahan operasi yang lebih mudah.
Komponen Seni Bina Yang Digantikan
- Sistem Lama: CQRS dengan Kafka + Cassandra + Near Cache
- Sistem Baharu: Stor objek dalam memori RAW Hollow
- Masalah Yang Diselesaikan: Kelewatan penyegaran cache (berpuluh saat)
- Penyelesaian Alternatif Yang Dicadangkan: Persekitaran pratonton, cache-busting, penjanaan laman web statik
Tuduhan Pembangunan Didorong Resume
Mungkin kritikan paling keras berpusat pada tuduhan pembangunan didorong resume - amalan memilih teknologi kompleks untuk meningkatkan prospek kerjaya daripada menyelesaikan masalah perniagaan dengan berkesan. Ahli komuniti mencadangkan bahawa mempunyai 20+ jurutera berbakat bekerja pada apa yang pada asasnya blog syarikat secara semula jadi membawa kepada kejuruteraan berlebihan, kerana pasukan berusaha untuk membenarkan kewujudan mereka dan mencipta projek yang layak untuk kenaikan pangkat.
Perbincangan mendedahkan kebimbangan industri yang lebih luas mengenai bagaimana metrik kenaikan pangkat dan ego kejuruteraan boleh mendorong kerumitan yang tidak perlu. Beberapa pengulas menyatakan bahawa kedudukan menguntungkan Netflix membolehkan mereka menyerap kos eksperimen sedemikian, tetapi memberi amaran terhadap syarikat permulaan yang menyalin corak seni bina ini tanpa sumber yang serupa atau keperluan sebenar.
Tema Kritikan Komuniti
- Kejuruteraan berlebihan untuk fungsi blog yang mudah
- Tuduhan pembangunan didorong resume
- Tingkah laku astronaut seni bina
- Ketidakpadanan antara skala masalah dan kerumitan penyelesaian
- Alternatif yang lebih mudah tersedia dengan mudah
Angkasawan Seni Bina Teknikal
Komuniti telah sangat mengkritik apa yang mereka sebut sebagai tingkah laku angkasawan seni bina - jurutera yang mencipta sistem kompleks demi kerumitan daripada nilai perniagaan. Pengkritik menunjukkan bahawa keseluruhan laman Tudum mungkin boleh dilayani oleh pangkalan data tunggal dengan cache tradisional, atau bahkan dijana sebagai fail statik.
Ironi tidak hilang pada pengulas bahawa Netflix, sebuah syarikat yang terkenal kerana mempelopori seni bina mikroperkhidmatan, terus menggunakan penyelesaian skala perusahaan kepada masalah yang tidak memerlukan kerumitan sedemikian. Ada yang menyatakan bahawa walaupun forum perbincangan ini mengendalikan penyuntingan, personalisasi, dan kemas kini masa nyata tanpa memerlukan CQRS, Kafka, atau pangkalan data teragih tersuai.
Pengajaran untuk Industri
Kontroversi ini menyerlahkan soalan penting mengenai pilihan teknologi yang sesuai dalam pembangunan perisian. Walaupun pasukan kejuruteraan Netflix sudah pasti memiliki kepakaran yang ketara, respons komuniti mencadangkan bahawa keupayaan teknikal tidak selalu diterjemahkan kepada pendekatan penyelesaian masalah yang sesuai.
Perdebatan ini berfungsi sebagai peringatan bahawa keputusan kejuruteraan harus didorong oleh keperluan sebenar daripada teknologi yang tersedia atau keutamaan pasukan. Untuk kebanyakan organisasi yang menghadapi cabaran pengurusan kandungan yang serupa, konsensus komuniti menunjuk ke arah penyelesaian yang jauh lebih mudah yang akan memberikan hasil yang lebih baik dengan overhed penyelenggaraan yang lebih rendah dan kitaran pembangunan yang lebih pantas.
Rujukan: Netflix Revamps Tudum's CQRS Architecture with RAW Hollow In-Memory Object Store