SLA(サービスレベルアグリーメント)は、顧客とITチームとの間の正式な契約で、サービス品質のパラメータを定義します。
アーキテクチャレベルでのSLAの遵守は、技術的手段、プロセス、監視、自動化によって確保されます。正しく実装するためには、システムのクリティカルな部分、耐障害性、スケーラビリティについての明確な理解が必要です。
# API応答遅延に関するアラートの設定例 - alert: HighResponseLatency expr: histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service)) > 1 for: 5m labels: severity: critical annotations: summary: 応答時間がSLAを超えています(99% > 1秒)
運用メトリクスとは何で、なぜ必要ですか?
運用メトリクスは、システムの実際の動作パラメータを表す指標で、たとえば、可用性、遅延、エラー数などです。これらは、システムがSLAにどの程度準拠しているかを測定し、逸脱に迅速に対応するために必要です。
コード例:
# Prometheusクライアントを使ったメトリクスのエクスポート例 from prometheus_client import start_http_server, Summary REQUEST_TIME = Summary('request_processing_seconds', 'リクエスト処理時間')
SLA、SLO、SLIの違いは何ですか?
高可用性はSLAの遵守に必要ですか?
いいえ、SLAは可用性だけでなく、パフォーマンス(遅延)、安定性(エラー率)、動作の正確性をも含みます。高可用性だけでは他のSLA要求が満たされることは保証されません。