ベロシティの高いチームのためのインシデント管理
エラー予算とは何ですか? なぜそれが重要なのですか?
すべての開発、運用、IT チームは、インシデントが発生し得ることを知っています。
最も優秀な人材とおよそ 100% の稼働率を誇る大手企業でさえ、システムがダウンすると不満を抱くことがあります。Apple、Delta、または Facebook だけでも、過去 5 年間にインシデントによって計数千万の損失を被っています。
これは、サービス レベル アグリーメント (SLA) で 100% の稼働率を約束するべきではないことを意味します。それはどの企業にも守れない約束だからです。
また、インシデントの回避や解決に非常に優れている場合は、稼働時間の目標を達成できる可能性があります。99% のアップタイムを約束して、実際には 99.5% の結果に近づくことや、99.5% のアップタイムを約束して実際には通常の月で 99.99% を達成することも可能でしょう。
そのような場合、業界の専門家は常に約束した目標を上回ることでユーザーの期待を高くしすぎるのではなく、チームがリスクを許容できるように残りの 0.99% をエラー予算とするように検討することを推奨します。
エラー予算とは何ですか?
エラー予算とは、契約上、技術システムの障害が許容される最大時間です。
たとえばサービス レベル アグリーメント (SLA) が、システムの稼働率が 99.99% を下回ると企業が停止について顧客に補償しなければならないと定めている場合、エラー予算 (または契約上、システムのダウンが許容される時間) は年間 52 分 35 秒です。
SLA が 99.95% のアップタイムを約束している場合、エラー予算は 4 時間 22 分 48 秒です。また、SLA が 99.9% のアップタイムを約束している場合、エラー予算は 8 時間 46 分 12 秒です。
技術チームにはなぜエラー予算が必要ですか?
一見すると、エラー予算はそれほど重要ではないように思えます。エラー予算は、IT と DevOps がスムーズに業務を進めるために追跡する必要がある指標の 1 つに過ぎないのでしょうか?
幸いにも、答えはノーです。エラー予算は単なる契約上の約束を確実に満たすためのツールではなく、開発チームがイノベーションを実現してリスクを負えるようにするツールでもあります。
SRE 記事では、以下のように説明しました。
「開発チームは、このエラーの予算を好きな方法で『使用』できます。製品が現在完璧に動作していてエラーがほとんどまたはまったくない場合は、いつでも好きなときに起動できます。逆に、エラー予算を満たしている、または超過して定義された SLA 以下で動作している場合、すべての起動はエラーの数を減らして起動を続行できるレベルまでフリーズされます」
このアプローチの利点は、チームが実際のインシデントを最小限に抑えて許容範囲内でリスクを取ることによって、イノベーションを最大化することを促進できることです。また、イノベーションとアジリティを目標とする開発チームと、安定性とセキュリティを重視する運用間のギャップを埋めます。ダウンタイムを短く抑えられる限り、開発者はアジリティを維持して運用との摩擦なしに変更をプッシュできます。
エラー予算の活用方法
まず、SLA および SLO を確認してください。アップタイムまたは成功したシステム リクエストについて、どのような目標を設定していますか? 貴社はクライアントにどのような約束をしましたか? これらによってエラー予算が決まります。
アップタイムに基づくエラー予算
ほとんどのチームは月単位でアップタイムを監視しています。可用性が SLA/SLO によって約束された数字を超えた場合は、チームは新しい機能をリリースしてリスクを負えます。目標を下回っている場合は、対象の数字が軌道に戻るまでリリースが停止します。
このメソッドを効果的に使用するには、SLO 目標 (通常はパーセンテージ) を開発者が扱える実際の数値に変換する必要があります。これは、許可されたダウンタイムの 1% または 0.5% または 0.1% が実際に何時間と何分になるかを計算することを意味します。一般的な目標は次のとおりです。
SLA 目標 | 許可される年間ダウンタイム | 許可される月間ダウンタイム | |
---|---|---|---|
99.99% のアップタイム | 許可される年間ダウンタイム 52 分35 秒 | 許可される月間ダウンタイム 4 分 23 秒 | |
99.95%uptime | 許可される年間ダウンタイム 4 時間 22 分 48 秒 | 許可される月間ダウンタイム 21 分 54 秒 | |
99.9% のアップタイム | 許可される年間ダウンタイム 8 時間 45 分 57 秒 | 許可される月間ダウンタイム 43 分 50 秒 | |
99.5% のアップタイム | 許可される年間ダウンタイム 43 時間 49 分 45 秒 | 許可される月間ダウンタイム 3 時間 39 分 | |
99% のアップタイム | 許可される年間ダウンタイム 87 時間 39 分 | 許可される月間ダウンタイム 7 時間 18 分 |
成功したリクエストに基づくエラー予算
SLO は SLA ほどの反感は持たれませんが、曖昧であったり過度に複雑であったり測定不可能であったりすると、それに応じて多くの問題が発生する可能性があります。エンジニアの不満をかきたてることのない SLO を設定する鍵は、シンプルさと明快さです。最も重要な指標のみを SLO ステータスの対象とし、目標を分かりやすい言葉で記述し、SLA の場合と同様にクライアント側の遅延などの課題を必ず明確にする必要があります。
Jira Service Management では、SLA を常に把握し、優先度に応じてリクエストを解決し、自動化されたエスカレーション ルールを使用して適切なチーム メンバーに通知し、SLA 違反を防止できます。
Statuspage でインシデント コミュニケーションを学ぶ
このチュートリアルでは、システム停止時にインシデント テンプレートを使用して効果的にコミュニケーションを取る方法について説明します。さまざまなサービス中断に適応可能です。
このチュートリアルを読むインシデントの事後分析プロセスの重要性
インシデント後レビューとも呼ばれるインシデントの事後分析レビューは、インシデント中に何が起こったかを調査して教訓を取り込むのに最適な方法です。
この記事を読む