現在は Microsoftによって所有されている、プロフェッショナルのためのソーシャルネットワークLinkedInが、社内で自社の作業のために作成したツールの1つを、誰でも使えるようにオープンソース化した。同社は本日(米国時間17日)、開発者テストのためにインターネットトラフィックのモッキング(テストなどの目的のために実際の動作を模倣して動作すること)を行う、Flashbackツールのオープンソース化をアナウンスした。公開は二条項BSDライセンスの下で行われる
ブログ投稿の中で、LinkedInはFlashbackを、新しいコードを広くデプロイする前に行う、信頼性やスケーラビリティそしてスピードのテストを行うために用いてきたと述べている。その動作する様子の例はここから見ることができる。
FlashbackはBetamaxに基いている。といってもこれは古いビデオの規格名ではなく、「ウェブアプリケーションから呼び出されるHTTPコネクションを横取りして、あとで再生する」ことで、ウェブサービスとREST APIのモック動作を行い開発者テストを行わせるまた別のツールの名前だ (”Betamax”という名前は、RubyのVCR ライブラリに触発されたものだ)。
作者であるLinkedInのエンジニアのShangshang Feng、Yabin Kang、そしてDan Vinegradたちがブログの記事に書いた主要な特徴は、Flashbackが独立した環境で動作するということである。これに対しBetamaxや類似のプロキシは動作のためにインターネット接続を必要とする。
「Flashbackはテストを目的として、ウェブサービスやREST APIなどの、HTTPならびにHTTPSリソースをモックするために設計されています。そしてそれはHTTP/HTTPSリクエストを記録し、以前に記録済のHTTPトランザクションを再生します。これは私たちが「シーン」を呼んでいるものですが、このことによりテストを完了するためにインターネットへの外部接続をする必要はなくなるのです」と彼らは書いている。
インターネットへの接続を要求しないツールを彼らが作成した理由は、彼らがBetamaxを用いていた最中にいくつかの問題に遭遇したからだ。この問題の中には、LinkedInのテスト環境がセキュリティ上の理由でインターネットアクセスを行わないという事情や、彼らのコードがOAuthやOpenIdなどの複雑なHTTPベースのインタラクションを必要とする認証プロセスを使う場合があり、それがBetamaxの再生機能では上手く動作しないというものが含まれていた。
LinkedInが、当初自社の目的のために開発したコードを外部に公開するのはこれが初めてではない。例えば2015年には、機械学習モデルを構築するためのツールキットFeatureFuの公開も行っている。
LinkedInがFeatureFuをオープンソス化した理由は、それが最早会社にとって「ビジネスを差別化するもの」だと見なされなくなったからだ。今回も、同様の理由だと思われるが、LinedInがツールを公表した際に、開発者コミュニティから各自のプロジェクトで使いたいという要求を受けたことも事実だ。
LinkedInはFlashbackをオープンソース化する一方で、その機能拡張も継続して行う。それはLinkedInが4億6500万人のユーザーへ向けて行う仕事の一環として取り組むものかもしれない。
「将来的には、FTPやJDBCなどの非HTTPプロトコルもサポートできたらと思っています」と彼らは書いている。「そしてツールの利用者たちにもMITMプロキシーフレームワークを使って、独自のカスタマイズプロトコルを導入できる柔軟性を提供できたらと思います。私たちは非Java言語のサポートを容易にするために、Flashback設定APIの改良を続けます」。
[原文へ]
(翻訳:sako)