サイバーエージェントを支える技術者たち

第37回 自作の実用ツールをオープンソースで公開

この記事を読むのに必要な時間:およそ 3 分

開発や運用作業の効率化,あるいは課題解決のためにちょっとしたプログラムを開発したことがある人は多いでしょう。オープンソースとして公開されている「Tomahawk」も,もともとサーバ構築の手間を軽減するために開発されました。今回は,このTomahawkの開発者であるサイバーエージェントアメーバ事業本部ピグディビジョンエンジニア,生沼一公(おいぬま かずひろ)氏にお話を伺いました。

生沼一公氏

生沼一公氏

負荷テスト用サーバを効率的に構築するために開発

ソースコードを広く一般に公開し,興味のある複数のエンジニアが協力し合いながら開発を進めるオープンソースは,LinuxやApache,MySQLなど優れたソフトウェアを世に送り出したほか,最近ではAndroidやHadoopといった注目度の高いプロダクトを開発しています。サイバーエージェントアメーバ事業本部ピグディビジョンエンジニアの生沼一公氏は,このオープンソースに魅力を感じるエンジニアの一人であり,自ら開発した「Tomahawk」をオープンソースとして公開しました図1,図2)⁠

図1 GitHubで公開されている,生沼氏が開発した「Tomahawk」

図1 GitHubで公開されている,生沼氏が開発した「Tomahawk」

図2 実行中のTomahawkの画面

図2 実行中のTomahawkの画面

Tomahawkは複数のサーバを一括して制御するためのソフトウェアであり,具体的にはローカルで入力したコマンドを複数のリモートサーバで一括して実行したり,あるいはローカルとリモートサーバ間でファイルをコピーしたりするための機能を備えています。

このTomahawkを開発したきっかけは,データベースの負荷試験のための環境作りだったと生沼氏は話します。

「アメーバピグで利用していたデータベースをリプレースするというプロジェクトに携わった際,1秒間に十何万クエリという,その当時のトラフィックに耐えられるかどうかを検証する負荷テストを行うことになりました。ただ,それだけのトラフィックを発生させようとすると数十台のサーバが必要になるんですね。そのサーバを構築するのが私の役目だったのですが,とてもではないですけれど,1台ずつ構築するのは面倒だと(笑)⁠そこで,あるサーバでコマンドを実行したら,それがリモートの複数台のサーバで同時に実行されるようなツールがあれば便利だなと思い,Tomahawkを開発しました」

同様の機能を持つツールがすでにオープンソースで公開されているのは知っていたと言いますが,気になる部分があったので「車輪の再発明」を承知で作りなおしたとのこと。

「既存のツールは,たとえばコマンドを実行したときに,1台のリモートサーバで失敗しても処理を止めず,ほかのリモートサーバでも実行してしまうという仕様で,ちょっと怖かったんですね。そこの部分を変えたかったというのが,自分で開発した理由の1つです。もちろんソースコードが公開されているので,すでに開発されているソフトウェアを改修するという手もあったのですが,技術者としてゼロから作ってみたかったんです。そこが開発にあたっての一番のモチベーションでしたね」

オープンソースのメリットはさまざまな人の協力を得られること

オープンソースとして公開したうえで開発を進めた理由について尋ねると,次のような答えが返ってきました。

「サイバーエージェントに入社する前からそうだったんですが,私はすごくオープンソースに助けられてきたという思いがあるんです。前職ではPerlを使った開発をしていたのですが,Perlではオープンソースのライブラリが集まっているCPANを使えば便利な機能が簡単に利用できるので本当に助かりました。そんな経験もあり,もちろんソースコードに機密情報が含まれているといったケースであれば別ですが,基本的にソースの公開にはメリットしかないという考え方がベースにあり,今回のTomahawkの開発でも特に迷うことなくオープンソースにしました」

オープンソースで開発するメリットとして最も大きいのは,第三者の協力を得られる点でしょう。オープンソースとして公開すれば,バグの報告を受けられるだけでなく,ソースコード上のどこに問題があるのかまで指摘してもらえたり,あるいはバグを修正するためのパッチを提供してもらったりすることも珍しくありません。Tomahawkでもこうした協力を得られたうえ,さらにDebianのパッケージとして配布する作業についてのアドバイスも受けられたと言います。

「いろんな人たちから協力が得られる点は,オープンソースとして公開することの大きなメリットですよね。自分自身でDebianのパッケージを作るのは敷居が高いと感じるのですが,スキルがすごく高い人に手伝ってもらえるのは本当にありがたいと思います」

著者プロフィール

川添貴生(かわぞえたかお)

株式会社インサイトイメージ代表取締役。企業サイトの構築及び運用支援のほか、エンタープライズ領域を中心に執筆活動を展開している。

メール:mail@insightimage.jp

コメント

コメントの記入