検索
ソフトウェア&テクノロジー

Docker: 多数のコンテナの検索を容易に

課題

巨大化を続けるデータベースでの高性能な検索を、運用リソースに過度な負荷をかけることなく実現する。

ソリューション

Elasticのホスト/管理型Elasticsearchサービス、Elastic Cloudを使用することで、成長を続けるDockerコミュニティーに、スケーラブルでシームレス、かつ可用性の高い検索と発見のエクスペリエンスを提供します。

概要

課題

  • 簡単かつコスト効率よく、増え続けるデータ量に見合った検索アプリケーションの拡張
  • 優れた検索と発見のエクスペリエンスを確実に
  • 運用上の複雑な問題を管理

ソリューション

  • Elasticsearchを使用して、より速く、より良い検索結果を提供
  • 持続的に安定した検索エクスペリエンスを保証するホスティングサービスを選択
  • ElasticsearchインフラをElastic Cloudに託すことで、運用のオーバーヘッドを削減

Docker社は、Dockerオープンソースプラットフォームの開発会社であり、Dockerエコシステムの主要なスポンサーです。Baidu、BBC、eBay、ゴールドマン・サックス、ING、Spotify、Yelpをはじめ、何万もの企業で使用されるDockerは、開発者、 システムアドミニストレータ向けの分散アプリケーション用のオープンプラットホームで、アプリケーションをどこでも開発、出荷、起動することができます。

Dockerコミュニティは、ロードバランサから時間管理サービスのためのデータベースまで、あらゆるものに対して短時間で大量のコンテナを作り出します。これらのビルディングブロックは、高いセキュリティ、パフォーマンス、組織的利点があり、簡単に展開、準備することができます。

「Elasticsearchでは、柔軟なクエリを実行できます。どのフィールドで、ブースト、ソートするか、ドキュメントのスコアにするかを指定できます。」

– Ken Cochrane, エンジニアリングマネージャー

問題:RDBMSの増大

Dockerのコンテナライブラリは発見可能にする必要があり、その量がすさまじいため、この機能のベストなユーザー体験は検索であると判断されました。従来のRDBMSの当初の検索機能の実装では、Dockerに必要な性能と要件が満たされていませんでした。Dockerの開発者ケン・コクランは「以前使用していたデータベースに限界を感じていました。データベースに負荷がかかり、データを追加するほど遅くなりました」と語っています。

RDBMSの廃止を決定した後、DockerはElasticsearchと他の検索技術を比較検討しました。その結果、Elasticsearchを次世代プラットフォームに採用しました。

Elasticsearchへの移行を決断したDocker社は、次に運用について考慮しました。Elasticsearchのような分散データベースの管理は、実行可能なクォーラムの維持、高い可用性のために複製が正しく構成されるのを確実にすること、バックアップのアーカイブ/管理など、注意を要する運用上の課題がいくつかあります。またその他の複雑さを考慮し、完全なホスト型プロバイダにElasticsearchインフラを依頼することにしました。

解決策:鍵となる懸念事項を分離

Dockerは、種々の異なる基準において、ホスト型のElasticsearchで使用可能なオプションを評価しました。Dockerの開発者ジョン・コスタは、「他にもホスト型のElasticsearchベンダーを検討しました。比較評価する際は、場所、インデックス数(開発、ステージ、本番)、利用可能なリソース(メモリ)、高可用性オプション、価格について考慮しました。その結果、ベストなのがElastic Cloudでした」と話しています。

Dockerについての重要な課題は、一貫したパフォーマンスと信頼性でしたが、Elastic Cloudの専用Elasticsearchクラスタは、この2つの条件にマッチしました。まず、確保されたメモリとCPUを持つ専用クラスタを基盤とするElastic Cloudのホスティングモデルは、アプリケーションの継続的な動作を保証します。次に、Elastic Cloudの高可用性オプションでは、データセンターが完全に停止したような場合でも、検索データベースの使用には影響が出ないようにできるため、Dockerにさらなる保証が追加されます。

さらに、Dockerのインデックス割り当て要件は、Elastic Cloudのアーキテクチャにぴったりでした。Elastic Cloudの顧客は、それぞれ使用に制限のない専用のElasticsearchクラスタを割り当てられるので、適切だと判断した時に、自由にインデックスを割り当てることができます。

「いくつかのプロバイダを検討した結果、耐障害性、迅速なサポートと運用のしやすさにおいて、Elastic Cloudが我々のニーズにマッチしていることが分かりました。」

– ジョン・コスタ シニアソフトウェアエンジニア

メリット: プロダクションへの移行

本番環境にElasticsearchを移行すると、Dockerが求めていたパフォーマンスの向上効果が現れました。プロダクションRDBMSにかかる負荷が著しく減少し、また、検索レイテンシとスループットが大幅に改善されました。さらに、より一般的で関連性の高い検索結果が得られるElasticsearchのフィールドブースティングとファンクションスコアクエリの使用により、Dockerの検索結果の質が大幅に向上しました。

Elastic Cloud上にDockerインデックスを展開させる作業は素早く簡単でした。Dockerのジョン・コスタはこう語ります。「プロダクションへの移行は簡単でした。必要なのは、支払い用のクレジットカードを追加し、プロダクション設定をするだけです。インデックス化、メモリ設定、信頼性の設定についていくつか質問をしましたが、Elastic Cloudのサポートスタッフは、素早く丁寧に答えてくれました」

新しいインフラストラクチャーを使用したDockerは、より速くより良い検索結果を提供することが可能です。つまり、Dockerのプラットフォームを使用する開発者にとっても使いやすいのです。Dockerにとって非常に重要なこと:パワーと利便性の提供を中心に構築されたツールには、同様の特性を有するサポートサービスが必要なのです。Elasticsearchは、素晴らしい開発者エクスペリエンスの提供という、Docker社の重要な使命を後押しし、同社にとって強力なツールであることを証明しています。

「Elastic Cloudは、サービスと素早い応答に重点を置いていて、Dockerの展開成功を支援してくれました。サポートは非常に反応が早く、私にとって完璧です!」

– ロベルト・ハシオカ、ソフトウェアエンジニア