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

Netflix 继续开源,更多猴子进入视野

  • 2013-02-15
  • 本文字数:2600 字

    阅读完需:约 9 分钟

在众多开发者眼中,Netflix 以它的“猴子”闻名于世,在过去的一年里,他们陆续开源了众多基础设施。近期,Netflix 又举办了一次活动,宣布了2013 年的开源计划,同时对一些已经开源的项目做了简单的介绍。

截止2012 年底,Netflix 已经开源了15 个基础设施的代码,涉及AWS 上的自动伸缩及控制面板、高性能Java 日志框架、Cassandra 及ZooKeeper 扩展等诸多方面的内容。今年,他们计划更进一步,逐步放出五大类内容——构建与部署相关(工作流编排、一键上线)、实践攻略相关(基础服务器Karyon、诸多示例)、可用性相关(监控工具Atlas、更多的“猴子”)、分析相关(Hadoop 之上的PaaS 平台Genie、分析结果的可视化工具)以及持久化相关(持久化及Memcached 服务EvCache、更多的Astyanax 攻略)。

Netflix 的工程师 Jordan Zimmerman 对他们开源的一些项目做了一些说明:

  • Curator,一款旨在简化 ZooKeeper 使用的 Java 类库,提供了大量实用的功能及最佳实践。
  • Exhibitor,ZooKeeper 的运维工具,提供了监控、日志清理、备份、集群配置、自动实例管理、可视化、REST API 等诸多功能,还可以和 Curator 进行集成。
  • Governator,一款对 Google Guice 进行扩展的类库,提供了 Classpath 扫描及自动绑定、生命周期管理、成员属性验证等功能。
  • Blitz4j,构建于 Log4j 之上的异步日志框架,能够减少争用,在不影响应用程序性能的前提下提供高可扩展的日志服务。
  • Eureka,一组 REST 服务,能够在 AWS 云中定位服务,从而实现中间层服务器的负载均衡和故障转移,除此之外,它还能进行实例的流量管理,在服务之间共享特定应用程序的元数据。
  • Ribbon,一款内部进程通信类库,内置软负载均衡(多种算法)和 REST 客户端(基于 JSR 311),它是 NIWS(Netflix Internal Web Services)的基础,能和 Eureka 集成在一起提供 AWS 里的动态服务器资源池,还针对 AWS 进行了优化,提供可用区亲缘性等特性。
  • Archaius,一组配置管理 API,提供了强健的高性能动态配置管理功能,可以在不用重启的情况下动态调整运行时的配置。
  • Astyanax,Cassandra Java 客户端,提供了更高层次的 API、客户端故障转移、连接池管理、自动重试及发现等功能,还包含了常见 Cassandra 数据模型。
  • Priam,EC2 中的 Cassandra 辅助工具,能够自动进行全量 / 增量备份和 Token 管理,还可进行云中的 Cassandra 自动配置。
  • CassJMeter,一款 Apache JMeter 的插件,可以向 Cassandra 中生成数据,并进行数据验证,评估性能和吞吐量。
  • Edda,一个用来追踪云中部署应用变化情况的 REST 服务,爬取 AWS API 的结果,用版本化 JSON 保存下来,支持动态查询和历史情况查看。
  • Hystrix,一款针对延时和故障而设计的类库,对远程系统、服务和第三方类库的调用点进行隔离,可以在情况复杂、故障在所难免的分布式系统中,有效地阻止故障的蔓延。同时,它还能进行实时监控和配置变更,并提供并行执行能力。
  • Turbine,低延时、高吞吐量的实时流数据聚合器。
  • Asgard,基于 Web 的 AWS 云应用管理工具。

此外,InfoQ 之前也对 Netflix 开源的RxJava进行了报道,这是 Reactive Extensions 的一款 Java 实现,将 Rx.Net 移植到了 JVM 之上,并做了些命名及使用习惯的调整。它的目标是适用于 JVM 之上的各种语言,目前除了 Java 5+ 以外,还支持 Groovy、Clojure、Scala 和 JRuby。

RxJava 的 Wiki 上描述了为什么要使用 RxJava——Java 的 Future 太过直接,不便组装使用,不能方便地实现条件化的异步执行,回调也有类似的问题,嵌套使用会令人头晕目眩:

Yo Dawg, we heard you like callbacks. So we put callbacks in your callback so you can callback when you callback.

RxJava 简化了服务器端的异步编程,通常代码会是这样的:

  1. 定义一个闭包(目前在 Java 语言里是匿名类,今后会支持 Java 8 的闭包),其中包含处理逻辑并且带有返回值,这被称为“observer”。
  2. 将异步调用本身定义为一个继承自 Observable 类的对象。
  3. 以订阅的方式将 _observer_ 附加到 Observable 对象上(这也会触发调用)。
  4. 继续你自己的业务逻辑,当上述调用返回时,_observer_ 会去处理返回值的。

订阅使用的subscribe()方法接受一个 Map,其中的onNextonCompletedonError分别定义了每次 Observable 返回值的处理逻辑、最后一次返回且没有发生错误时的处理逻辑以及发生错误时的处理逻辑。

除了上述提到的内容之外,自然少不了著名的猴子们, Simian Army是这群猴子的统称,除了 Chaos Monkey 和 Janitor Monkey 之外,更多的猴子也将在今年陆续开源。在 Netflix 的技术博客上有篇文章,详细介绍了 Simian Army 中的各位成员:

  • Chaos Monkey,可以随机关闭生产环境中的实例,确保网站系统能够经受故障的考验,同时不会影响客户的正常使用。
  • Latency Monkey,在 RESTful 服务的调用中引入人为的延时来模拟服务降级,测量上游服务是否会做出恰当响应。通过引入长时间延时,还可以模拟节点甚至整个服务不可用。
  • Conformity Monkey,查找不符合最佳实践的实例,并将其关闭。例如,如果某个实例不在自动伸缩组里,那么就该将其关闭,让服务所有者能重新让其正常启动。
  • Doctor Monkey,查找不健康实例的工具,除了运行在每个实例上的健康检查,还会监控外部健康信号,一旦发现不健康实例就会将其移出服务组。
  • Janitor Monkey,查找不再需要的资源,将其回收,这能在一定程度上降低云资源的浪费。
  • Security Monkey,这是 Conformity Monkey 的一个扩展,检查系统的安全漏洞,同时也会保证 SSL 和 DRM 证书仍然有效。
  • 10-18 Monkey,进行本地化及国际化的配置检查,确保不同地区、使用不同语言和字符集的用户能正常使用 Netflix。
  • Chaos Gorilla,Chaos Monkey 的升级版,可以模拟整个 Amazon Availability Zone 故障,以此验证在不影响用户,且无需人工干预的情况下,能够自动进行可用区的重新平衡。

活动的主题演讲中还提到了 Netflix 投入开源的目的:

  • 将他们的解决方案变为最佳实践和标准
  • 构造 Netflix 的技术品牌
  • 从生态环境中获益
  • 吸引最顶尖的工程师加盟

相信这也是很多积极投身开源社区的公司的共同目标,国内的企业不妨也效仿 Netflix 的做法,在使用开源产品的同时,将自己的部分代码开源出来,回馈给开源社区。

如果您对 Netflix 的开源项目感兴趣,可以移步 Netflix Open Source Center ,或者访问其技术博客。3 月13 日,Netflix 又将在其总部举行 NetflixOSS Meetup ,期待届时能有更多精彩内容。

2013-02-15 06:4010506
用户头像

发布了 135 篇内容, 共 60.2 次阅读, 收获喜欢 43 次。

关注

评论

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

IBM,谁说大象不能跳舞?

IPD产品研发管理

华为 产品设计 产品开发 ibm 集成产品开发体系

谷歌正式开放Imagen 3访问权限!OpenAI的GPT-4o连续两周迎来两次更新!|AI日报

可信AI进展

人工智能

In-Depth Analysis--IPQ9574 and QCN9274 Synergy in Industrial-Grade Applications-Harnessing the Power of WiFi 7

wifi6-yiyi

ipq9574

Adobe Camera Raw增效工具 for mac v16.2.0中文激活版

Rose

Adobe Camera Raw下载 Adobe Camera Raw中文 Adobe Camera Raw破解

“AI+Security”系列第2期(四):AI/机器学习供应链攻击

云起无垠

全球首发!昆仑万维重磅推出AI短剧平台SkyReels

新消费日报

重塑跨境电商版图:1688代采集运系统的魔力之旅

代码忍者

代购系统 1688代采系统

玩转京东商品评论数据接口:数据挖掘与洞察

tbapi

京东商品评论内容接口 京东API 京东商品评论数据接口

和鲸携手山东大学数字人文实验室,推动新文科与人工智能融合发展

ModelWhale

智能配补调:破局“流量红利”后时代的零售新策略

第七在线

中文版Nik Collection 6 滤镜插件套装 适用于ps/lr

Rose

Nik Collection 6 滤镜

4大要点助你选择室内LED显示屏

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

华为云联创营CIO领航班第一期:数字化转型与AI赋能的深度探索

科技热闻

Project Office Mac版:甘特图项目管理应用

理理

AE关键帧缓入缓出曲线调节脚本 AEscripts flow mac版 支持M1/M2

Rose

AE关键帧

Tomcat源码分析 (一)----- 手撕Java Web服务器需要准备哪些工作

派大星

tomcat源码解读

coconutBattery Plus:苹果mac电脑 电池健康检测工具

理理

macOS Sequoia 15(Macos15系统)v15.0 Beta 6测试版本

理理

专业音调校正和操控 Nuro Audio Xpitch for mac v1.0.2激活版

Rose

黄金三年,京东后端新人的技术破茧之路

京东零售技术

后端 技术成长 企业号2024年8月PK榜

编程神器:IDA Professional 逆向工程和静态分析工具

Rose

编程开发 IDA Professional IDA Professional9破解版 反汇编逆向神器

中文汉化版 眼睛糖果滤镜PS插件 Alien Skin Eye Candy 7下载安装

Rose

ps滤镜下载 Alien Skin Eye Candy 7 眼睛糖果滤镜

photoshop阴影插件 Shadowify 苹果Mac版

Rose

ps阴影插件 Shadowify

和鲸科技受邀出席辽宁省计算机基础教育学会 2024 年学术年会

ModelWhale

Optical Flares插件怎么安装?Optical Flares中文汉化版详细安装教程

Rose

D2O 前置放大器仿真插件(Triton Audio D2O mac版下载安装)

Rose

鲁棒性目标检测 TOP2 方案分享

阿里云天池

郑雁鹏|浅谈工业实时数据库和时序数据库的关系

麦杰研究院

数据库 工业实时数据库 工业时序数据库 麦杰科技 麦杰研究院

OpenSPG 首个 Release 版本发布,提供成熟可靠的知识构建解决方案

可信AI进展

人工智能

FCPX插件:MotionVFX - mWedding 2 盛大的婚礼效果

Rose

Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体

合合技术团队

人工智能 PDF

Netflix继续开源,更多猴子进入视野_Java_丁雪丰_InfoQ精选文章