昨日の最近の GitHub サービス停止に関する投稿では、見落とされた詳細が言及されました:飽和した Istio サイドカーを持つサービス上の誤って構成されたオートスケーリングポリシー。このポリシーはホストサービスの負荷を監視していましたが、サイドカーの制限を監視していなかったため、適切に自動スケーリングできませんでした。
オートスケーリングは、現在の負荷に基づいてリソースを調整します。CPU 使用率は一般的な指標ですが、CPU 使用率が低くてもサービスが飽和することがあります。たとえば、ダウンストリームの遅延によってすべてのスレッドが I/O でブロックされると、スレッドごとリクエストモデルが飽和することがあります。これは Slack が 2021 年に経験したことです。
GitHub のレポートによると、オートスケーリングポリシーはサービスレベルの負荷のみを考慮しており、Istio サイドカーを無視していました。これは David Woods が特定したコンポーネント置換の誤謬を浮き彫りにしています。つまり、個々のコンポーネントを修正することだけに集中し、システムの相互作用を理解しないということです。このサービス停止には、変化するトラフィックパターン、オートスケーリングポリシー、Istio サイドカーの飽和、リトライロジック、HAProxy ノードの飽和、認証トラフィックという複数の相互作用する要因が関係していました。
主要なエンティティ:会社:GitHub、Slack | 人物:David Woods
出典: Hacker News · 要約:HeadlinesBriefing