HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

一站式解决方案:如何挑选合适的项目工单系统

爱吃小舅的鱼

项目工单管理 项目工单

InPlant SCADA笔记 二次确认

万里无云万里天

工厂运维 InPlant SCADA

一枚与时间赛跑的中国芯片

脑极体

AI

面向物联网的 NGINX Plus:对 MQTT 流量进行加密和身份验证

NGINX开源社区

负载均衡 开源 物联网 IoT mqtt

【YashanDB知识库】自动选举配置错误引发的一系列问题

YashanDB

yashandb 崖山数据库 崖山DB

InPlant SCADA笔记 工程管理的工程属性与全局设置

万里无云万里天

工厂运维 InPlant SCADA

蓝易云 - 基本的Linux命令以及Linux目录结构

百度搜索:蓝易云

云计算 Linux 运维 服务器 云服务器

InPlant SCADA笔记 工程管理界面的五种风格

万里无云万里天

工厂运维 InPlant SCADA

蓝易云 - 跨境电商SEO网站被黑了,如何做好安全防御?

百度搜索:蓝易云

运维 云服务器 跨境电商 独立站 高防服务器

如何找到最适合你的项目工时跟踪工具

爱吃小舅的鱼

工时管理 工时管理系统

InPlant SCADA笔记 报警管理功能

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 查看工程的数据库与历史趋势的信息

万里无云万里天

工厂运维 InPlant SCADA

螺旋文字滚动特效源码解析

南城FE

CSS 前端 动画

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

Geek_b7ce72

InPlant SCADA笔记 调度任务功能

万里无云万里天

工厂运维 InPlant SCADA

蓝易云 - tomcat部署、tomcat虚拟主机及tomcat多实例

百度搜索:蓝易云

云计算 tomcat Web 服务器 云服务器

蓝易云 - Rest和Http什么关系?

百度搜索:蓝易云

云计算 运维 服务器 Rest 云服务器

(代购系统神器)深入解析1688平台API:商品图片与详情描述的获取之道

代码忍者

API 文档 API 测试 API 设计

macOS Ventura 13.6.8 (22G820) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos ISO ventura

InPlant SCADA笔记 io 查看数据库管理与IO驱动

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 查看工程的网络架构

万里无云万里天

工厂运维 InPlant SCADA

InPlant SCADA笔记 工程属性中的经典模式

万里无云万里天

工厂运维 InPlant SCADA

【YashanDB知识库】账号被锁,如何分析具体原因

YashanDB

yashandb 崖山数据库 崖山DB

macOS Monterey 12.7.6 (21H1320) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos ISO ventura

InPlant SCADA笔记 背景模版

万里无云万里天

工厂运维 InPlant SCADA

从0到100:旅拍小程序开发笔记(上)

CC同学

AI技术修复奥运珍贵历史影像,《永不失色的她》再现百年奥运女性光彩

阿里云视频云

云计算 音视频 AI技术 视频云 奥运会

在 Go 中如何使用反射实现简易版 encoding/json

江湖十年

Go json 后端

wamp配置多目录访问方法

tbapi

wamp

如何挑选最佳个人项目管理工具:专家建议

爱吃小舅的鱼

项目管理

智源发布三款BGE新模型,再次刷新向量检索最佳水平

智源研究院

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