# LinkedOut
[[LinkedIn]] が [[クマムシプロジェクト]](Waterbear project)の一環として構築した、リクエストレベルで故障注入(failure injection)を行うフレームワーク。標準化されたオープンソースの REST フレームワーク Rest.li のプラガブルなフィルタチェーンアーキテクチャを活用し、クライアント側で障害をシミュレートすることでリスクを最小限に抑えながら制御を行う。LinkedIn におけるエンジニアのソフトウェアの書きかたと実験のやりかたを大きく変えた。(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 7 LinkedIn メンバーに対して配慮すること]] §7.4)
## 構成要素
- **故障モード**: エラー(Error)・遅延(Delay)・タイムアウト(Timeout)の3種。意図的にレスポンスボディの改変(統合テストの領分でありセキュリティリスクを伴うため)は避けている。
- **[[LiX]] 連携**: 実験対象の絞り込みに社内実験フレームワーク LiX を利用する。LinkedOut は独自のターゲティング UI を構築し、対象を LinkedIn の従業員(同意した者)に意図的に限定している。
- **ブラウザエクステンション**: Invocation Context(IC)を通じてクッキー経由で障害データを注入し、ブラウザ上で高速な単発実験を可能にする。影響範囲は従業員自身のセッションに閉じ、実質的にブラスト半径ゼロである。
- **自動実験**: サービスアカウントないし合成ユーザ(Selenium ワーカー)を対象に、日次・週次・月次でスケジューリング可能な自動実験を提供する。実際の LinkedIn メンバーには影響を与えない。
(Source: [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 7 LinkedIn メンバーに対して配慮すること]] §7.4.1–§7.4.4)
## 関連
- [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 7 LinkedIn メンバーに対して配慮すること]] — 一次資料
- [[LinkedIn]] — 開発元
- [[Logan Rosen]] — 実装者・著者
- [[LiX]] — ターゲティングに用いる社内実験フレームワーク
- [[クマムシプロジェクト]] — LinkedOut が属するプロジェクト
- [[カオスエンジニアリング]] / [[ブラスト半径]] — 関連概念
## 出典
- [[@2022__OReillyJapan__カオスエンジニアリング - Chapter 7 LinkedIn メンバーに対して配慮すること]] — Logan Rosen, 「LinkedIn メンバーに対して配慮すること」, Casey Rosenthal・Nora Jones 編『カオスエンジニアリング ― 回復力のあるシステムの実践』, オライリー・ジャパン, 2022, 7章.