アイキャッチ

ログデータ可視化ツール『Kibana』に今も流れるPay it forwardのOSS的精神

働き方

    Kibanaとは、Elastic社が提供するログデータ可視化ツール。同社のメインプロダクトであるElasticsearch同様、世界中の企業で利用が進んでいる。ビッグデータ解析の時代において、今後ますます存在感を増していく可能性を秘めたプロダクトといえるだろう。

    このKibanaは、現開発リーダーのRashid Khan氏が、2013年にElastic社にジョインするより前にOSSとして開発を始めたもの。以前インタビューした同社の創設者で現CTOのShay Banon氏同様、その開発哲学にはオープンソースコミュニティの影響が色濃い。

    今年12月16日、東京・六本木で開催されたElastic社の技術カンファレンス『elastic{on} Tour 東京』で来日したKhan氏に、Kibana開発に至った経緯や今後の構想、さらには理想とするエンジニア像について聞いた。

    自分が直面した問題は、きっと多くの人も抱えた問題のはず

    Rashid Khan氏

    ―― エンジニアの仕事に就くようになった経緯を教えてください。

    職業としてエンジニアをやるようになったのは、アリゾナ州立大学を卒業してJPモルガン・チェースに入社したのがスタートです。でも、私の人生はそれ以前から常にエンジニアのようなものだったと言えます。

    実は母がAppleの社員だったので、小さいころからAppleのチャイルドケアセンターに連れていかれたものです。当然、そこにはさまざまなコンピュータがありましたから、エンジニア的なバックグラウンドはそのころに始まりました。

    早くからプログラミングを学び、高校生のころにはコンピュータネットワークの修理やWebサイトの作成などのアルバイトをしていました。ティーンエージャーのころからオープンソースのプロジェクトにもかかわるようになっていきました。

    ―― 職業としてのエンジニアになって以降、JPモルガンに始まって、平和部隊(アメリカ連邦政府が運営するボランティア団体)やThe Village Voice誌など、幅広い業種にかかわっているようですね。

    それは必ずしも意図したものではありません。

    オープンソースプロジェクトのメンテーナーをやっていた経歴が目に留まり、JPモルガンに入った時はネットワークマネジメント部門の採用でした。その後、JPモルガンの買収もあり、Net AndroidというVoiceOverIP技術の小さな会社に移りました。

    Net Androidでの仕事は少々退屈だったので、2年半で仕事を辞めて平和部隊でのボランティア活動に専念することにしました。

    ―― なぜ、突然ボランティア活動を?

    The New York Timesを読んでいて、タイの地域医療課題に関する記事を目にしたのがきっかけです。その記事には、医師は各地域の看護師からの質問一つ一つに電話で回答しているという現状が書いてあって、「これは非常に効率が悪い」と思ったんですね。

    そこで、同じ問題を抱えていたナミビアで、看護師やボランティアの人たちの電話番号をリスト化し、一つの電話番号で連絡が取れるようなプラットフォームを開発しました。

    ―― それからThe Village Voiceを経て、2011年にKibanaの開発を始めることになったんですね。どのようなきっかけがあったのですか?

    The Village Voiceが使っていたインハウスのシステムで、毎朝早くからバグやエラーのアラートが鳴ることにうんざりしていたんです。ソフトウエアでこうした環境を改善できないかと考えるようになりました。

    当時はこうしたバグやエラーの原因が一見しただけでは分からなかったので、その原因を突き止める必要がありました。これがKibana開発のトリガーになったんです。

    きっかけはパーソナルな動機でしたが、当初からOSSとして公開する考えを持っていました。私がこういう問題に直面しているのだから、きっと他の人も同じ問題を抱えているに違いないと考えたのです。

    2週間ほどかけてKibanaのベースとなるようなものを作り、LogstashのIRCで公開しました。そこで使ってくれた人たちを助けるところから、Elasticとの関係が始まりました。

    素晴らしいアイデアを形にするのに役立つことこそ重要だ

    ―― Elasticに正式にジョインすることになったのはなぜですか?

    Elasticの創設者であるShayが、最初にコンタクトしてきてくれたのは2012年10月でした。2回、3回と話をしたのですが、彼は本当にカリスマ的な人物で、すぐに「これは面白そうだ」と感じましたね。

    そこでは主に、もし私がフルタイムでKibanaにかかわるようになったらどんなことが起こるかという話をしました。そこで、Shayも私も同じビジョンを描いていると気付いたので、2013年1月に正式にスタートすることになったんです。

    ―― そのビジョンとは?

    ElasticsearchにKibanaが加わることで、ビッグデータの世界でこれまで実現できなかった本当の価値を提供したいという話をしました。そして、エンジニアだけでなく万人が使えるものにしたいという考えで一致したんです。

    Shayも私も、「ソフトウエアをもっともっと簡単なものにしたい」という共通の考え方を持っていました。

    良いエンジニアであれば独力でモノを作ることができますが、素晴らしいエンジニアが必ずしも素晴らしいアイデアを持っているとは限らない。素晴らしいアイデアを形にすることに役立つことこそが重要だと思っています。

    ―― エンジニアの中には、コードを書くことそのものにモチベーションを感じる人もいますよね。Rashidさんのエンジニアとしてのモチベーションは、世の中の役に立つこと?

    エンジニアとは「モノを作るのが好きな人」のことだと思っています。私自身は、例えばガレージに行って自分の車をいじるのも大好きだから、その意味では生粋のエンジニアです。一方でコードは、あくまでそうしたモノを作るためのツールに過ぎない。

    そして、そうやって作ったものでみんなを幸せにしたい、人の人生に役立ちたいということも常に考えています。

    そう考えるようになったルーツは、おそらく小さいころに受けた母の教えにあるのではないでしょうか。母からは「人のためになることをしろ」、「人とシェアしながらやることを考えろ」と口癖のように言われてきました。

    その考え方は、ティーンエージャーのころからかかわってきたオープンソースコミュニティそのものであるとも言えます。

    私自身、コミュニティに入ってさまざまな人に助けてもらうことで、コンピュータのことをイチから学んできました。“Pay it forward”、つまり自分が助けてもらったら、「今度は自分が助ける側に」と考えるのがオープンソースの考え方です。

    そうした場所で育った自分は、自然と「人を助けたい」と考えるようになっていきました。オープンソースコミュニティがなかったら、今日の私のキャリアはなかっただろうと思います。

    トレンドを正しく理解するのは優秀なエンジニアの必要条件

    10代のころからOSSコミュニティに携わってきたKhan氏が考える「優秀なエンジニア像」とは?

    ―― Elasticのエンジニアにはどんな人が多いのですか?

    全員がオープンソースのデベロッパーであり、例外なくクリエイターです。その中には素晴らしいコードを書きたいというモチベーションの人もいます。そして、全員が良いプロダクトを作り、それを大きくしていきたいと考えています。

    自分のやりたいことをやっているという意味では利己的とも言えますが、それをやらせてくれる自由なカルチャーがあるのがElasticという会社です。

    ―― 利己的に自分のやりたいことを突き詰めることと、会社として物事を進めることは、時に相反することもあるのでは?

    確かにそういう問題は起こり得ますが、チームには技術に専念したい人とともに、マーケットのことを理解して全体としてどうしていかなければならないかが分かる人材もいます。クリエイターのための自由度を確保しつつ、ビジネスとして前へ進むこととのバランスは常に意識しているところです。

    それに、エンジニアの多くはElasticが会社になる前からElasticの製品にオープンソースのプロジェクトとしてかかわってきたデベロッパーですから、社員となった今は好きなことをやってお金をもらっているような感じですね。

    ―― オープンソースコミュニティにおける「優秀なエンジニア」を定義するとしたら?

    技術の専門家であることは必要ですが、それだけでは不十分です。問題を見つけることができ、それをどのように解決するかを考えられることが重要です。

    また、我々がエンジニアを採用する際には、候補者には必ず「今、業界で起こっていることを本当に理解しているか」を確認する質問をします。どのトレンドをフォローし、逆にどのトレンドをスルーすべきか。かなりの時間をかけて、プログラマーとしての資質を見ます。

    シニアエンジニアのポジションには十分な経験も求めるし、我々の仕事に関するかなり突っ込んだ質問もします。スタック全体についてもそうだし、プロトコル、データベース、データストア、セキュリティ、テスト、デバッグ、アプリケーション……と質問は多岐に及びます。

    通常、面接は4回から5回。1回の面接時間は30分で終わる時もあれば、2時間かかることもあります。一緒に働くからには楽しんで仕事がしたいので、できるだけたくさんのチームメンバーが直接話すことで、社交的な人かどうかもチェックします。

    よりパワフルに、より拡張性のある方向へ

    ―― Kibanaは現状、どんな体制で開発しているのですか?

    開発陣は全部で15人。何人かは1箇所に集まっていますが、それ以外は全米に散らばっています。テクニカルリードである私自身は、Elastic社においてKibanaが今後、どのような位置づけになるのかといったことについて時間をかけて考える立場にありますが、同時に実際の開発にも深くかかわっています。

    ―― Kibanaは今後どういう方向に進んでいくのでしょう?

    先ほども言いましたが、万人にとって使いやすいものというのが一つのゴールです。かつ、もっとパワフルな、もっと拡張性のあるものにしていきたい。

    我々は全てのオープンソースデベロッパーのことを大切に考えています。ElasticsearchやLogstashと同じようにプラグインを使えるようにすることで、デベロッパーが新しい機能を簡単に加えることができるようにしていきたい。

    現状のKibanaはまだ「アプリケーション」ですが、将来はElasticスタック全体を管理することにも使えるUIにすることで、Elasticsearchなどを使うのにもコードやCLを使う必要がなくなるようにしたいと考えています。

    ―― チームはさらに拡大していく?

    今も積極採用中です。かなり大きなチームになっていかないと、我々が思い描く野心的なゴールは達成できないと思っています。Kibanaチームにはまだいませんが、優秀でありさえすればもちろん、日本での採用も可能性はあるだろうと思っています。

    取材・撮影/伊藤健吾 文/鈴木陸夫(ともに編集部)

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集






    サイトマップ