写点什么

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:005462
用户头像

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

关注

评论

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

一文读懂 DNS 解析

火山引擎边缘云

DNS 域名解析 火山引擎 边缘云

解决nginx配置负载均衡时invalid host in upstream报错

北桥苏

nginx

滋灌中小企业,分销伙伴和华为来做“送水人”

脑极体

分销

【修复问题】HBuilder打包编译报错汇集(持续更新)

红泥

【涨知识】PCB板为什么多是绿色的?

华秋PCB

PCB PCB电路板 电路板 PCB设计 显影

今日分享丨5分钟快速了解Containerd

inBuilder低代码平台

云原生

基于 TiDB + Flink 实现的滑动窗口实时累计指标算法

PingCAP

MySQL 数据库 开源 分布式 TiDB

QUIC协议在天翼云CDN全站加速产品中的应用

天翼云开发者社区

云计算 QUIC

极狐(GitLab)重磅发布新产品「极狐星」,让研发效能看得清,算得准,成就企业精英效能管理

极狐GitLab

DevOps 研发管理 研发效能 极狐GitLab 研发效能度量

DPDK与ScaleFlux CSD 3000:金融数据处理的创新组合

ScaleFlux

DPDK 存储技术 数据压缩 金融开源

直播预告 | 博睿学院:全面升级自适应AIOps

博睿数据

可观测性 AIOPS 智能运维 博睿数据 博睿学院

「MIAOYUN」:降本增效,赋能传统企业数字化云原生转型 | 36kr 项目精选

MIAOYUN

云原生 数字化转型 智能运维 降本增效 36氪

ScaleFlux压缩存储产品通过 PolarDB-PG社区版和PolarDB-X 开源版认证

ScaleFlux

开源数据库 数据压缩 数据库技术 企业数据

解析内存中的高性能图结构

NebulaGraph

数据结构 图数据库

天翼云“息壤”荣膺第六届数字中国建设峰会“十大硬核科技”称号

天翼云开发者社区

云计算 算力 超算

飞书深诺电商广告素材搜索实战

飞书深诺技术团队

向量检索 Milvus 以图搜图

OpenVINO: 一款全面的深度学习应用程序优化工具

IT蜗壳-Tango

三周年连更

二层交换机和三层交换机到底区别在哪?

wljslmz

交换机 三周年连更

急吗?光急可没用呀!满满干货,两小时速成,别搁那干瞪眼了!

加入高科技仿生人

低代码 数字化 OA 数字转型

RDMA网络实践

天翼云开发者社区

云计算 存储 RDMA

今天开讲,6 大演讲主题、5 位技术大咖!龙蜥大讲堂 5 月精彩直播预告抢先看

OpenAnolis小助手

开源 操作系统 内核 龙蜥社区 龙蜥大讲堂

大咖说丨云计算:数字世界的“中枢神经”

天翼云开发者社区

云计算

开源赋能 普惠未来|统信软件寄语2023开放原子全球开源峰会

开放原子开源基金会

开源家装小程序

源字节1号

开源 软件开发 前端开发 后端开发 小程序发开

解决Centos7 yum 出现could not retrieve mirrorlist 错误

北桥苏

Centos 7 linux\

数据不只是数字:描述、分析、展示呈现数据的故事

Data 探险实验室

数据分析 数据 数据可视化 数字 可视化分析

长三角生物医药产业加速跑,飞桨螺旋桨为创新药企、医药技术伙伴装上AI大模型引擎

飞桨PaddlePaddle

飞桨 科学计算 飞桨螺旋桨 文心生物计算大模型

您的数据可以压缩吗?

ScaleFlux

存储成本 存储技术 数据压缩

可计算存储技术全面升级CSD 3000存储体验

ScaleFlux

人工智能 机器学习 计算与存储 数据压缩

PostgreSQL-HA 高可用集群在 Rainbond 上的部署方案

北京好雨科技有限公司

postgresql Kubernetes 云原生 rainbond 企业号 5 月 PK 榜

为什么ChatGPT用强化学习而非监督学习?

OneFlow

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