Save 37% off PRO during our Black Friday Sale! »

SRE Lounge#2 UZABASE

9a7a3b3b470cb0b79997e9d4579edead?s=47 tanan
March 14, 2018

SRE Lounge#2 UZABASE

SRE Lounge#2で発表したUZABASEの取り組み紹介スライドです。

9a7a3b3b470cb0b79997e9d4579edead?s=128

tanan

March 14, 2018
Tweet

Transcript

  1. UZABASE SRE

  2. • 阿南 肇史 • 2016年7月 UZABASE 入社 – 前職はSIerでアドテク系のInfra Enginner

    • UZABASE SRE Team 所属 – Infra Team => SRE Team (2017/07) 自己紹介
  3. Mission 経済情報で、世界をかえる Business Intelligence to Change Your World 私たちは、世界中で愛される経済情報インフラをつくります。 あらゆる経済情報を人とテクノロジーの力で整理・分析・創出し、

    ビジネスパーソンの生産性を高め、創造性を解放します。 私たちは経済情報を通じて世界中の意思決定を支え、世界をかえます。
  4. Our Services B2Bマーケティングエンジン ソーシャル経済ニュース 企業・業界情報プラットフォーム 日本最大級のベンチャーデータベース

  5. SPEEDAは、ビジネスパーソンの情報収集・分析に おける課題を解決する最先端のプラットフォームで す。 世界中の企業情報、業界レポート、市場データ、 ニュース、統計、M&Aなどあらゆるビジネス情報を カバーしています。

  6. 日々発生するデータエラーと向き合う 本日のテーマ

  7. • 企業データ • 業界データ • 財務データ • 株価データ • M&Aデータ

    • 有報 / 適時開示 資料 • ニュース SPEEDAの要はデータ
  8. • 企業データ • 業界データ • 財務データ • 株価データ • M&Aデータ

    • 有報 / 適時開示 資料 • ニュース これについて話します SPEEDAの要はデータ
  9. 業界ページイメージ

  10. 業界ページが作られるまで * 市場環境 * アジア市場(日本、中国除く)では、インドの[[Dummy Company : ID0001]]を除けば、インドやインドネシアな どの新興地域を事業拠点とする大規模な企業は現れていない。ヨーロッパ市場では、フランスの... [[Dummy

    Chart : 0001]] • 独自のWiki記法で記述(Markdownのようなイメージ) • 企業ページのリンクを企業IDから生成できる • チャートは自動的に最新年度までのデータを取得して生成 Chartを自動生成表示 企業ページへのリンク作成
  11. 業界ページイメージ 途中までしかない!

  12. • チャートの一部が表示されない • 既に存在しない企業が表示される – M&A、名称変更、データサプライヤ関連 • リンク切れ – 企業ページに飛べない

    エラーの内容は様々 作成したタイミングでは正常だったが、 時間が経って不整合が発生する場合がある
  13. どう対応する??

  14. STEP #1 ・・・ Web Server App Server アプリケーションサーバで出 力したエラーログを メールで送信

  15. STEP #1 【改善点】 • 弊社アナリストがメールを見て、wiki文章を修正 • SREチームが介在することなく対応できる 【課題】 • 同じ内容のエラーメールが何件も送信される

    • StackTraceもメール本文に含まれて見づらい • メールが飛びすぎて送信遅延や送信上限に達する
  16. STEP #2 ・・・ Web Server App Server 収集した ログを分析

  17. 【改善点】 • メール送信を停止 • Fluentdを導入してログを1箇所に収集 • 集計プログラムでサマリーをSlack通知 • 必要な情報だけ送信(重複する内容やStackTrace等は削除) 【課題】

    • 特になし!! STEP #2
  18. これでよかったっけ?

  19. データフロー 企業データ追加 業界ページ追加 業界ページ アクセス 業界ページ アクセス 企業データ更新 業界ページ アクセス

    エラーログ出力 ログ収集・検知 エラー発生 企業データ更新 時間経過
  20. データフロー 企業データ追加 業界ページ追加 業界ページ アクセス 業界ページ アクセス 企業データ更新 業界ページ アクセス

    エラーログ出力 ログ収集・検知 エラー発生 もう既にエラー なってるよね 企業データ更新 時間経過
  21. • データが本来あるべき姿をロジックに落とす – 下図参照 • ユーザのアクセスとは切り離して考える – Kubernetes上でCronJobとして登録し、Dailyでチェックする STEP #3

    * 市場環境 * アジア市場(日本、中国除く)では、インドの [[Dummy Company : ID0001]]を除けば、 インドやインドネシアなどの新興地域を事業拠点 とする大規模な企業は現れていない。 wikiテキスト ID Name Path ID0001 Dummy Company /company/ID0001 company テーブル companyテーブルに存 在するか?
  22. STEP #3 ・・・ Web Server App Server validation CronJob: [

    0 9 * * * ] DB report
  23. 【改善点】 • エラー発生に関わらず、自分たちで整合性をチェックする • 上位のフローで不整合に気づくことができる • 不整合が起こったレコード数を日次でレポートすることにより、   不整合が増減したタイミングがわかる(予定) • コンテナ化、Kubernetes利用等、CI/CDを整備することで他の人からも見え

    やすい。(すぐ捨てられることが大事) STEP #3
  24. そもそも

  25. SRE本 第7章 Therefore, while we believe that software-based automation is

    superior to manual operation in most circumstances, better than either option is a higher-level system design requiring neither of them—an autonomous system. 高レベルに設計されたシステムがあれば自動化する必要はない
  26. • ログ分析大事だけどデータの網羅的なチェックは別で担保する • フローのなるべく上位でValidationする • 周辺ツールは廃れやすいので、作る場合は他に影響を与えない形で、   簡単に捨てられるようにする • 自動化は大切だが、それよりもシステム自体が高レベルに   設計されていることが大事(バランス難しい)

    まとめ
  27. Any questions? Thank you for listening!