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

SRE study group 3rd slide

SRE study group 3rd slide

Korenaga Makoto

May 01, 2020
Tweet

More Decks by Korenaga Makoto

Other Decks in Technology

Transcript

  1. エラーバジェットの活用
 エラーバジェットの形成
 エラーバジェットとはエラーに対する予算のこと SLO(Service Level Objective)に基づく四半期のエラーバジェットを規定 
 • PdMがSLOを規定 =

    四半期内に期待されるサービスの稼働時間設定 
 • 実稼働時間は、中立な第三者であるモニタリングシステムによって計測 
 • 上記2つの差異が、その四半期内の損失可能な信頼性という予算残分となる 
 • 計測された稼働時間がSLOを超えている(エラーバジェットが残っている)なら新しいリリースをプッシュ できる

  2. サービスレベルに関する用語
 • サービスレベルアグリーメント(Service Level Agreements,SLA)
 ユーザーとの間で結ぶ明示的あるいは暗黙の契約 
 SLOを満たせなかった場合は払い戻しやペナルティなど 
 •

    サービスレベル目標(Service Level Objectives,SLO)
 SLI ≤ ターゲット もしくは 下限 ≤ SLI ≤ 上限
 • サービスレベル指標(Service Level Indicators,SLI)
 リクエストのレイテンシー、エラー率、システムスループット、可用性 

  3. 指標の実際
 • 標準化
 例)
 ◦ 集計のインターバル: 「集計時間は1分とする」 
 ◦ 集計の対象領域:

    「クラスタ内のすべてのタスク」 
 ◦ 計測の頻度: 「10秒ごと」 
 ◦ 対象となるリクエスト: 「ブラックボックスモニタリングジョブからのHTTP GET」 
 ◦ データの取得方法: 「モニタリングシステムを通じて、サーバーで計測」 
 ◦ データアクセスのレイテンシー: 「最後のバイトまでの時間」 

  4. 目標の実際
 • 定義
 計測方法と計測値が適性である条件を指定するべき 
 例)GETリクエスト呼び出しの 99%が100ミリ秒以下で完了すること 
 • ターゲットの選択


    ◦ 現在のパフォーマンスに基づいてターゲットを選択してはならない 
 ◦ シンプルさを保つ
 ◦ 「絶対」は避ける
 ◦ SLOは最小限にとどめる 
 ◦ 最初から完璧でなくてもよい 

  5. 目標の実際
 • 計測値のコントロール
 ◦ システムのSLIモニタリングと計測を行う 
 ◦ SLOに対してSLIを比較し、アクションが必要か判断する 
 ◦

    アクションが必要な場合、 改善点を明らかにし改善行動を取る 
 • SLOによる期待の設定
 ◦ 安全マージンを確保する 
 公開しているSLOより内部的なSLOを厳しくしておく 
 ◦ 過剰達成を避ける
 高可用性に依存した設計となり過度に依存されることを避ける為 
 

  6. エンジニアリングであるための条件
 典型的なSREの活動 • ソフトウェアエンジニアリング • システムエンジニアリング • トイル • オーバーヘッド

    四半期あるいは1年を通して平均で50%以上エンジニアリングの作業に当てられな かった場合は何が問題なのか把握し改善が必要
  7. 定義
 • アラート 人間に読まれることを意図した通知。 チケット、メールアラート、ページに分類。 • 根本原因 ソフトウェアの欠陥やヒューマンエラーで、修正されれば同じことが同様に発生しないと確信できるも のを指す。 •

    ノードとマシン 物理サーバー、仮想マシン、コンテナ内で動作しているカーネルの 1つのインスタンスを示す。 • プッシュ サービス動作中のソフトウェア、あるいはその設定に対する変更。
  8. モニタリングの必要性
 • 長期的なトレンドの分析 データベースの余裕や DAUの増加ペースなど • 時間や実験グループ間での比較 どちらのクエリの高速か、 memcacheのヒット率はなど •

    アラート • ダッシュボードの構築 • アドホックな振り返り分析の進行(デバッギングなど) レイテンシーが急上昇したが、他に何か同時期に生じていることがないか
  9. モニタリングやアラートでの確認点
 • ルールが検出する状況は、 そのルールなしで検出されない 状況で、緊急対応が可能で現時点あるい は近い将来にユーザーに影響を及ぼすか? • そのアラートが無害なものだと判断して対応せずにできるものか? (どのような時に、どのような理由で無視できるか? )

    • そのアラートが間違いなくユーザーに悪影響を及ぼしているか? (トラフィックのドレイン済やテスト用のデプロイなど除外すべきケースは? ) • そのアラートに対応してアクションが取れるか? そのアクションは緊急か、翌朝まで待つことができるか? 安全に自動化できないか?そのアクションの修正効果は短期的か長期的か? • その問題でページを受ける人は他にもいるか?その場合少なくともページの 1つが不要ではないか?