(インタビュー) Elastic{ON} 2016: Elasticの中の人に聞いてみた(開発チーム編) #elasticon

2016.03.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事はElastic{ON} 2016の会期中に行った、Elasticの中の人へのインタビューのレポートです。

今回お話を伺ったのは、Elasticの開発チームメンバーであるMr.Ryan Ernst。

DSC_0116

うっ、フォーカスが。。

サポートチーム編はこちら

インタビュー

jPJYpl0u7KVdXDI1456890575_1456890589

Ryanさんについて

CM「まずはRyanさんの自己紹介をお願いします」
Ryanさん「ElasticsearchのCore Engineerを担当しています。またApache Luceneのコミッターでもあります。」

CM「開発チームの体制を教えてください」
Ryanさん「ElasticsearchのCore Engineerは世界で30人ぐらいのメンバーがいる。メンバーはアメリカ全土、ヨーロッパ全土などほとんどのタイムゾーンにいる。APACにはまだいない。」
CM「ElasticsearchのCore Engineerとは具体的にどういったロールでしょうか?」
Ryanさん「Elasticには様々な製品を開発しているメンバーがいる。Elasticsearch Core EngineerはElasticsearch開発を専属としているチーム。私たちのチームには、様々なレベルの機能や専門的な部分をカバーしている開発者がおり、そのようなチームの多様性がチームを素晴らしくしている。」

開発ツールについて

CM「開発ツールにはどのようなものを利用していますか?」
Ryanさん「エディターはIntelliJ、Eclipseを利用しているメンバーが多い。中にはEmacs使いもいる。Emacs使いは開発だけではなく、メールなどの業務も全てEmacsでこなしている(笑)」

Ryanさん「リポジトリはGithubを利用している。プロジェクト管理、チケット管理も全てGithubを利用している。」

CM「デプロイプロセスや試験ツールはどのようにしていますか?」
Ryanさん「CIツールにJenkinsを利用している。デプロイ、試験はJenkinsにより自動化している。AWS環境に複数のJenkinsサーバを立てていて、JDKのバージョン毎やOSのディストリビューション毎、Gitのブランチ毎に環境を用意している。Luceneも同じような開発プロセスとなっている。いろいろなLinuxシステムで実際にインストールすることなくテストするためや、ローカル環境での開発にVagrantも利用している。」

gui65oIRwIqAduT1456890781_1456890786

コミュニケーションについて

CM「開発者間のコミュニケーションツールは何を利用していますか?」
Ryanさん「開発者同士はSlackでプロダクト毎によりチャンネルを作成し、コミュニケーションを図っている。また他にはzoomも利用している。zoomはAlwaysOnルームがあり、開発者同士が雑談できるコミュニケーションの場も設けている。」

CM「先ほどメンバーが様々なタイムゾーンで働いているという話がありましたが、世界中にメンバーが離れていて、困ることはありますか?」
Ryanさん「異なるタイムゾーンで働いていることで知らないところ(勤務時間外)でプロダクトの方針が決定してしまっていることがある。しかし、フレキシブルな体制なので、決定事項も再オープンして話し合うことができるので、大きな問題にはなっていない。」

CM「逆に離れていることのメリットはありますか?」
Ryanさん「サポートメンバーが24/365で各タイムゾーンで働いていることから、サポートメンバーが解決できない問題も開発メンバーがリアルタイムにサポートすることができる。」

Elasticsearchについて

CM「日本ではログの蓄積やデータ蓄積・分析などメジャーなユースケースの利用が多いが、ユニークなユースケースはありますか?」
Ryanさん「私は、コアな部分の開発をしているので、ユースケースに直接関わるような機能の開発をしていない。ユースケースから新機能を切り出して、いかに実装するのかを考えている。」

CM「RyanさんがElasticsearchの好きな機能は?」
Ryanさん「Apache Luceneのコミッターをやっているので、いかにElasticsearchがLuceneの機能・ポテンシャルをフル活用できるかに注力している。Elasticsearch Core EngineerメンバーにはLuceneのコミッタが多くいることから、機能追加や問題がElasticsearchで変更するべきか、Lucene側で変更するべきかを考え、対応している。Elasticsearchは根本の問題を対処している製品なので、好きだ」

AHfyYIanPHoM5Mf1456890692_1456890698

Elasticsearchの普及活動について

CM「日本ではまだエンジニア向けの用途としての利用がメインでビジネス向けの事例が少ない状況です。今後、Elasticsearchをより多くのユーザーに利用してもらうためにどのようなことをしていけばよいでしょうか?開発者にする質問ではないような気もしますが、、、笑」
Ryanさん「Elasticsearchは各種言語サポートに対応している。日本語向けだとKuromojiを開発している。開発者としての普及活動としては、Elasticsearchをよりよいものにするために要望のある新機能、パフォーマンスの向上を実装することに注力している。」

まとめ

Apache Luceneも開発しているRyanさんならではの回答をいただけ、ElasticsearchはApache Luceneの開発と蜜に連携し、開発されたプロダクトだということを実感しました。
インタビューに応じて頂いたRyanさん、サポート頂いたElasitc Japanの皆さん、ありがとうございました!

DSC_0118