Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 1
検索の運用って
難しいよねって話
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
自己紹介
● Solr ユーザー
● サーバー側
● アプリケーション層
● Ruby好き/PHP苦手
● @setsuna82001
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
会社紹介
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
本題
検索の運用って
難しいよねって話
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
😇 運用 is 難しい 😇
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
何が難しいのか
例えば……
● クラスタ・ノード管理
● 負荷対応
● 設定ファイル更新
● バージョンアップ
● 日常の運用
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
弊社では…
● 個人に依存すると障害対応ヤバい
● ホットデプロイ
● サービスへの影響大・依存大
● インフラ知識も必要
● マニュア...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
事故は起こるべくして起こる
@ .
in 2018 GW
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
当時の構成
Availability Zone
Availability Zone
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
何が起こったのか
● アクセス集中による高負荷状態
● 検索サーバーが1台死→片系のサービス全停止
● 生存する片系にアクセス集中
● ...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
逆に起きて良かった
● 課題
○ 単一障害点の解消
○ 個人依存しないチーム作り
● 対応
○ パフォーマンスチューニング
○ 停止する...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
単一障害点
● 全体的な構成の見直し
○ クラスタへのリクエストはLBを噛ます
○ 負荷の偏りによる連鎖停止を防ぐ
○ ZooKeepe...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
パフォーマンスチューニング
● 検証用クラスタにリクエストを複製
○ nginx の post_action を使用
○ 更新も発生する...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
検証環境の構築
Availability Zone
1台だけpost_action
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
レクチャー会の実施
● Dockerを使い各人に構築から経験してもらう
○ DockerCompose使うとクラスタのスクラップ&ビルド...
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
まとめ
運用 is 難しい
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
だからこそ
チーム一丸となって
🙌 動けると楽しい 🙌
Copyright (C) 2019 ActIndi, Inc. All Rights Reserved.
ありがとうございました
Upcoming SlideShare
Loading in …5
×

Search engineering tech talk 2019 summer

1,032 views

Published on

Search Engineering Tech Talk 2019 Summer

Published in: Technology
  • Be the first to comment

Search engineering tech talk 2019 summer

  1. 1. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 1 検索の運用って 難しいよねって話
  2. 2. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 自己紹介 ● Solr ユーザー ● サーバー側 ● アプリケーション層 ● Ruby好き/PHP苦手 ● @setsuna82001
  3. 3. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 会社紹介
  4. 4. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 本題 検索の運用って 難しいよねって話
  5. 5. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 😇 運用 is 難しい 😇
  6. 6. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 何が難しいのか 例えば…… ● クラスタ・ノード管理 ● 負荷対応 ● 設定ファイル更新 ● バージョンアップ ● 日常の運用
  7. 7. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 弊社では… ● 個人に依存すると障害対応ヤバい ● ホットデプロイ ● サービスへの影響大・依存大 ● インフラ知識も必要 ● マニュアル作成+知見の共有
  8. 8. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 事故は起こるべくして起こる @ . in 2018 GW
  9. 9. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 当時の構成 Availability Zone Availability Zone
  10. 10. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 何が起こったのか ● アクセス集中による高負荷状態 ● 検索サーバーが1台死→片系のサービス全停止 ● 生存する片系にアクセス集中 ● 検索サーバー全停止 ● アプリケーションサーバーが死→起→即死 ● サービス完全停止
  11. 11. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 逆に起きて良かった ● 課題 ○ 単一障害点の解消 ○ 個人依存しないチーム作り ● 対応 ○ パフォーマンスチューニング ○ 停止する恐怖よりスケールアップ ○ レクチャー会の実施
  12. 12. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 単一障害点 ● 全体的な構成の見直し ○ クラスタへのリクエストはLBを噛ます ○ 負荷の偏りによる連鎖停止を防ぐ ○ ZooKeeperを奇数台構成にする ● クラスタ管理(ZooKeeper)とノード(Solr)は別々のサーバにする ○ 1台のサーバー停止がサービスの不安定化に繋がる ○ データ欠損ならまだマシでクラスタ破損もあり得る? ● リリース前の入念な検証 ○ 検証用のクラスタを構築 ○ JMeterで負荷試験を実施してQPSなど限界値を把握する ○ WEBアプリケーションが受けるリクエストを複製して流して セグメントやキャッシュの動作確認
  13. 13. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. パフォーマンスチューニング ● 検証用クラスタにリクエストを複製 ○ nginx の post_action を使用 ○ 更新も発生するので専用のDBを準備 ○ エラー時は複製リクエスト元と先でステータスコードが変化するので要ログ確認 ● リクエストを複製しているので諸々注意する ○ 更新に伴うメール送付 ○ Fluentd/Logstashでのログ管理 ○ エラー通知 などなど… ● 活用方法は様々 ○ 言語・FWのバージョンアップ試験 ○ メトリクス情報(CPU負荷・メモリ使用率など)から異常検知もできる? ■ ElasticsearchにのせてPrelertするのも面白いかも?
  14. 14. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. 検証環境の構築 Availability Zone 1台だけpost_action
  15. 15. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. レクチャー会の実施 ● Dockerを使い各人に構築から経験してもらう ○ DockerCompose使うとクラスタのスクラップ&ビルドが非常に楽 ○ 手順書的READMEやdocker runするbashなど準備して、コーチング時間をなるべく短縮 ○ 各コマンドの実行前後で比較確認可能なコマンドを具体的に記載 ■ ps aux | grep xxx ■ netstat -an | grep x.x.x.x ● 起動コマンド実行から触ってもらう ○ 各サービスの立ち上がりや、サービス間の連携をログから確認してもらう ○ どの様なログ表示ならば正常か異常か判断できる材料にしてもらう ○ なんとなく知ってる→触ったことがある→動くと楽しい ○ 障害発生時の恐怖心を和らげる ● 具体的な改善や機能の相談が増えた(気がする)
  16. 16. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. まとめ 運用 is 難しい
  17. 17. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. だからこそ チーム一丸となって 🙌 動けると楽しい 🙌
  18. 18. Copyright (C) 2019 ActIndi, Inc. All Rights Reserved. ありがとうございました

×