Netflix 的开源文化与技术

简介:

在之前的新闻《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中读取数据进行分析。

构建和交付工具

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还创建了一些 其他的辅助工具:

Raigad 和 Priam:辅助Elastic和Cassandra集群的部署、管理、备份和恢复。

EVCache 和 Dynomite:用于大规模地使用Memcached和Redis。

Astyanax 和 Dyno 客户端类库:便于更好地使用云端数据库。

分析、可靠性和性能

在任何一个公司的运营中遥测和指标都具有至关重要的作用,高效的性能指令能够让工程师快速地从大量指标中找出自己所需要的那部分从而更快更有效地做出关键决策。除此之外,成本管理和资源在云端使用情况的可视化服务也不可或缺,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扩展库

文章转载自 开源中国社区[https://www.oschina.net]

相关文章
|
7月前
|
传感器 Cloud Native 数据挖掘
开源技术在教育中的应用
开源技术在教育中的应用
120 0
|
6月前
|
消息中间件 NoSQL Java
顶级!13位专家力荐Spring5为企业级开发提供一站式方案
Spring作为一个互联网公司的必备框架,毫无疑问,在Java开发中占据了十分重要的位置!它可以解决企业应用开发的复杂性,为此提供解决方案。Spring的发展日新月异,满足了企业发展的需要。 Spring已经成为Java应用研发框架的事实标准,多年来在各个行业信息化建设中表现优异。从基础再到深入浅出,用极其简单的例子详解了Spring 的每个知识点,更重要的是每一个知识点都有极其详细生动的例子搭配讲解,特别是Spring AOP业务和系统功能分离的思想。 此文档从Spring基础篇、Spring5新特性篇、Spring系统集成篇,介绍了Spring5企业级开发实战的详细内容,由于篇幅限制,
30 0
|
自然语言处理 负载均衡 Dubbo
屡获殊荣丨Dubbo 开源 12 周年年度总结与规划
屡获殊荣丨Dubbo 开源 12 周年年度总结与规划
屡获殊荣丨Dubbo 开源 12 周年年度总结与规划
|
自然语言处理 Dubbo Cloud Native
Dubbo 开源、自研、商业化三位一体战略解读 | 学习笔记
快速学习 Dubbo 开源、自研、商业化三位一体战略解读
198 0
Dubbo 开源、自研、商业化三位一体战略解读 | 学习笔记
|
机器学习/深度学习 人工智能 分布式计算
拥抱开源,云原生时代下的开源牧码人的初心与坚守
王峰 阿里巴巴开源委员会大数据AI领域副主席 阿里云开源大数据平台负责人 Flink中文社区发起人
99274 26
拥抱开源,云原生时代下的开源牧码人的初心与坚守
|
Dubbo Java 应用服务中间件
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(上)
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(上)
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(上)
|
缓存 自然语言处理 负载均衡
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(下)
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(下)
Dubbo 就是靠它崭露头角!(身为开源框架很重要的一点)(下)
|
消息中间件 Kubernetes Oracle
2022 年之后的开源愿景
  在开源领域工作了十多年之后,经历了从初创公司到世界上最大的开源公司,并推出了我的开源项目资助平台,我终于有了一个想法。“开源”一词并不足以涵盖现代开放软件所有可感知的价值,开源需要一个更广阔的视野,以及一个支持开放治理和开放资金的基础设施。   在过去,开源的价值在于源代码,我们可以从自由软件的自由度和开源定义的发布标准中感知到这一点。但现在情况不一样了。现如今,开源产品的生产速度很快,但腐烂和过时的速度更快。除了源代码提供的价值之外,开源项目还有其他重要的特征。开源的价值在于项目被采用,有时候一个项目会成为某种技术事实上的标准(比如用于消息传递的 Apache Kafka)。开源的价值
190 0
|
SQL 机器学习/深度学习 人工智能
顶尖架构师能从Google、Facebook、Netflix等公司学到哪些技术?
  架构设计到底是做什么?每个人都有不同的答案,毕竟在不同的时间,不同的系统层级,不同的需求背景上,架构设计的任务都有所不同。那么换另外一个问题,如何成为顶尖的架构师?   先使用程序员的拆分技能:成就优秀需要划分两个阶段,先成为普通的架构师,然后再想办法成就优秀。   虽然 2022 年已经过了六分之一,但我们的新年也就刚开始,常言道种树最好的时间是十年前,其次是现在,学习架构也是一样,希望以下的学习小结可以给你帮助。
163 0
|
人工智能 运维 Kubernetes
网易的工程师文化和微服务演进
导读:第七届TOP100全球软件案例研究峰会将于11月30日-12月3日在北京国家会议中心举办,本届峰会以“释放AI生产力 让组织向智能化演进”为开幕式主题,旨在推动企业在趋势下拥抱AI、探索和思考AI带来的力量。十八个主题专场,120个案例为组织形式,意在向参会者解读2018年软件研发设计创新案例。 会前TOP100组委会专访案例分享者网易杭州研究院云计算部门张小刚老师,他将为我们带来《网易的工程师文化和微服务演进》的话题 。讲述网易在微服务面的一些实践和感悟。
257 0