NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Netflix 的开源文化与技术

  • 2015-11-23
  • 本文字数:2251 字

    阅读完需:约 7 分钟

在之前的新闻《Netflix 企业文化与架构设计》一文中我们介绍了 Netflix 高扩展的企业文化与架构,而作为一家在线影片租赁提供商 Netflix 之所以能够在如此大量的用户、海量的数据、复杂的拓扑结构下取得成功,离不开其背后的开源文化与技术。Netflix 利用开源或者自己开发的技术,让公司能够在分布于全世界 50 多个国家的服务器上进行持续地构建和集成;能够对用户所产生的海量行为数据进行分析挖掘从而更好地推荐和改善自身服务;同时能够通过性能剖析和安全审计保护用户的隐私和数据,下面就让我们来盘点一下 Netflix 所使用或贡献的开源技术

大数据

数据是无价的,为了向客户提供极致的服务,Netflix 拥有一套完善的大数据技术生态系统用于用户数据的分析和挖掘。Netflix 不仅使用 Hadoop、Hive、Pig、Parquet、Presto 以及 Spark 等被广泛采用的开源技术,同时还开发并贡献了一些其他的工具和服务。

  • Genie :专为 Hadoop 生态系统定制的一组 REST-ful 服务集合,用于管理作业和资源, 它有两个关键的服务:Execution
    Service 和 Configuration Serice。前者提供了 REST-ful
    API,用于提交和管理 Hadoop、Hive 以及 Pig 作业;后者是一个 Hadoop 资源的有效储存库,处理元数据的连接以及运行资源上的作业。
  • Inviso :对 Hadoop 作业和集群的性能进行详细而深入的剖析。
  • Lipstick :以一种清晰且可视化的方式展示 Pig 作业的工作流。
  • Aegisthus :是一个能够读取 Cassandra
    SSTable 的 map/reduce 程序,Netflix 的大数据平台每天都会利用该工具从 Cassandra 中读取数据进行分析。

重要通知:接下来 InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注 InfoQ 微信公众号第一时间阅读精品内容。

构建和交付工具

  • Nebula :Netflix 开源的 Gradle 插件集合,可以让开发者更容易地使用 Gradle 构建、测试和部署项目。
  • Aminator :EBS AMI 创建工具,支持 CentOS/RedHat Linux 镜像,利用该工具创建的镜像能够运行在 EC2 实例上。
  • Asgard :云部署和管理工具,该工具与 Aminator 配合使用,能够将打包后的 AMI 从开发者的桌面部署到 AWS 上。

通用的运行时服务和类库

Netflix 的大部分服务都是以云平台为基础和技术栈,云平台由云服务、应用程序类库和应用容器组成,每一部分 Netflix 都有相应的技术保障。

  • Eureka :Netflix 的云平台服务发现技术。
  • Archaius :分布式配置工具。
  • Ribbon :弹性且智能化的进程处理和服务通信。
  • Hystrix :提供单一服务调用所不具备的可靠性,提供运行时的延迟隔离和容错。
  • Karyon Governator :JVM 容器服务。
  • Prana sidecar :提供实例内代理,支持非 JVM 运行时。
  • Zuul :提供云部署周边的动态路由、监控、安全和弹性扩展等服务。
  • Fenzo :为云本地框架提供了更为高级的调度和资源管理功能,为装箱和集群自动扩展提供了插件实现,用户能通过自定义的插件实现自定义的调度优化。

数据持久化
面对每天数以万亿的行为数据,没有哪一种技术能够独自满足所有的用例,所有潜在的需求,为此 Netflix 不仅使用了 Memcached 和 Redis 等非持久化内存存储方案,还使用了可搜索的数据存储 Elastic,以及高可用的数据存储 Cassandra 和 MySQL。此外,Netflix 还创建了一些其他的辅助工具:

分析、可靠性和性能
在任何一个公司的运营中遥测和指标都具有至关重要的作用,高效的性能指令能够让工程师快速地从大量指标中找出自己所需要的那部分从而更快更有效地做出关键决策。除此之外,成本管理和资源在云端使用情况的可视化服务也不可或缺,Netflix 在这些方面使用的工具包括:

  • Atlas :时间序列遥测平台,每分钟接收超过 10 亿的指标
  • Edda :跟踪云端变化的服务
  • Spectator 类库:让 Java 应用程序代码能够更好地与 Atlas 集成
  • Vector :以最小的代价获得高分辨率主机级指标
  • Ice :监控当前成本和云使用趋势,让工程师能够更好地掌控自己的应用程序在当前环境中的状态
  • Simian Army :Netflix 实例的随机故障测试,用于验证可靠性

安全
对任意类型、任意规模的公司来说安全都是一件越来越重要的事情,Netflix 为开源社区贡献了大量的安全工具和解决方案,主要分为两类,一类是能够让安全团队更有效地保护大型动态环境的运维工具和系统;一类是为现代分布式系统提供严格安全服务的安全基础设施组件。

  • Security Monkey :用于检测和保护大规模的 AWS 环境
  • Scumblr :利用因特网进行针对性的搜索定位特定的安全问题并调查
  • MSL :一个可扩展的、灵活的安全消息协议,可解决大量安全通信用例和需求

用户界面
世界各地的 Netflix 会员会通过 TV、手机和桌面等各式各样的设备观看视频,为此 Netflix 使用了 Node.js、React 和 RxJS 等先进的 UI 技术构建富客户端应用程序。Netflix 通过数据驱动的 A/B 测试实验新的理念,理解每一个功能特性的价值,从而持续地提升产品。此外,Netflix 还使用了以下工具。

  • Falcor :允许应用程序把所有远端的数据源用一个单独的 JSON Graph 来表示,提高了数据抓取效率
  • Restify :一个基于 Nodejs 的 REST 应用框架,支持服务器端和客户端
  • RxJS :JavaScript 的 Reactive 扩展库

感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2015-11-23 17:004840
用户头像

发布了 321 篇内容, 共 116.0 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

实现 AI 大语言模型的关键在于超高性能存储能力

焱融科技

复旦发布云上最大科研智算平台

新云力量

智能 计算 复旦 科研智算平台

什么是区块链?

TiAmo

区块链 去中心化 6 月 优质更文活动

STC89C52+DHT20设计的环境温湿度检测仪

DS小龙哥

6 月 优质更文活动

目前包头市等保测评企业有几家?2家还是3家?

行云管家

等保 等级保护 等保测评 等保合规

提升测试质量的四个关键特征

老张

质量保障 测试质量

码控算法

qh12346

华为开发者大会—开发者的一站式代码检查利器:华为云代码检查CodeArts Check

华为云PaaS服务小智

云计算 华为云 华为开发者大会2023

3dMax 应该用哪个渲染器?Vray、Corona、Arnold?

Finovy Cloud

入门指南:使用Spring Boot构建Java应用程序

2756

入门学习

工业物联网SCADA软件推荐

2D3D前端可视化开发

工业物联网 工业控制系统 web组态软件 HMI SCADA软件

沐曦与百度飞桨完成兼容性测试,助力计算机视觉应用发展

飞桨PaddlePaddle

人工智能 百度 paddle

AI与企业信息安全的应用、技术以及前景

行云管家

AI 网络安全 信息安全 企业信息

[Qt开发]一口气搞懂串口通信

EquatorCoco

通信 qt

Go语言中的init函数: 特点、用途和注意事项

EquatorCoco

编程 Go 语言

一图看懂华为云CodeArts Board5大特性,带你玩转看板服务

华为云PaaS服务小智

云计算 数据可视化 华为云 企业研发管理 数据看板

搜索语义模型的大规模量化实践

百度Geek说

paddle NLP 大模型 企业号 6 月 PK 榜 6 月 优质更文活动 INT8

直播程序源码技术分享主播邀请上麦功能

山东布谷科技

软件开发 程序 源码搭建 直播源码

New Arrival: QCN9074 Dual Band/Tri-band 4X4 WIFI6 Network Card DR9074 (#QCN9074)

wallyslilly

QCN9074

架构实战营(一)

架构实战营

最佳实践|亚马逊可持续发展的架构模型

亚马逊云科技 (Amazon Web Services)

JavaScript

李彦宏:AI原生应用比大模型数量更重要

飞桨PaddlePaddle

人工智能 百度 paddle 大模型

CVPR2023|小红书提出 OvarNet 模型:开集预测的新SOTA,“万物识别”有了新玩法

小红书技术REDtech

深度学习 算法 小红书

据平台流量回放最佳实践|精选

得物技术

前端 后端

Maven进阶学习指南 | 京东云技术团队

京东科技开发者

maven 组件 依赖 Maven仓库 企业号 6 月 PK 榜

IoT场景时序数据库性能对比报告出炉,TDengine 远超 InfluxDB & Timescal

电子信息发烧客

Go 语言中 Context 的作用和使用方法详解

KaiwuDB

Go 语言 KaiwuDB

NFTScan 与 Sender Wallet 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

NFT Research

NFT\

.NET的基元类型包括哪些?Unmanaged和Blittable类型又是什么?一文带你深度解析

不在线第一只蜗牛

.net 编程

浅析 Jetty 中的线程优化思路

vivo互联网技术

jetty EatWhatYouKill 线程策略

Flutter性能优化的一些路径思考

Onegun

flutter 移动开发

Netflix的开源文化与技术_安全_孙镜涛_InfoQ精选文章