Mais conteúdo relacionado
Semelhante a Elasticsearch at CrowdWorks
Semelhante a Elasticsearch at CrowdWorks (20)
Elasticsearch at CrowdWorks
- 3. @mumoshu
• 2008年~ NECビッグローブ
• 2010年~ フリュー
• 2013年~ グリー
• 2014年~ クラウドワークス
• 元々Scalaエンジニア
• 今はRuby/インフラエンジニア
- 16. Elasticsearchなし(db.m3.large)
• Completed 200 OK in 7096.3ms (Views: 217.5ms
| ActiveRecord: 6794.6ms | Elasticsearch: 0.0ms)
Completed 200 OK in 1676.2ms (Views: 211.3ms
| ActiveRecord: 1409.3ms | Elasticsearch: 0.0ms)
Completed 200 OK in 1657.5ms (Views: 210.7ms
| ActiveRecord: 1405.8ms | Elasticsearch: 0.0ms)
- 17. Elasticsearchあり(Found 4GB)
• Completed 200 OK in 648.7ms (Views: 355.5ms
| ActiveRecord: 77.6ms | Elasticsearch: 194.5ms)
Completed 200 OK in 580.4ms (Views: 372.7ms
| ActiveRecord: 67.4ms | Elasticsearch: 118.6ms)
Completed 200 OK in 626.9ms (Views: 367.8ms
| ActiveRecord: 71.1ms | Elasticsearch: 152.2ms)
- 19. 高可用性
• Elasticsearchが落ちた場合はInnoDB FTS(Full-text
search)で代替 (いわゆるGraceful Degradationの仕組み)
• 一部ユーザにだけElasticsearchによる検索を公開
(Feature Toggleの仕組み)
• 非同期でインデックス更新、失敗時はインターバルを変
えながらリトライ
• サービス無停止でインデックス再構築
- 20. 検索性能重視
• Dynamic Scriptingオフ
• Object Type/Nested Objects
• Parent/ChildでもNested Type/Documentsでもなく
• インデックス更新
• Elasticsearchのドキュメントを必要なフィールドだけ部分更新
• http://www.elasticsearch.org/guide/en/elasticsearch/guide/
current/partial-updates.html
- 23. Gems
• elasticsearch-rails
• elasticsearch-model
• crowdworks/gracefully
• crowdworks/elasticsearch-model-extensions
• delayed_job
- 27. Elasticsearch as a service
• ダウンタイムなしでクラスタサイズ変更可能
• ダウンタイムなしでElasticsearchアップグレード可能
• 最小クラスタ: メモリ256MB、ディスク2GB
• 最大クラスタ: メモリ32GB、ディスク256GB
• SSDあり
• HA構成(2つ以上のDCにサーバを分散)可能
• ただし日本リージョンは未対応…
- 28. Elasticsearch as a service
• Elasticsearchに(まだ)ない機能
• Web UIでクラスタ設定変更
• セキュリティ
• httpsとBasic認証、ACL
• read、read/write用ユーザを作成可能