Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今学生に伝えたい, 監視の話 / okinawa_ac_lt

cohalz
July 06, 2019

今学生に伝えたい, 監視の話 / okinawa_ac_lt

沖縄学生×企業エンジニア 7月大LT大会!!! #okinawa_ac_lt
https://connpass.com/event/132178/
の発表資料です

cohalz

July 06, 2019
Tweet

More Decks by cohalz

Other Decks in Technology

Transcript

  1. 今学生に伝えたい,
    監視の話
    沖縄学生×企業エンジニア 7月大LT大会!!!
    id:cohalz

    View Slide

  2. 自己紹介
    ・id:cohalz / @cohalz
    ・はてなインターン2017 Mackerelチーム
    ・株式会社はてな SRE (2018 ~)

    View Slide

  3. 監視って?
    ・サーバ上の様々なメトリックを元にアラート通知を飛ばす
     ・ CPU使用率や残り容量など

    View Slide

  4. 監視って?
    ・そのメトリックを保存して,グラフにして見る

    View Slide

  5. なぜ監視の話?

    View Slide

  6. 今監視が大ブーム!

    View Slide

  7. 覚えて帰ってほしいこと
    ・監視ってそんなに難しくない
    ・開発者も監視をしてみよう

    View Slide

  8. 何を監視すればいいか?

    View Slide

  9. 何を監視すればいいか?
    ・「起きてほしくないこと」
    ・例: Webアプリケーション
     ・500エラーを返す
     ・レスポンス時間の悪化
     ・証明書の期限切れ

    View Slide

  10. まずはサービスに近いところから
    ・大事なのはサービスが動いているか
    ・個別のサーバのCPUやメモリでアラートを設定しない
     ・アラートが飛びがちになる
     ・代わりにグラフで傾向を見よう

    View Slide

  11. なんでもアラートを飛ばせばいいものでもない
    ・たくさんのアラートが飛んでくると?
     ・「アラート疲れ」
     ・「オオカミ少年アラート」
    ・サービス品質をよく考えて設計する

    View Slide

  12. アラートが役立つ他の例
    ・バッチの実行
     ・失敗内容をアラートに含める
    ・システムのマイグレーション
     ・古いホストに接続してたらアラート
     ・安全にホストを落とせる

    View Slide

  13. アラート設計の話

    View Slide

  14. 昔のアラート対応
    ・インフラエンジニアもしくはSREがアラートを設計
     ・対応するのも同じ人
    ・同じ言語・フレームワークなので対応方法が決まっていた

    View Slide

  15. 最近のアラート対応
    ・サービスが複雑になってきた
     ・言語やフレームワークもバラバラ
     ・一次対応だけでは済まないことも
    ・サービス開発者が対応しないといけない
     ・原因はアプリケーション自体にあることが多い

    View Slide

  16. 例: Webアプリケーションが見れなくなった
    ・MySQLのコネクション数が跳ね上がっていた
     ・接続数上限のため調査のために繋ぐこともできない!!
     ・一次対応として再起動をした

    View Slide

  17. 例: Webアプリケーションが見れなくなった
    ・MySQLのコネクション数が跳ね上がっていた
     ・接続数上限のため調査のために繋ぐこともできない!!
     ・一次対応として再起動をした
    ・実はアプリケーション側から接続を切っていなかった!!
     ・開発者にアプリケーションのコードを直してもらった

    View Slide

  18. 開発者も監視に関わるべき
    ・サービスの実装を一番良くわかっている
     ・実装時に懸念点があればそこを監視すればいい
    ・開発者がアラートを受け取る
     ・根本的解決が早くなるかも

    View Slide

  19. コンテナ化と言語と監視
    ・どの言語・フレームワークを使ってるか把握しにくくなる
     ・サービスから見た最小単位がコンテナになる
    ・とはいえ特有の監視をしなくていい理由にはならない
     ・開発者が関わるべき

    View Slide

  20. 監視の目的

    View Slide

  21. 起きてほしくないことが,
    起こっていないを保証する

    View Slide

  22. テストに似てる

    View Slide

  23. テストは皆さん書いてますよね?

    View Slide

  24. 対象が違うだけで目的は同じ
    ・テストはソフトウェアだが,監視はシステムを見る
    http://developer.cybozu.co.jp/archives/kazuho/2010/01/cronlog-52f2.html

    View Slide

  25. 監視プラグイン
    ・プログラムを書いて対象の数字を出力するだけ
     ・ヘルパプラグインがあるので意外と簡単
    ・既にいろんな人が作っていて,コードの参考にもなる

    View Slide

  26. 監視プラグイン
    ・欲しいプラグインはすでに誰かが作っているかも?
    ・欲しい機能がなかったらOSSのPR作成チャンス!

    View Slide

  27. 監視以外のいろいろ

    View Slide

  28. 監視も万能ではない
    苦手なもの
    ・数値にならないもの
    ・統計・解析
    ・1リクエストの詳細

    View Slide

  29. 監視以外のあれこれ
    ・ログ
    ・APM (Application Performance Management)
     ・分散トレーシング

    View Slide

  30. 監視以外のあれこれ
    ・ログ
    ・APM (Application Performance Management)
     ・分散トレーシング
    => サービスの見える化

    View Slide

  31. 「推測するな,計測せよ」

    View Slide

  32. まとめ
    ・不安を安心に変えるために監視をする
     ・テストと同じ
     ・でもアラートはよく考えよう
    ・開発者も監視をしてみよう
     ・サービスに一番詳しいのは開発者

    View Slide

  33. あわせて読みたい
    ・入門 監視
     ・監視についてのアンチパターンなど詳しく載っている本
    ・監視 入門 ~ マイクロサービス時代の監視設計
     ・https://junkyard.song.mu/slides/rancher-meetup-tokyo-18
     ・マイクロサービスに限らない,開発者に向けた現在の監視の話

    View Slide