查看原文
其他

Netflix 的顶级开源项目,你知道几个?

2016-03-24 云头条

我们的系列文章盘点了世界上几家最具知名度的公司开展的若干顶级开源项目,本文是第三篇。今天要介绍的是Netflix,这家公司有着独特的开源文化。想了解Netflix在开源领域取得的成就,不妨看看其GitHub软件库(https://github.com/Netflix)。该公司先后发布了50多个开源项目,还有几个项目即将推出。它还在湾区(Bay Area)定期召开公开的NetflixOSS聚会。



Netflix竭力利用并提供专注于提供领先的互联网电视网络的开源技术。其技术侧重于在所有的联网屏幕上提供身临其境的体验。Netflix的部署技术便于代码持续构建和集成,集成到其部署在全球各地的系统(该系统服务于50多个国家的会员)。Netflix注重可靠性,为基于云的弹性部署竖立了标杆,增添了好几层故障切换机制。Netflix还提供了高效运行服务的技术,并确保运营洞察力、峰值性能和安全。本文盘点了Netflix的顶级开源项目,涵盖以下几大类别:大数据、代码构建和交付工具、通用运行时服务及库、数据持久性,以及可靠性、性能及安全性。


我们不妨逐个了解Netflix的顶级开源项目:

Netflix的顶级开源项目:大数据


Genie


Genie是一种联合作业执行引擎,它提供了可充分利用REST协议的API,以便运行众多的大数据作业,比如Hadoop、Pig、Hive、Presto、Sqoop等作业。它还提供了相应的API,用于管理许多分布式处理群集配置、命令以及在上面运行的应用程序。


Inviso


Inviso是一种界面,可用于搜索和可视化Hadoop作业、Job性能以及集群利用率数据。


Lipstick


Lipstick是面向Pig开发人员的项目。它结合了Pig工作流程的图形化描述和关于它执行的作业的信息,让开发人员可以深入了解情况,而之前需要细查大量的日志(或需要Pig专家)才能拼凑信息。



Aegisthus


Aegisthus能够对来自Cassandra的数据执行批量抽象操作,以便下游分析处理。其实现方式是,为SSTable格式实施读取器,并提供一个map/reduce程序,以便为列族中所含的数据创建一份压缩快照。


以上这些是Netflix与大数据有关的顶级开源项目。下面讨论构建和交付工具:

Netflix的顶级开源项目:构建和交付工具


Nebula


Nebula是一组Netflix已开源的Gradle插件,用来与公众共享其内部构建基础设施。设立Nebula插件部门的目的是,便于创建、治理和发布Gradle插件。为此,它提供了托管插件、源代码管理(SCM)、持续集成(CI)和软件库的场所。


Asgard


Asgard是一种基于Web的工具,用于管理基于云的应用程序和基础设施。Asgard帮助Netflix构建数百种应用程序和服务,并将它们部署到亚马逊云。Asgard采用Apache许可证2.0版本来发布。可随意开发该项目的分支版本,对它进行改进。

Netflix的顶级开源项目:通用运行时服务及库


Hystrix


Hystrix是一种延迟和容错库,旨在隔离访问远程系统、服务和第三方库的访问点,终止连锁故障,并且在故障不可避免的复杂分布式系统中确保具有弹性。在分布式环境下,许多服务依赖项中有一些难免出现故障。Hystrix这个库可以帮助你添加延迟容忍和容错逻辑,从而控制这些分布式服务之间的交互。为此,Hystrix隔离了服务之间的访问点,终止连锁故障,并提供应急后备选项,这一切增强了系统的整体弹性。


Karyon


Karyon是一种框架和库,实际上含有旨在实施云就绪的Web服务所需的蓝图。构成Netflix的SOA图的其他所有细粒度Web服务和应用程序实际上可以看成是用这个基本蓝图克隆而成的。


Turbine


Turbine这个工具用来将多路服务器发送事件(SSE)JSON数据流汇聚成一路数据流。针对性的使用场合是,汇聚来自SOA中的实例的度量数据流,用于呈现在仪表板上。Netflix使用的Hystrix有一个实时仪表板,仪表板使用Turbine汇集来自上百个或上千个机器的数据。


Netflix的顶级开源项目:数据持久性


EVCache


EVCache是一种基于memcached和spymemcached的缓存解决方案,主要用于AWS EC2基础设施,用来缓存频繁使用的数据。


Dynomite


Dynomite受到亚马逊的Dynamo白皮书的启发,这是一种通用的Dynamo实施方法,可支持不同的k-v存储引擎。


Astyanax


Astyanax是一种面向Apache Cassandra的高级Java客户端。Apache Cassandra是一种具有高可用性的、面向列式的数据库。它借鉴了Hector的许多概念,但是在客户端API以及连接池实现方面又有所不同。设计方面主要考量的因素之一就是,在连接池和CassandraAPI之间提供一种干净的抽象,那样各自可以单独定制和改进。Astyanax提供了一套流畅的API,可以引导调用方将查询从键缩减至列,并为Netflix遇到的更复杂的使用场合提供查询。Astyanax相比Hector在操作上具有的优点包括:缩短延迟、减小延迟变数以及改进错误处理机制。        


以上这些是Netflix与数据持久性有关的顶级开源项目。下面讨论洞察力、可靠性及性能工具:

Netflix的顶级开源项目:洞察力、可靠性和性能


Atlas


Atlas用于管理维度时间序列数据,以获得近乎实时的操作洞察力。Atlas拥有内存中数据存储功能,因而得以收集并报告数量很大的度量指标,速度非常快。它的用途主要是解决之前系统在扩展和查询功能方面的问题。


Ice


Ice提供了这种功能:从使用量和成本的角度,纵览庞大而复杂的云环境。云资源由企业组织内部众多的服务团队来动态配置,资源分配的任何静态快照都拥有一个有限值。能够显示全球范围内使用模式方面的趋势,不过又可以将它们分解到区域、可用区或服务团队,这提供了异常出色的灵活性。Ice让我们得以量化我们使用的AWS资源,并在预订购买和重新分配资源方面做出有根据的决策。



Simian Army


Simian Army是一套工具,用于让你的云在最佳状态下运行。Simian Army包括众多云端服务(Monkey),这些服务可用于生成各种故障、检测异常情况,并测试我们的存活能力。目的在于,确保云安全、可靠和高可用性。目前Simian包括Chaos Monkey、Janitor Monkey和Conformity Monkey。


介绍了与分析和性能有关的项目后,我们最后介绍Netflix与安全有关的顶级开源项目:

Netflix的顶级开源项目:安全


Security Monkey


Security Monkey可监测策略变化,并针对AWS帐户中不安全的配置发出警报。它还是一款查明潜在问题的实用工具,因为它实际上就是一款变更跟踪系统。


Scumblr


Scumblr是一款Web应用程序,可以针对已识别的结果执行定期搜索和存储/采取动作。Scumblr搜索使用了名为Search Provider的插件。每个Search Provider知道如何通过某个网站或API(Google、Bing、eBay、Pastebin或Twitter等)来执行搜索。可以基于通过Search Provider获得的选项,从Scumblr里面来配置搜索。


Message Security Layer


Message Security Layer(MSL)是一种可扩展的、灵活的安全消息框架,可用于在两个或多个通信实体之间传输数据。数据还可以与特定用户关联起来,如果需要的话,可以将数据当作机密数据或不可重放的数据。


以上这些就是Netflix的顶级开源项目,部分内容来自Netflix OSS。


相关阅读:

Netflix发展背后的技术

Netflix CDN每天提供1.25亿小时的视频时长

Netflix完成向云端转移 亚马逊是最大受益者

面对云故障  用户何以处惊不乱

Netflix是如何构建代码的?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存