(レポート) Elastic{ON} 2016: All the Data That’s Fit to Find: Search #elasticon

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

はじめに

本記事はElastic{ON} 2016のセッション、「All the Data That's Fit to Find: Search @ The New York Times」のレポートです。

スピーカーはNew York TimesのBoerge Svingen。

DSC_0192

レポート

・テキストサーチで3つ考えるべきことがある ・Keep It Simple。 ・なぜGoogleを使わないのか? ・Elasticsearchはテキストサーチにおけるright toolか?

・Background。20年前は紙のみ、今はwebへ。 ・New York Timesの最初の検索エンジンは1969年にLaunch。 ・以降、様々な検索の仕組みを使ってきた。

DSC_0193

・Explicit search。エンドユーザーが直接検索。nytimes.comやネイティブアプリ、検索API、timesmachineサイト、e.t.c... ・Implicit search。softwareからの検索。最新記事一覧など。

DSC_0194

・Ingestion。検索元は様々。CMS、レガシーシステム、ファイル。レイテンシは1sec以下、レイテンシが低いことが重要。

DSC_0195

・検索のユースケース。記事検索、あなた自身が書いたものの検索、レビュー、レシピ、カジュアルにニュースを検索できること。 ・なぜGoogleを使わないのか?Webサイトを自分でコントロールしたい、ネイティブアプリでは使えない、自分たちのほうが自分たちのコンテンツのベターを知っている。

・セットアップ。全てAWS。デプロイは自前のツール。NagiosとNew Relicでモニタリング。SumoLogicでログ管理と解析。

DSC_0196

・システムセットアップ。2つの本番環境クラスタ。 DNSベースでフェイルオーバーさせている。本番用ESクラスタは16node(m1.xlarge)

DSC_0197

・構成図。SQS、S3、MongoDB & Elasticsearchを活用。Elastic BeanstalkでHandler、Normalization、Merge、Indexerを構成。

DSC_0198

・私たちのこれから。 ・シンプルに。全てのドキュメントをElasticsearchへ。MongoDBの廃止。Demand driven API化。

DSC_0199

・Replay。全てのコンテンツをKafkaへ。

DSC_0200

・Keep all cluster is busy。可視化。Vagrantを利用。フルパイプラインの構成が簡単。

DSC_0201

・将来構成図。CMSからKafkaへ、Logstash経由でElasticsearch。

DSC_0202

・Googleより良いところを見つけ出す。ユーザーを知る。違いを知る。 ・Infrastructure is hard。デプロイ、アップグレード、reindex、検索クラスタの作成。それらを簡単に。 ・具体的に考えるべきこと。インフラのバージョン管理。Vagrantによる構成。サーバをImmutableに。新しいstackの作成を簡単に、かつ自動的に。

DSC_0203

・Elasticsearchはテキスト検索にしか使えない?いや、2.0で新しい機能がたくさん追加。SearchだけじゃなくAnalyticsの機能が大幅に増えている。

まとめ

長い歴史のある新聞社なだけに、いろいろな試行錯誤があるのと、現在はフルAWSでクラウドネイティブに構成されていることが分かって、面白いセッションでした。それにしても、今回はどこに行ってもKafkaの話題があがりますね。これから大きく注目されていくのではないでしょうか。