快適なマニュアル作成・共有を支えるSite Reliability Engineering

C0479b152c326746e911be790617f75b?s=47 katsuhisa_
February 15, 2018

快適なマニュアル作成・共有を支えるSite Reliability Engineering

Developers Summit 2018 で発表した資料です。( http://event.shoeisha.jp/devsumi/20180215/session/1649/

C0479b152c326746e911be790617f75b?s=128

katsuhisa_

February 15, 2018
Tweet

Transcript

  1. Copyright (C) 2018 Studist Corporation. All Rights Reserved 快適なマニュアル作成共有を支える Site

    Reliability Engineering 株式会社スタディスト SRE チーム リーダー 北野 勝久 #devsumiE
  2. Copyright (C) 2018 Studist Corporation. All Rights Reserved 2 #devsumiE

    北野 勝久 : @katsuhisa__
  3. Copyright (C) 2018 Studist Corporation. All Rights Reserved 3 #devsumiE

  4. Copyright (C) 2018 Studist Corporation. All Rights Reserved 4 #devsumiE

  5. Copyright (C) 2018 Studist Corporation. All Rights Reserved #devsumiE 5

  6. Copyright (C) 2018 Studist Corporation. All Rights Reserved 6 #devsumiE

    導入企業社数 (有償契約のみ) 1,800社 一社あたり、 約10万ユーザーも
  7. Copyright (C) 2018 Studist Corporation. All Rights Reserved 7 #devsumiE

    自己紹介 プロダクトが順調に成長し、 ユーザーも順調に増加 
  8. Copyright (C) 2018 Studist Corporation. All Rights Reserved 8 #devsumiE

    自己紹介 めでたしめでたし
  9. Copyright (C) 2018 Studist Corporation. All Rights Reserved 9 #devsumiE

    自己紹介 んなわけない
  10. Copyright (C) 2018 Studist Corporation. All Rights Reserved 10 #devsumiE

    自己紹介 これまで見えなかった問題続出
  11. Copyright (C) 2018 Studist Corporation. All Rights Reserved #devsumiE 続出する問題

    11 • 障害発生の度、とりあえずなんとか収束させる ◦ Ops 負荷が高い • モニタリング設計が貧弱 ◦ 障害頻度は増えてるが、 サービスの状況がすぐに分からず、対応が長期化
  12. Copyright (C) 2018 Studist Corporation. All Rights Reserved #devsumiE 続出する問題

    12 • 障害発生の度、とりあえずなんとか収束させる ◦ Ops 負荷が高い • モニタリング設計が貧弱 ◦ 障害頻度は増えてるが、 サービスの状況がすぐに分からず、対応が長期化 負のスパイラル
  13. Copyright (C) 2018 Studist Corporation. All Rights Reserved 13 #devsumiE

    自己紹介 Ops の取り組み方を 根本的に見直す必要性
  14. Copyright (C) 2018 Studist Corporation. All Rights Reserved 14 #devsumiE

    自己紹介 スタディスト SRE チーム
  15. Copyright (C) 2018 Studist Corporation. All Rights Reserved SRE ?

    15 #devsumiE • 米Google シニアVP であるBen Treynor 氏が提唱 • サイト信頼性に対して、インフラ側・コード側の両面から 包括的に責任を持つ • エンジニアリングで、Ops を効率化・自動化する
  16. Copyright (C) 2018 Studist Corporation. All Rights Reserved 16 #devsumiE

    自己紹介 SRE がないとき
  17. Copyright (C) 2018 Studist Corporation. All Rights Reserved 17 #devsumiE

    顧客増加 ↓ システム負荷増加 ↓ 障害増加 ↓ 筋肉で解決 #devsumiE #devsumiE SRE がないとき
  18. Copyright (C) 2018 Studist Corporation. All Rights Reserved SRE がないとき

    18 #devsumiE プロダクトスケールに伴い 無限の筋肉が必要 ↓
  19. Copyright (C) 2018 Studist Corporation. All Rights Reserved 19 #devsumiE

    自己紹介 エンジニアリングによる 効率化や自動化をすれば Ops の線形増加を防げる
  20. Copyright (C) 2018 Studist Corporation. All Rights Reserved 20 #devsumiE

    自己紹介 スタディストSRE チームの 取り組みをご紹介
  21. Copyright (C) 2018 Studist Corporation. All Rights Reserved 21 #devsumiE

    自己紹介 〜 Toil 削減 〜
  22. Copyright (C) 2018 Studist Corporation. All Rights Reserved Toil ?

    22 #devsumiE Toil is 手作業の運用業務 Toil is プロダクトに対する価値を生まない Toil is 基本的には無駄     ➪ 削減したい
  23. Copyright (C) 2018 Studist Corporation. All Rights Reserved Toil 削減

    23 #devsumiE • 定形作業の自動化 例 : ミドルウェア操作を自動化 • unicorn-worker-killer ◦ 特定条件下での自動 graceful restart ◦ メモリ枯渇の防止
  24. Copyright (C) 2018 Studist Corporation. All Rights Reserved 24 #devsumiE

    自己紹介 手作業を自動化できて幸せ 高まる自己肯定感
  25. Copyright (C) 2018 Studist Corporation. All Rights Reserved 25 #devsumiE

    自己紹介 ???「でもさ、それ今やる必要ある?」
  26. Copyright (C) 2018 Studist Corporation. All Rights Reserved Toil 削減と優先度問題

    26 #devsumiE • そのToil 削減に、どれくらいインパクトがあるのか? • そのToil はいま削減する必要があるのか? • エンジニアリングによる自動化での解決が、最適な解き方?   その答えをどのやり方で出したかなんてどうでもいいんだということを   悟ることができたのは、実に幸運だったと思う。 ー リチャード・ファインマン
  27. Copyright (C) 2018 Studist Corporation. All Rights Reserved 27 #devsumiE

    自己紹介 エンジニアの仕事は知的生産活動 解くべき問題の見極め からはじめる
  28. Copyright (C) 2018 Studist Corporation. All Rights Reserved 28 #devsumiE

    自己紹介 〜 Monitoring 〜
  29. Copyright (C) 2018 Studist Corporation. All Rights Reserved 29 #devsumiE

    自己紹介 only three kinds of valid monitoring output
  30. Copyright (C) 2018 Studist Corporation. All Rights Reserved #devsumiE 30

    There are alerts, which say a human must take action right now. Something that is happening or about to happen, that a human needs to take action immediately to improve the situation. The second category is tickets. A human needs to take action, but not immediately. You have maybe hours, typically, days, but some human action is required. The third category is logging. No one ever needs to look at this information, but it is available for diagnostic or forensic purposes. The expectation is that no one reads it. What is ‘Site Reliability Engineering’? https://landing.google.com/sre/interview/ben-treynor.html
  31. Copyright (C) 2018 Studist Corporation. All Rights Reserved • Slack

    Channel 通知先を分ける ◦ emergency  ( 書き込まれると常に関係者にプッシュ通知 ) ◦ info  ( 必要なタイミングで対応 ) • 通知先の出し分けが容易で、 アラート設定が手間でないツール選定も大事 ◦ Stackdriver ◦ NewRelic アラートとチケットを意識した運用設計 31 #devsumiE
  32. Copyright (C) 2018 Studist Corporation. All Rights Reserved #devsumiE ログ

    32 • forensic purposes ◦ サーバーのログ集約 ▪ S3 ◦ コンソール操作もログを残す ▪ CloudTrail • diagnostic purposes ◦ 性能ダッシュボード ▪ Elasticsearch, Kibana ◦ ここでも NewRelic, Stackdriver は活躍
  33. Copyright (C) 2018 Studist Corporation. All Rights Reserved 33 #devsumiE

    自己紹介 サービスをモニタリングしていなければ、 何が起きているのかを知ることができず、 何が起きているのかが見えていなければ、 信頼性を保つことはできません モニタリングをうまく活用しよう
  34. Copyright (C) 2018 Studist Corporation. All Rights Reserved 34 #devsumiE

    自己紹介 まとめ
  35. Copyright (C) 2018 Studist Corporation. All Rights Reserved 35 #devsumiE

    他にもいろいろやった結果、 1年前と比べ、状況は劇的に改善
  36. Copyright (C) 2018 Studist Corporation. All Rights Reserved 36 #devsumiE

    今日話したことは、 この1年でやったことの ほんの一部 運用作業自動化 Monitoring 環境刷新 Infrastructure as Code 化 インスタンスの統廃合 必要なツール選定と導入 アラート再設計 運用業務の標準化 DB 移行 インスタンスサイズ最適化 インフラCI 環境整備 全リソースのインスタンスファミリー最新化 運用ルール整備 中途入社社員向け教育 パッチ適用の半自動化 セキュリティ情報自動チェック インフラテスト駆動開発 DB テーブル設計見直し クエリ改善
  37. Copyright (C) 2018 Studist Corporation. All Rights Reserved 37 #devsumiE

    自己紹介 海外展開・さらなるユーザー数の増加に備え、 SRE チームの闘いはまだまだつづく 
  38. Copyright (C) 2018 Studist Corporation. All Rights Reserved 38 #devsumiE

    自己紹介 : @katsuhisa__ スタディストでは、いっしょに闘ってくれるエンジニアを常に募集中 本セッション終了後、Ask the Speaker でお待ちしています