NetflixのgithubリポジトリはWeb技術の百貨店だった

検索しているとなにかとNetflixgithubリポジトリがヒットするので、全部(2015/07/18現在分)調査してみた。

github APIhttps://github.com/Netflix のリストを全部取得して、名前・概要・URL・最終更新日時 (なんの更新だ?) を抽出。

AWS用のプロダクトが多かったのでまずそれらと、その他という分類にした。その他はほとんどがJavaライブラリ・システムだが、一部WebアプリケーションやPythonライブラリがある。

日本語での説明はReadmeやWikiを見て書いているが、理解が正しくないかもしれない。

AWS

aws-autoscaling

Tools and Documentation about using Auto Scaling

AWSでオートスケーリングを使うときのためのup/downスクリプトとドキュメント。

asgard

Web interface for application deployments and cloud management in Amazon Web Services (AWS). Binary download: http://github.com/Netflix/asgard/releases Snapshot builds: https://netflixoss.ci.cloudbees.com/job/asgard-master/ Twitter: http://twitter.com/AsgardOSS

AWSのアプリケーションデプロイや管理のためのWebアプリケーション。

SimianArmy

Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

AWSオートスケーリング環境をより安全に、効率的にするための補助ツール。

eureka

AWS Service registry for resilient mid-tier load balancing and failover.

AWS環境内でロードバランシング、フェールオーバを実現するためのシステム。AWS Elastic Load Balancerとは違うらしい。

NetflixではAsgard、Cassandra、Memcachedのデプロイなどと連携して使われている。

edda

Service to track changes in your cloud

AWSリソース、履歴管理のためのツール。

frigga

Utilities for working with Asgard named objects

AWS object nameの生成、パースのためのライブラリ。Asgardで使われる。

aminator

A tool for creating EBS AMIs. This tool currently works for CentOS/RedHat Linux images and is intended to run on an EC2 instance.

AWSでマシンイメージを作るためのツール。

ice

AWS Usage Tool

AWS利用のための補助ツールとWebアプリケーション。

アカウント、リージョン、サービス、リソース利用状況の管理など。

glisten

Ease of use Groovy library for building JVM applications with Amazon Simple Workflow (SWF)

Amazon Simple Workflow Service (SWF) アプリケーションをGroovyで実装するためのライブラリ。

s3mper

s3mper - Consistent Listing for S3

Amazon S3のインデックス一貫性をチェックするためのツール。

security_monkey

Security Monkey

AWSアカウント情報のセキュアでない部分の発見・警告をするツール。

その他

astyanax

Cassandra Java Client

Cassandraクライアントライブラリ。Hectorより良いらしい。

通常のCassandra利用の他、recipesで行ロックやオブジェクトストア、Reverse Index検索、メッセージキューを実現するAPIを提供している。

curator

ZooKeeper client wrapper and rich ZooKeeper framework

Zookeeperクライアントライブラリ。

全体はApache Curatorになったので、Netflix拡張のみがある。今はzkclientとのブリッジAPIだけ。

Priam

Co-Process for backup/recovery, Token Management, and Centralized Configuration management for Cassandra.

Cassandra補助ツール。

バックアップ・リカバリトークン管理、シードディスカバリ、設定管理、AWSサポート、など。REST APIを提供している。

CassJMeter

JMeter plugin to run cassandra tests.

Cassandra性能計測用Apache JMeterプラグイン

servo

Netflix Application Monitoring Library

簡単にJMX MBeanを実装するためのライブラリ。

MetricsよりもJMX特化でシンプル。

exhibitor

ZooKeeper co-process for instance monitoring, backup/recovery, cleanup and visualization.

Zookeeper補助ツール。

データバックアップ・リストア、ログ整理、ZKノード可視化など。REST APIを提供している。

netflix.github.com

Netflix OSSに関する情報を発信するWebページ。

かつては映画ストアのような見た目をしていたらしい

gradle-template

Netflixプロダクトで用いられるビルドツールGradleのテンプレート集。

archaius

Library for configuration management API

Javaプロダクト設定管理のためのAPIを提供するライブラリ。Apache commons configurationの拡張として実装されている。

ZookeeperやDBから設定情報を取得し動的な設定反映を実現できる。

governator

Governator is a library of extensions and utilities that enhance Google Guice to provide: classpath scanning and automatic binding, lifecycle management, configuration to field mapping, field validation and parallelized object warmup.

Google Guice拡張ライブラリ。

クラスパス制御、設定情報、バリデーションなどのためのアノテーションを提供する。

netflix-commons

Common utilities for Netflix OSS projects

Netflixプロダクトで使われる共通ライブラリ。

blitz4j

Logging framework for fast asynchronous logging

ロギングライブラリ。

非同期でスケーラブルなモデルによりlog4jボトルネックを解消しており、パフォーマンスに優れる。

Hystrix

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

分散システムの依存関係を整理し、部分ダウンなどによる失敗に対し速やかなリカバリを実現するためのシステム。

レイテンシなどを可視化するダッシュボードを提供する。

Turbine

SSE Stream Aggregator

Server-Sent Event JSONデータストリームを1つにまとめるツール。Hystrixのダッシュボードで使われている。

ribbon

Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.

ロードバランシング、フォールトトレラント、非同期モデルによるHTTP/TCP/UDP通信、キャッシング・バランシングを実現するためのクライアントライブラリ。

denominator

Portably control DNS clouds using java or bash

DNS制御ツール・ライブラリ。

karyon

The nucleus or the base container for Applications and Services built using the NetflixOSS ecosystem

Netflixプロダクトなどを活用した、Webサービス実装のためのフレームワーク

Governator、Archaius、Eureka等に対応。

EVCache

A distributed in-memory data store for the cloud

Memcachedとspymemcachedをベースにした、オンメモリデータストア。

recipes-rss

RSS Reader Recipes that uses several of the Netflix OSS components

Netflixプロダクトを用いたRSSリーダ

archaius、astyanax、blitz4j、eureka、governator、hystrix、karyon、ribbon、servoの利用の参考にするためのコード。

Cloud-Prize

Description and terms for the Netflix Cloud Prize, which runs from March-September 2013. Read the rules, fork to your GitHub account to create a Submission, then send us your email address.

Netflix Cloud Prizeのためのリポジトリ

netflix-graph

Compact in-memory representation of directed graph data

有向グラフデータを扱うためのライブラリ。

アプリケーション上ではグラフデータはオンメモリで、ファイルなどにシリアライズ・デシリアライズが可能。

zuul

Zuul is an edge service that provides dynamic routing, monitoring, resiliency, security, and more.

認証、モニタリング、リクエストの動的ルーティング、ストレステスト、リクエスト・レスポンスの制御などを扱うためのライブラリ。

Webアプリケーションの前面に設置する。

suro

Netflix's distributed Data Pipeline

分散データストリームシステム。受け取ったデータをファイルに書き出したり、分散ファイルシステムに書き出したりする。

Apache Kafkaとも連携する。

brutal

A multi-network asynchronous chat bot framework using twisted

botを作るための非同期ライブラリ。IRCXMPPをサポート。

pytheas

Web Resources and UI Framework

データ可視化のためのWebアプリケーションを構築するためのライブラリ。Jerseyベース。

gcviz

Garbage Collector Visualization Tool/Framework

JVMガベージコレクションログを可視化するWebアプリケーション。

Lipstick

Pig Visualization framework

Apache Pigのワークフローを可視化するWebアプリケーション。

NfWebCrypto

Web Cryptography API Polyfill

W3C Web Cryptography API実装の1つ。Google Chrome (amd64 Linux) 用プラグインで、実用的ではなさそう。

genie

Federated Job Execution Engine

Hadoop系システムの他、Sparkなどのジョブ実行、クラスタを管理するためのシステム。

feign

Feign makes writing java http clients easier

JavaでHTTPクライアントを実装するためのライブラリ。

Nicobar

動的モジュール読み込みアプリケーションを実装するためのライブラリ。

blesk

Netflix blesk is a lightweight client for pushing notifications to web based applications/sites.

Bleskサーバを持つWebアプリケーションに通知を送信するためのクライアントライブラリ。

Bleskサーバの実装が無いため詳細不明。

dynomite

A generic dynamo implementation for different k-v storage engines

Dynamoにインスパイアされた分散KVS。

RedisかMemcachedに依存している。

aegisthus

A Bulk Data Pipeline out of Cassandra

Cassandraに保存されたデータ (SSTable) をMapReduce/Pigで処理するためのライブラリ。

zeno

Netflix's In-Memory Data Propagation Framework

データ管理・分配のためのオンメモリシステム。

Javaオブジェクトのコンパクトなシリアライズ、データセットの重複発見・除去、差分更新、など。

staash

A language-agnostic as well as storage-agnostic web interface for storing data into persistent storage systems, the metadata layer abstracts a lot of storage details and the pattern automation APIs take care of automating common data access patterns.

Cassandra・MySQLのモニタリング、操作のためのREST APIなどを提供するWebアプリケーション。

PigPen

Map-Reduce for Clojure

ClojureMapReduceアプリケーションを実装するためのライブラリ。Clojureで書くとPigかCascadingのコードに変換される。

fabricator

DI (Dependency Injection) ライブラリ。

Fido

マルウェア検出などに前後する人手のセキュリティタスクを効率化するためのツール。

dyno

Java client for Dynomite

Dynomite用Javaクライアントライブラリ。

ReactiveLab

Experiments and prototypes with reactive application design.

サービス指向アーキテクチャ + Reactive application designのための実験的なコード集、とあるが要するにReactiveX (RxJava)を使ったコード集。

msl

Message Security Layer

セキュアなメッセージング層の実装。認証、キー交換などをサポート。

spectator

多次元時系列データを記録するためのライブラリ。主にServoと連携し、Javaアプリケーション内の指標の記録を目的としているよう。

inviso

Hadoopジョブの検索、クラスタ状態の可視化のためのWebアプリケーション

sketchy

Webページのスクリーンショット取得、スクレイプのためのアプリケーション

PhantomJSを使用しJSレンダリングにも対応。

atlas

多次元時系列データ管理システムとライブラリ。欠損値の扱いに対応したインタラクティブな集計、チャートによる可視化ができる。

Atlas Stack Languageという独自クエリを用いる。

Scumblr

Googleなど検索エンジンやAppStore、SNSなどを定期的に検索し、結果を保存、条件に応じて処理を実行するWebアプリケーション。

Workflowable

ワークフロー (処理の流れ) を定義するためのライブラリ。

Raigad

Co-Process for backup/recovery, Auto Deployments and Centralized Configuration management for ElasticSearch

Elasticsearchデータのバックアップ・リストア、設定情報のデプロイ、ノードのデプロイ・モニタリングをサポートするためのツール。

Prana

A sidecar for your NetflixOSS based services.

Netflixプロダクトを容易に使うためのWebアプリケーション。Karyonベース。

EurekaやRibbon、Archaiusなどに対応。

ocelli

ロードバランシングをリアクティブに実装するためのクライアントライブラリ。

Wikiを見ると前はRxLoadBalancerという名前だったよう。

iep

Insight Engineering Platform Components

Netflixプロダクト利用の際のGuiceモジュールやサンプルコードなど。

iep-shadow

Shadowed versions of rx/platform libraries for Insight Engineering Platform use

上記iepで利用するライブラリ。普通はここを参照することはなさそう。

netflixoss-build-infrastructure

Project used to test our gradle publishing to bintray

NetflixプロダクトのためのGradleプラグイン

Surus

Pig・Hive用UDF。現在は予測モデル評価、異常検知についてのコードがある。

vector

Vector is an on-host performance monitoring framework which exposes hand picked high resolution metrics to every engineer’s browser.

サーバモニタリング・可視化Webアプリケーション。Performance Co-Pilotに依存している。

security-bulletins

Security Bulletins that relate to Netflix Open Source

Netflixプロダクトに組み込むことを目的にしたセキュリティ通知? 詳細不明。

ember-nf-graph

Composable graphing component library for EmberJS.

Ember.jsでチャートを描画するためのライブラリ。

ember-nf-graph-examples

Hosted examples of ember nf-graph components

上記ember-nf-graphのデモサイトを構築するためのコード。

peeringdb-py

PeeringDB Python library

PeeringDB 2.0用Pythonライブラリ。

Redisと連携しキャッシュを実装することもできる。