Elasticのストーリー

Elasticsearchの開発エピソードから、主力製品群の誕生、エキサイティング(でカオス)な開発の変遷、Elastic Stackの導入、現在進行形の進化まで、Elasticのユニークなストーリーをご紹介します。

2000

レシピアプリを作るつもりで

シャイ・バノンは、料理専門学校に入学した妻と共にロンドンのアパートに住んでいました。妻が持ち帰るレシピが日々増えてゆくのを見た彼は、空き時間に検索エンジンを作ろうと考えます。

こうして最初に完成した検索エンジンがCompass、Apache Luceneをベースにした2番目の検索エンジンがElasticsearchです。シャイはElasticsearchをオープンソースとしてリリースし、IRCに#elasticsearchというチャンネルを開設してユーザーの反応を募りました。

反応は非常に好意的でした。ダウンロード数は自然に、飛躍的に増えてゆき、コミュニティが生まれ、エンジニアたちが関心を寄せました。スティーブン・スフールマン、ユリ・ボーネス、サイモン・ウィルナーが合流し、共同で会社を立ち上げることになったのです。

Elastic Founders Steven Schuurman, Uri Boness, Simon Willnauer and Shay Banon

検索を、もっと便利に

Elasticsearch Inc.という名称で会社が設立されたのと同じ頃、2つのオープンソースプロジェクトが完成しようとしていました。

1つはジョルダン・シセルが手掛けたLogstashです。オープンソースで、Elasticsearchを含むさまざまな"スタッシュ"にログを送るプラグ型の入力ツールでした。ジョルダンはログデータを可視化するUIも開発中でしたが、まだ不安定でした。

幸運にも、同じ課題に取り組んでいたのがラシード・カーンです。Kibanaと名付けたオープンソースUIを開発していました。

シャイとジョルダン、ラシードは以前同じプロジェクトに参加したことがあり、チームの結成に時間はかかりませんでした。Elasticsearch、Logstash、Kibanaから頭文字を取った主力製品群はELK Stackと命名されます。

その後、監視プラグインのMarvelと、セキュリティプラグインのShieldがそれぞれ有償でリリースされました。

Foundを迎え、Elasticに進化

サンフランシスコで開かれたElastic{ON} 2015で、2つの大きな発表を行いました。1つがElasticへの社名変更です。新名称は、進化を続ける製品エコシステムとユースケースにより合うものになりました。2つ目はElasticがFoundを合併し、AWSでマネージドサービスとしてElasticsearchを提供することです。1つのチームとなったことで、よりシンプルで、包括的なサービスをお届けできるようになりました。

変化の時

設立からまもない頃、エンジニアたちはそれぞれ好きなアプローチでソフトウェアを開発、リリースしていました。良い製品になるなら、好きなバージョンで出してOK。だからKibanaにはベータ版があり、Logstashはマイルストーンで区分され、Elasticsearchにはリリース番号がありました。プラグインも作り放題。しばらくはそれで問題ありませんでした。

やがて多くの場面で製品の活用が進み、ユーザーのために性能を向上する必要も生じました。キャパシティを増加させ、多くのプルリクエストに対応し、新しいプラグインや機能拡張の開発が進められました。こうして性能は向上しましたが、技術的には複雑となり、混乱が生じました。

たとえば、Elasticsearchのバージョンが1.7で、とあるプラグインのバージョンは2.3だが、互換性があるのか、ひっそりとフェイルしているのかは相当の検証を経なければわからない、といった状況です。結構な問題でした。

当時の会話を再現するとこんな感じです。「Shieldを使うには、Elasticsearch 1.4.2を導入して。Watcherを使わないならね。Watcherを使うんだったらElasticsearchは1.5.2。あとその場合互換性があるのはKibanaの4.0.xとLogstash 1.4.xとShield 1.2.xとWatcher 1.0.xだよ」

これが泣く子も黙る"バージョン地獄"です。サポートマトリックスでの対応には限界がありました。変化の時でした。

クールなビートをプラス

プロダクトチームがバージョン問題と格闘していた頃、新たなプロジェクトが産声を上げました。2015年、ベルリンを拠点とする夫婦のエンジニアチームがElasticに参加し、彼らが開発した軽量なシッパーのPacketbeatが製品ラインナップに加わります。

PacketbeatはElasticに新たな発想をもたらしました。ネットワークデータや、ログ、メトリック、監査データ、あらゆるエッジデバイスのデータも専用の軽量シッパーでLogstashとElasticsearchに送ってみたらどうだろう?―こうしてBeatsが誕生しました。

Bonanzaをリリース

2015年10月、複雑化していたバージョンと互換性の問題に転機が訪れます。

"Release Bonanza"と銘打ち、Elasticは史上はじめてすべての製品を同じ日にリリースしました。Elasticsearch 2.0、Logstash 2.0、Watcher 2.0、Shield 2.0、Kibana 4.2を同日に、1か月後にBeats 1.0も公開されました。

この調整には大変な苦労がありました。エンジニアチームは以前とまったく異なるアプローチを導入し、協力して製品を開発・テストしました。結果としてユーザーには使いやすくなり、製品としての信頼性も大幅に向上させることができました。

クラウドでサービスを開始

ダウンロード版公開からわずか数か月後、Release Bonanzaはクラウドでも提供されます。Foundが提供していたサービスを引き継ぎ、AWSのElastic CloudにElasticsearchとKibanaのオフィシャルサービスが登場しました。

Elastic Stack 5.0

Elasticsearch 2.0に足並みをそろえたRelease Bonanzaは、製品公開のスタイルを大きく洗練させました。次にその進化を推し進めたのが5.0です。5.0ではより統合が進み、十分なテストを経て、かつてない水準の使いやすさが実現されました。

すべての有償プラグインはX-Packという1つの機能拡張になり、5.0と同時にリリースされました。Elasticのコア製品に対応するセキュリティ、監視、アラート機能が含まれたほか、ロンドンを拠点とするPrelertの買収後、機械学習機能も加わっています。

モジュールでシンプル化

2017年3月リリースのバージョン5.3から、Filebeatは正式に"モジュール"の概念を導入しました。モジュールは一般的なログフォーマット(Apache、Nginx、MySQLなど)に対応し、Elastic Stackへのログのシッピング、パース、格納、分析、可視化まで一連の設定を安全に行います。モジュールで、データセットからダッシュボードまでのすべてのプロセスを簡単にはじめることができます。

MetricbeatとPacketbeat向けに専用のモジュールが登場し、後日Logstash向けにArcSightとNetFlowデータに対応するモジュールも加わりました。

ECEという新たなフロンティア

Elasticでは当初から、ユーザーが製品をデプロイする手順を極力シンプルに保ってきました。その技術を活かしたサービスがElastic Cloudと、ECE(Elastic Cloud Enterprise)です。ビジネスの規模を問わず、ホスティングされた環境下で、製品の長所を最大に活かしたデプロイが可能です。ECEではクラスターが1つでも、数千でもシームレスに管理でき、あらゆる環境でElastic製品とソリューションを最適に管理・制御できます。

ソリューションを届ける

モジュールが増え、Elastic Stackはロギングやメトリックまで幅広いユースケースに手軽に活用できるようになりました。さらにこの年、コペンハーゲンを拠点として、APM(アプリケーションパフォーマンス監視)を手掛けるOpbeatと、サンフランシスコで事業用検索技術を開発するSwiftypeがElasticに加わり、Elastic Stackの機能が一層充実しました。

Elasticは多くの問題にスムーズな形でソリューションを提示する企業へ成長を遂げました。Elasticのソリューションは、高い自由度のあるツールタイプのものから、パッケージに近く、手軽に使えるものまで豊富に用意されています。その一つひとつが"リアルプロダクト"であり、しかもたった数分でデプロイすることができます。

有償機能のコードもオープン化

Elasticは、ソースコードからコミュニケーションまでとにかく"オープン"にすることを大切にしています。このスタンスに基づき、2018年、有償機能のコードがオープン化されました。誰でもコードをチェックしたり、コメント、改良できるようになることで、開発の迅速化やコミュニティの活性化を図るものです。

オープン化した結果、Elastic Stackはさらに簡単に使いはじめることができるようになりました。現在、Elasticsearch、Kibana、Beats、Logstashはインストール時点で有償機能を搭載しています。以前とコードは変わらず、機能性も高いままです。Elasticはこのオープン化に大きな手ごたえを得ています。

鐘を鳴らして

米国東部標準時の10月5日、午前9時30分にニューヨーク証券取引所の鐘を鳴らし、Elasticは正式に公開会社となりました。取引フロアには史上最大級となる230人の社員が集い、世界に「分散」する仲間と共に記念すべき瞬間を祝いました。Elasticが行く長い旅の中では、わずかな1歩。でも、大切な1歩になりました。

Elasticのストーリーはこれからも続いてゆきます。今後の展開にもぜひご注目ください。