おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

Traffic Serverのオープンソース化:70万行のコード、9ヶ月 (和訳)

先日、Yahoo!からTraffic Serverのオープンソース化が発表されましたが、その公開についての記事がYDN Blogに出ていたので適当に訳してみました、

以下、訳
以下は、TrafficServerのオープンソースリリースのためのコードベースを準備したYahoo!のチームのメンバーであるAndrew Hsuとの会話からです。

Traffic Server (TS)とは?

Traffic Serverは、高速で、スケーラブルで、かつ拡張HTTP/1.1に準拠したキャッシュプロキシサーバーです。TSは、遅延が少なく、"プラグイン"アーキテクチャに基づいて拡張可能なフレームワークが含まれます。開発者は既存のプラグインをカスタマイズするか、特定のアプリケーションの要件に対応するよう独自で開発し、Traffic Serverの組み込みの性能とパフォーマンスの恩恵を受ける。プラグインの例としては、ユーザによって開発された、特定のロードバランサとURLをマッピングするアプリケーションがあります。ヤフーでのTSの使用法についてのMiles Lebbeyの説明をチェックしてみてください。

TSの歴史とは?

Traffic Serverは最初はインクトミ社によって作成され、商用製品として販売されました。この製品は、すべての主要オペレーティングシステムで動作するよう設計されていました、1990年ごろで、SunOS、DEC、IRIX、WindowsLinuxFreeBSDなど。ヤフーが2002年にInktomiを買収し、数年間Traffic Serverを利用していましたが、すべてのOS固有のコードを維持してはいませんでした。2009年に、オープンソースとしてコードをを見て、クリーンアッププロセスを簡素化するために、多くの非Linuxの固有コードを削ったり無効にすることに決めました。今ではTraffic Server周辺の開発者のコミュニティがあり、ヤフーの外の貢献者が適当と思うより現代的なコードや、非Linux OSのサポートの構築を選択することができます。

Yahoo!ではどのように使っていますか?

Traffic Serverは、1日に、300億以上のwebオブジェクトと、400テラバイト以上のデータをヤフーのネットワークを越えて提供している。これは、プロキシまたはキャッシュ (あるいはその両方)として、Yahoo!のホームページ、メール、スポーツ、検索、ニュース、ファイナンスのようなサービスで利用されている。Traffic Serverは、我々自身のトラフィックの管理と、セッション管理、認証、構成管理、負荷分散、そして、クラウドコンピューティング群全体へのルーティングの管理のためにYahoo!社内で利用されています。

オープンソース化したTraffic ServerからのYahoo!の利益は何?

我々は積極的な開発を継続する予定です。たとえば、IPv6サポートと、巨大なファイルを扱う際のパフォーマンス向上を計画しています。我々は、コミュニティとそれらに取り組み、そして、Yahoo!の外の人たちの専門知識と経験を活用してみたい。オープンソースでのリリース以来、コミュニティはすでに完全な64ビット機能を有効にするパッチを提供しています。

オープンソースのTrafficServerに何が関わるのか?

オープンソースとしてリリースするために、コードの変更に取り組んだYahoo!の開発者チームです。我々はまた、Yahoo!の法務、ユーザエクスペリエンスとデザインのチーム、オープンソースのワーキンググループと協力し、マネージャー達と調整する、我々は、70万行以上のコードから開始し、わずか30万行に削減した。(sloccountによれば)。我々が削除したのは、サポートを望んでいないOS用の独自機能、ヤフー独自の望まないもしくは、オープンソースで公開できないもの、古いストリーミングメディアプロトコルのように廃止された機能などのものです。インデントで再整形するため、コードの全行を変更し、そしてディレクトリも再構成した。しかしながら、動作に関わる変更のリスクが少なかったため、我々は全行の"精査"はしていない。

オープンソースにどのくらい時間がかかりましたか?

オープンソース化について編集した最初の内部ドキュメントのリリースの日付から、9ヶ月を超える計画でした。

どのように取得できますか?

ApacheSVNリポジトリがTraffic Serverのための最もよいソースである。


Andrew Hsu
ヤフー!Traffic Serverチーム