`
m635674608
  • 浏览: 5021981 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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:提供单一服务调用所不具备的可靠性,提供运行时的延迟隔离和容错。

  • KaryonGovernator:JVM容器服务。

  • Prana sidecar:提供实例内代理,支持非JVM运行时。

  • Zuul:提供云部署周边的动态路由、监控、安全和弹性扩展等服务。

  • Fenzo:为云本地框架提供了更为高级的调度和资源管理功能,为装箱和集群自动扩展提供了插件实现,用户能通过自定义的插件实现自定义的调度优化。

数据持久化
面对每天数以万亿的行为数据,没有哪一种技术能够独自满足所有的用例,所有潜在的需求,为此Netflix不仅使用了Memcached和Redis等非 持久化内存存储方案,还使用了可搜索的数据存储Elastic,以及高可用的数据存储Cassandra和MySQL。此外,Netflix还创建了一些 其他的辅助工具:

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

  • EVCacheDynomite:用于大规模地使用Memcached和Redis。

  • AstyanaxDyno 客户端类库:便于更好地使用云端数据库。

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

via InfoQ

 

http://www.oschina.net/news/68350/netflix-io-projects-intro

http://www.infoq.com/cn/news/2013/02/netflix-opensource

分享到:
评论

相关推荐

    走在前沿 我们与容器的亲密接触-Netflix徐振中

    ### 走在前沿:我们与容器的亲密接触——Netflix徐振中的关键技术点 #### Netflix简介及发展历程 Netflix是一家提供在线视频流媒体服务的科技巨头,拥有超过8300万订阅用户,每天播放时长达1亿2500万小时。其服务...

    Netflix微服务技术架构反向工程.docx

    综上所述,Netflix的微服务技术架构是一个全面、系统的设计,它不仅关注技术选型和实现,更强调了组织架构与文化对微服务成功实施的重要性。这种架构模式对于其他希望采用微服务的企业有着重要的参考价值,特别是...

    netflix

    6. 敏捷开发与DevOps文化:Netflix推崇敏捷开发和持续集成/持续交付(CI/CD),PHP的工具链,如Composer(依赖管理)、PHPUnit(单元测试)和Docker(容器化),在这些过程中发挥了重要作用,确保代码质量和快速迭代...

    开源软件推荐 使用 Github.docx

    ### 开源软件推荐系统:利用GitHub API实现 #### 弥补信息过载的挑战 ...总之,随着技术的不断进步和开源文化的普及,此类推荐系统将成为连接开发者和优秀开源项目的桥梁,极大地促进技术创新和发展。

    Migrating to Microservices

    最后,Adrian Cockcroft提到Netflix开源了其部分技术栈,说明了这种开放源码的做法不仅帮助了Netflix自身,也为业界提供了宝贵的工具和经验。 这些知识点对于任何有兴趣或正在实施微服务架构的企业和个人都是宝贵的...

    FIAP-NETFLIX

    3. **OSS(Open Source Software)贡献**:Netflix积极开源了许多自身开发的工具和框架,如Zuul(边缘服务网关)、Hystrix(容错管理工具)、 Ribbon(客户端负载均衡器)和Eureka(服务注册与发现)等,这些工具对...

    架构师(2020年6月).pdf

    - **技术与业务的协同**:在中台建设中,如何确保技术与业务目标的协同。 - **OKR系统**:如何通过OKR系统促进技术团队与业务团队的同步和目标对齐。 - **信息同步**:如何在高节奏的工作中实现部门间的信息同步和...

    架构创新与演进(解决方案专场)——Cloud Native架构的演进之路 共45页.pdf

    Cloud Native架构充分应用了开源软件栈,强调以下几个关键方面: 首先,Cloud Native架构使用容器化技术,将应用程序和进程打包成独立的容器。容器化的好处在于促进了可重复性、透明性,同时实现了资源隔离。这有利...

    Linux Perf Master

    社区文化章节则是对开源文化的介绍,包括了DTrace软件许可证的演变简史,Linux之父Linus Torvalds的人生观和工作哲学,以及Just for Fun的理念。 全书内容丰富,结构合理,不仅适合于Linux系统的初学者,更适合中...

    大型互联网公司的微服务转型实践.docx

    Netflix作为早期采用微服务的先驱,其从2008年开始逐步从单体应用转型,通过将复杂的Java包拆分为独立的服务,最终于2015年基本完成转型,并将大量微服务工具开源,对业界产生了深远影响。 Netflix的微服务演进过程...

    2017人工智大会

    - **Xiangjun Wang**(来自Netflix):Netflix作为视频流媒体服务的领导者,在内容推荐算法上拥有先进技术,可以推测其演讲将围绕用户行为预测或个性化推荐系统展开。 - **Uber**:共享经济的代表企业,可能会分享...

    EpoXY_histoRy

    9. **字体与品牌**:字体在品牌识别中扮演着至关重要的角色,每个知名品牌几乎都有自己独特的定制字体,如Apple的San Francisco和Netflix的Netflix Sans。 10. **字体技术的发展**:现代技术如OpenType和Variable ...

    SpringCloud学习笔记SpringCloud学习笔记

    通过集成Spring Boot和其他成熟的技术栈,Spring Cloud简化了服务之间的通信和部署,并促进了DevOps文化。 核心模块包括: Eureka:一个注册中心,用于服务实例的发现。 Hystrix(后来被Netflix Ribbon替代):...

    Docker And DevOps

    该文档中涉及到的关键知识点包括Docker技术、DevOps文化、高效能团队的特点以及与之相关的成功企业案例。下面将详细说明这些知识点。 Docker是一种开源的容器化平台,它允许开发者打包应用及其依赖到一个轻量级、可...

    微服务 (第一部分)springcould_07

    3. **断路器**:Hystrix是Netflix开源的一个断路器库,用于防止服务间的级联失败。当服务出现故障时,Hystrix可以快速失败并返回一个默认响应,避免整个系统因单个服务故障而崩溃。 4. **API网关**:Spring Cloud ...

    一个可供中小团队参考的微服务架构技术栈

    1. **服务网关Zuul**:Zuul是Netflix开源的智能路由和过滤器网关,它可以实现认证、区域感知路由和动态配置。因其简单轻量、易于编程和扩展的特点,被许多公司如携程和拍拍贷采纳。与Kong或Nginx相比,虽然Zuul不...

    MemeFlix:Netlix,但更好

    这个名为MemeFlix的平台可能结合了Netflix的功能并添加了一些独特元素,以提供更丰富的用户体验,尤其是可能在内容呈现、交互性或者与流行文化的结合上有所突破,比如引入了更多的网络迷因(meme)元素。 【描述】...

    构建基于大数据智能的商业决策能力.zip

    总结来说,构建基于大数据智能的商业决策能力,需要企业整合技术资源,建立有效的数据分析体系,培养数据驱动的文化,并不断迭代优化。这样,企业才能在激烈的市场竞争中,凭借数据洞察力和智能决策能力赢得优势。

Global site tag (gtag.js) - Google Analytics