2009年Netflix舉辦了一場Netflix大獎賽。他們公開一批匿名數據,允許參賽團隊使用以得出更好的算法。他們從獲勝的團隊中得到了現有算法10.06%的提升。Netflix本想再舉行一場Netflix大獎賽,但最終由於FTC(聯邦貿易委員會)對隱私問題的考慮而取消。
Netflix的推薦系統包含許多算法。用於生產系統的兩個核心算法是有限玻爾茲曼機(RBM,Restricted Boltzmann Machines)和一種稱為SVD+ +的矩陣分解法(Matrix Factorization)。這兩種算法用線性混合方式來結合產生一個單一的更高精度的估算值。
RBM是被修改為可以進行協同過濾的神經網絡。每個用戶都有一個RBM,其輸入節點都代表用戶評分過的電影。
SVD + +是一種非對稱形式的SVD(奇異值分解),使用用像RBM一樣的隱含信息。它是Netflix大賽獎的獲獎團隊開發的。
Netflix團隊在他們的技術博客上的報道:Learning a Personalized Homepage
開源項目
https://netflix.github.io/。Netflix有一個優秀的工程博客,他們最近發布了一個帖子叫做The Evolution of Open Source at Netflix。
大數據
Genie:一個強大的,基於REST的抽象體,應用於我們的各種數據處理框架,尤其是Hadoop。
Inviso:提供了對我們的Hadoop工作和集群性能的詳細見解。
Lipstick:以一種清晰的視覺方式展示了Pig工作流程。
Aegisthus:從Cassandra批量抽象數據以供下游分析處理。
建造和交付工具
Nebula:Netflix分享其內部基礎設施建設的工具。
Aminator:一個用於創建EBS AMI的工具。
Asgard:亞馬遜Web服務(AWS)用於應用程序部署和雲管理的Web界面。
一般運行服務和程序庫
Eureka:Netflix雲平台服務搜索
Archaius:分布式配置。
Ribbon:彈性和智能化進程及服務通信。
Hystrix:提供單一服務調用外可靠性。在運行時隔離延遲和容錯。
Karyon和Governator:JVM容器服務。
Prana sidecar:提供實例內代理功能。
Zuul:在雲部署的邊緣提供動態腳本代理。
Fenzo:為雲計算本地框架提供先進的調度和資源管理。
數據持久性
EVCache和Dynomite:用於大規模Memcached和Redis。
Astyanax和Dyno:更好地使用雲數據存儲的客戶端庫。
分析、可靠性和性能
Atlas:時間序列遙測平台
Edda:跟蹤雲變化的服務
Spectator:與Atlas易集成Java應用程序代碼
Vector:以最小的花費獲取高分辨率主機級指標。
Ice:獲取當前成本和雲使用趨勢。
SimianArmy:Netflix實例隨機故障測試。
安全
Security Monkey:有助於監測和保護的基於AWS的大環境。
scumblr:利用全網針對性搜索定位特定安全問題以進行調查。
MSL:一種可擴展的、靈活的安全消息傳遞協議,解決了許多安全通信使用情況和需求。
falcor:通過虛擬的JSON圖以單域模型展現遠程數據源。
restify:Node.jsREST架構,專門用於Web Service API
Rxjs:JavaScript的反應式編程庫
http://www.tuicool.com/articles/7zaqye
