Werner Vogelsの「You Build It, You Run It」を解説
「You Build It, You Run It」が、ソフトウェア提供とサービス所有、実用的なオンコール、SLO、インシデント対応、安全なリリースをどう結び付けるかを解説します。

「You Build It, You Run It」の本当の意味
「You Build It, You Run It」とは、サービスを作ったチームが本番での振る舞いにも責任を持ち続けることです。設計、提供、信頼性、サポート、運用改善を、部署間で切り離さず一つの仕事として扱います。
この方法で働くチームは、コードを書いてデプロイを終えるだけではありません。本番の兆候を見て、障害に対応し、運用リスクを抑え、機能開発より信頼性の作業を優先すべき時を決めます。本番を直接見ることで、悪いアラート、壊れやすいリリース、分かりにくい復旧手順を自分たちで直せます。
リリースと運用は一つの責任
従来は分けられがちな活動をまとめます。サービスチームは通常、次を所有します。
- サービスの設計、テスト、デプロイ、保守
- ユーザー向けの信頼性、性能、容量の監視
- インシデント対応と影響の共有
- セキュリティ指摘、依存関係、運用コストの管理
- コード、自動化、文書、復旧手順の改善
これは全開発者がネットワーク、データベース、インフラの専門家になることを意味しません。必要なのはチームのソフトウェアを診断できる運用知識です。より深い専門性は、プラットフォーム担当者と文書化されたエスカレーション経路で補います。
責任には権限が必要
本番の可視性、安全な操作、行動する時間がなければ、チームは責任を持ってサービスを運用できません。リーダーがオンコールを割り当てながら、ログ、デプロイ制御、容量設定、ロードマップ上の余地へのアクセスを与えないなら、所有権ではなく負担を移しただけです。
本当の責任には、リリース停止、問題のある機能の無効化、バージョンのロールバック、支援要請、再発を防ぐ作業の計画という権限が含まれます。保守のための明確な予算も必要です。信頼性を、機能開発で埋まった計画の隙間に永遠に押し込むことはできません。
責任は非難ではない
責任とは、対応と改善を引き受けることであり、罰する人を探すことではありません。深刻な失敗には、危険な前提、弱いテスト、欠けた制限、遅すぎたアラート、練習していない復旧手順など、複数の条件が関わります。
非難の文化では、人は自分を守るため情報を隠します。学ぶ文化は、早いエスカレーションと正確な報告を評価します。障害後に問うべきことは、最後の変更をした人ではありません。なぜ技術の仕組みが、一つの変更でそこまで顧客に影響を与えることを許したのかです。
この考え方の由来
Amazonの最高技術責任者Werner Vogelsは、Amazonのサービス所有モデルを説明する中でこの言葉を広めました。ソフトウェアを、開発者が仕上げて別部署へ渡すプロジェクトではなく、継続して運用するサービスとして捉える考え方です。
六つの単語で組織の変化を言い表したため、強く記憶に残りました。本番に責任を持つチームなら、有用なテレメトリー、予測可能な失敗時の挙動、制御されたデプロイ、復旧経路を、顧客に不足を指摘される前から重視します。
言葉の背後にあるサービス志向
サービス志向では、リリース完了ではなく本番での結果で成功を測ります。テストの合格とデプロイ成功は重要ですが、期待される速度と信頼性でユーザーが作業できる証拠にはなりません。
継続的デリバリーと24時間利用が広がるにつれ、この違いはより明確になりました。大規模なリリースでは、コード変更からフィードバックまで時間が空きすぎます。小さなリリース、安定したチームの所有、直接の本番シグナルなら、失敗を切り分けやすく、学びを生かしやすくなります。
DevOpsとの関係
「You Build It, You Run It」はDevOpsと両立しますが、同義ではありません。DevOpsは開発と運用の摩擦を減らすための、より幅広い文化的・技術的実践を指します。Vogelsの表現は一つの明確な約束です。作った人たちがデプロイ後も責任を保つことです。
組織はデリバリーパイプラインを自動化しても、本番への厳しい引き渡しを残せます。中央運用チームを置きつつ、プロダクトチームに診断、復旧、長期的なサービス健全性への実質的な責任を持たせることもできます。決め手は組織図の部署名ではなく、責任と意思決定権がどこにあるかです。
サービスの所有がデリバリーを変える理由
サービスの所有は、設計と優先順位を決める同じチームに本番の証拠を届けます。エンジニアは、自分たちの判断の運用コストを、その理由がまだ鮮明なうちに見られます。
引き継ぎ型では、開発者が遅いサービスの話を、リリース数日後にチケットで聞くかもしれません。ログは失われ、デプロイ時の状況は欠け、運用チームは症状を知っていてもコード経路を知らないことがあります。引き継ぐたびに情報が減り、待ち時間が増えます。
直接所有すると動機が変わります。うるさいアラートで何度も起こされるチームには、アラートや原因を直す理由があります。失敗したデプロイを復旧しなければならないチームには、ロールバックを安全にする理由があります。インフラ費用を払うチームには、無駄なクエリや過剰なリソース要求を見直す理由があります。
より速い提供は小さなリスクから生まれる
各リリースを観測、制限、復元しやすくすれば、より頻繁にリリースできます。小さな変更は調査範囲を狭めます。カナリアデプロイと機能制御は影響範囲を制限します。自動復旧は、劣化の検知から復旧までの時間を縮めます。
ここでの速さは、制御がないことではありません。制御を繰り返しやすく低コストにすることから生まれます。手動の承認会議は、微妙な本番障害を見つけずにすべてのリリースを遅らせるかもしれません。自動テスト、ポリシー検査、段階公開、稼働中のサービス指標は、結果を変えられる場所で証拠を与えます。
繰り返すインシデントは計画の根拠になる
繰り返す失敗は、チームが計画に入れるべき作業を示します。ページ数、エラーバジェットの消費、復旧時間、反復する手動対応は、運用上の負債がたまる場所を示します。
このフィードバックが働くのは、チームが対応できる時だけです。インシデントが起きる前に全スプリントを埋めるなら、組織は予防に余力を割かないと決めています。ページャーは問題を記録するだけで、仕組みの改善にはつながりません。
チームが本番で所有するもの
サービスを所有するチームは、他システムに依存する振る舞いを含め、サービスの全期間にわたる定義済みの成果に責任を持ちます。所有はすべての依存先を支配することではありません。依存先を理解し、期待を定め、影響を検知し、合意した経路でエスカレーションすることです。
信頼性と性能
信頼性の所有はユーザーの体験から始まります。プロセスが動いていても、顧客にエラーが返る、待たされる、古いデータが見えることはあります。したがって、ホストの健全性をサービス正常の証拠とせず、成功した成果を測るべきです。
性能も同じくユーザー中心です。平均レイテンシーは遅い少数のリクエストを隠すため、チームはパーセンタイルを見て重要な操作を分けることが多いです。購入、検索、ログイン、データ出力には、それぞれの指標が必要になる場合があります。
コスト、セキュリティ、データ
運用の所有には、リソース使用の制御、セキュリティ指摘への対応、データのライフサイクル全体での保護が含まれます。レイテンシー目標を満たしても、計算資源を無制限に使うサービスは良い運用とは言えません。すぐ復旧しても、受け付けた書き込みを失うサービスも同様です。
チームは主なコスト要因、シークレットとアクセスのモデル、バックアップ方針、保持義務、復旧目標を理解すべきです。専門家は制御とレビューを提供し、サービスチームはそれを正しく使う責任を持ちます。
サポートとプロダクトの振る舞い
カスタマーサポートも本番フィードバックの一部です。サポート担当者は、自動監視より早く、分かりにくい状態、部分的な失敗、誤解を招くエラーメッセージに気付くことがあります。サービス所有者には、報告を受け、重大度を判断し、有用な状況を共有する明確な方法が必要です。
サポートを所有することは、開発者がすべての顧客対応をすることではありません。影響した操作、時刻、アカウントの状況、目に見える症状を特定できる診断情報と、サポートとエンジニアリングの実用的な接続が必要です。
名前の付いたチームと明確な境界
複数チームがコードを提供していても、本番サービスには一つの責任チームが必要です。記録には、サービスの役割、支えるユーザー体験、保持データ、依存先、信頼性目標、現在の対応者への連絡方法を載せます。
コンポーネント境界では責任を共有できます。曖昧さは共有できません。インシデント中には、誰が決められるか、誰がデプロイできるか、各依存先をどのチームが所有するかを知る必要があります。「全員が所有する」は、たいてい最終権限を持つ人がいない意味です。
燃え尽きないオンコール
健全なオンコールは、緊急で対処可能な顧客影響について適切な人を呼び出し、安全に復旧できる支援を与えます。忍耐力の試験でも、小チームから無償の余力を引き出す方法でもありません。
継続可能なカバー体制でローテーションを設計する
ローテーションの人数は、一人がページャーを持つ頻度と、チームが提供できる回復時間を決めます。常時対応のサービスには、休暇、病気、同時インシデントを扱える十分な訓練済み対応者が必要です。人員で支えられないなら、サービス範囲を縮める、エスカレーション合意付きの営業時間対応にする、共有の二次ローテーションを設けるべきです。
実用的な方針では次を定義します。
- 明確な引き継ぎ時刻を持つ一次・二次対応者
- 重大度の基準と、期待する確認時間
- プラットフォーム、セキュリティ、データ、管理者への連絡先
- 影響の大きい呼び出し後の報酬または回復時間
- 研修、シャドー当番、定期的な対応演習
対応者を、初めて見る重大障害に一人で向かわせてはいけません。二次対応者は、一次対応者が軽減に集中する間、調査、連絡、適切な専門家の招集を手伝えます。
待てない行動だけをページする
ページは、ユーザーやデータを脅かし、即時の人の対応が必要な状態を示すべきです。次の勤務時間まで待っても結果が変わらないなら、チケットまたは定期レビューに入れます。
単純な重大度モデルで、全面停止、重大な劣化、緊急ではない欠陥を分けられます。影響ユーザー、継続時間、データリスク、セキュリティ露出、回避策を考慮します。小さなエラー率の増加でも、決済経路ならすぐページすべきで、社内レポートならチケットでよい場合があります。
各ページには担当者、役立つ要約、関連する状況、最初の対応が必要です。CPUやメモリだけに基づくアラートには、そのつながりがないことが多いです。失敗リクエスト、遅延ジョブ、尽きかけた信頼性予算に結び付くアラートなら、対応理由が明確です。
ページ数を技術データとして扱う
望ましい傾向は、不要なページを減らし、必要なものをより速く処理することです。チームはページ頻度、時間外の中断、誤検知、繰り返す原因、手動復旧の時間を確認すべきです。
うるさいアラートは修正、格下げ、削除します。繰り返す手動軽減は自動化または仕組みの変更にします。ページ数が高いままなら、ローテーションは当番の回復力の問題ではなく、プロダクトとエンジニアリングの問題を報告しています。
SLO、SLI、SLA、エラーバジェット
サービスレベル指標と目標は、信頼性を測定可能なプロダクト判断に変えます。印象だけに頼ったり、どこでも完全性を求めたりせず、サービスが十分に信頼できるかを話し合えます。
用語ごとに役割が違う
SLIは、成功リクエストの割合や期限までに完了したジョブなどの測定結果です。SLOは、定めた期間におけるその結果の社内目標です。SLAは外部への約束で、契約水準を下回った時の救済を定めることがあります。
有用なSLIは、ユーザーが気にするイベントを表し、何を成功と数えるかを定義します。レイテンシー制限内の成功リクエスト、有効な検索結果、約束した時刻までの定期出力などが例です。ホストが利用可能でもユーザー操作が失敗するなら、ホスト稼働率は弱い指標です。
ユーザーの必要から目標を選ぶ
SLOは失敗の影響と周辺依存先の信頼性に従うべきです。すべてのサービスを99.999%にしても、ユーザーの利益を示さずにコストと複雑さを増やします。営業時間だけの管理ツールと決済認証サービスに、同じ目標をそのまま与えるべきではありません。
測定期間も重要です。時間で可用性を測る場合、月間99.9%の目標では30日間に43分12秒の失敗時間を許容します。リクエストベースでは対象イベントから予算を計算します。割合が異なる解釈を隠さないよう、方法を記録します。
有用な目標には次を明記します。
- ユーザー向けイベントと成功の条件
- 根拠のある除外を含む対象・除外トラフィック
- 目標の割合と測定期間
- 測定元と欠損データの扱い
- 消費が速すぎる場合の行動方針
エラーバジェットは信頼性と計画をつなぐ
エラーバジェットは、SLO期間内に許容されるサービス失敗の量です。使い切るための枠ではありません。サービスが現在どれだけのデリバリーリスクを吸収できるかを示す判断材料です。
予算に余裕があるチームは通常の安全策を見ながら計画済みリリースを続けられます。急な消費なら、公開範囲の縮小、依存先の改善、容量変更、信頼性への一時的な転換が必要です。予算を使い切ったら、制御された状態に戻るまで危険なリリースを止める根拠になります。
最終的な月次結果を待つより、消費速度を見る方が役立ちます。短時間で深刻なインシデントや、遅く続く劣化を捉えられます。短期と長期の観測期間を組み合わせれば、短い測定ノイズで人を起こさず、素早く対応できます。
本番準備と安全なリリース
本番準備とは、実際のユーザー通信を受ける前に、サービスを観測、復旧、保護、サポートできる状態です。テスト環境で通常経路が動くだけでは、機能は準備完了ではありません。
運用の最低条件を整える
正確なチェックリストはリスクにより異なりますが、すべてのサービスが同じ実務的な問いに答えるべきです。誰が所有するか。ユーザーへの影響をどう知るか。対応者が最初に何をできるか。データをどう復元するか。悪いリリースをどう止めるか。
簡潔な準備レビューでは次を扱います。
- ユーザー向け挙動に結び付くダッシュボードとアラート
- よくある失敗とエスカレーション条件の手順書
- バックアップ復元テスト、保持ルール、復旧目標
- 容量の前提、リソース制限、依存先の挙動
- デプロイ制御、ロールバック手順、アクセス制限
チェックリストは自動承認ではなく、証拠を記録すべきです。「バックアップ有効」より、最後の復元演習の日付と結果の方が強い証拠です。「ロールバック可能」より、所要時間が分かり、互換性のないデータ変更の計画がある、練習済み手順の方が強いです。
デプロイ時の影響範囲を制限する
段階的デリバリーは、新しいバージョンが有効性を示す間に影響を受けるユーザー数を減らします。カナリアリリースは、制御された一部のトラフィックを変更へ送り、旧版と関連指標を比べます。機能制御はコードのデプロイとユーザー公開を分け、問題の経路をリリース全体の置き換えなしで無効化できます。
これらには終了条件が必要です。拡大を許す測定値、中止を要する測定値、自動または手動で戻す測定値を定めます。放置された機能制御はテストしにくい組み合わせを作るため、担当者と削除日も必要です。
ロールバックが常に安全とは限りません。データベース移行、メッセージ形式変更、古い版が理解できない外部副作用を含む場合があります。その際は互換性のある段階移行か、検証済みのロールフォワード手順が必要です。復旧設計は、失敗後のインシデントチャットではなく、リリース計画に入れます。
容量と失敗時の挙動を試験する
負荷試験は、現実的なトラフィック、データ量、並行性で容量の前提が成り立つかを確かめます。任意の速度で簡単なリクエストを送るのではなく、希少な資源を消費する操作をモデル化する試験が有用です。
障害試験では、依存先のタイムアウト、利用不能なインスタンス、切れた接続、期限切れ認証情報、満杯のキュー、部分的なネットワーク障害を扱います。サービスが制御された形で失敗し、データ規則を守り、対応者に必要なシグナルを出すことを確かめます。アラート挙動と復旧を確認しない障害試験では、問いの半分しか答えていません。
インシデント対応とポストモーテム
効果的なインシデント対応は、定義済みの役割、制御された軽減、定期的な連絡で素早くサービスを復旧します。深い診断は、ユーザー影響が止まった後も続けられます。
繰り返せる対応フローを使う
最初の対応者はシグナルを確認し、想定される範囲を決め、重大度を割り当てます。重要なインシデントには、意思決定を調整するインシデント責任者、調査を導く技術責任者、一貫した更新を送る連絡担当者を置きます。小チームでは役割を兼ねられますが、責任は見える状態にします。
実用的なフローは五段階です。
- 顧客またはデータへの影響を検知して確認する
- 重大度、役割、連絡頻度、共有タイムラインを決める
- ロールバック、機能制御、スケーリング、分離、トラフィック制限で軽減する
- コンポーネント状態だけでなくユーザー向け指標で復旧を確認する
- 証拠を残し、学習レビューを予定する
軽減では、サービスを戻す最も低リスクな行動を優先します。新機能を無効化したり、互換性が分かっている版へ戻したりする前に、完全な原因説明は不要です。ただし、後の分析を証拠に基づかせるため、判断と観測は記録します。
役に立つ事実を伝える
インシデント更新には、ユーザーの体験、影響する機能、チームがしていること、次の更新時刻を記載します。推測は混乱を生み、沈黙はサポートチームや顧客に独自の説明を作らせます。
社内連絡にも同じ規律が必要です。一つのインシデントチャンネルまたは記録に、判断、時刻、組織システム内の運用証拠へのリンク、役割を集めます。並行した会話はあっても、重要な発見は共有タイムラインへ戻します。
再発防止のためにポストモーテムを書く
非難しないポストモーテムでは、顧客影響、検知、事象の順序、寄与条件、復旧、後続作業を記録します。非難しないことは曖昧にすることではありません。その時に使えた情報と制御のもとで、なぜ行動が合理的だったかを調べることです。
分析は最後の引き金を超えるべきです。デプロイが停止を招いたなら、なぜテストが見逃したか、なぜ公開範囲が広がったか、なぜ検知に時間がかかったか、なぜ復旧にその手順が必要だったかを問います。「人為ミス」は、組織が変えられる条件に届く前に分析を止めます。
各アクション項目には担当者、期限、検証可能な結果が必要です。回帰テスト、デプロイのガード、より明確な制限、アラート調整、自動化、手順書の修正などが含まれます。期限超過の項目を見直し、予防策が動いてから完了にします。
サービスの所有を支えるツール
サービス所有者には、ユーザー影響の把握、依存先をまたぐ挙動の追跡、リリース制御、インシデント作業の保持を可能にするツールが必要です。ツールは調査と復旧の時間を減らしますが、成果の所有者を決めることはできません。
オブザーバビリティは運用上の問いに答えるべき
ログは個別イベントを説明し、メトリクスは時間に沿う挙動を示し、トレースはサービス境界をまたぐ処理をつなげます。合わせて、ユーザーに影響があるか、遅延や失敗がどこで始まるか、何が変わったか、軽減が機能しているかに答えるべきです。
中央集約された構造化ログは、機械に分散した自由形式テキストより検索と相関が容易です。メトリクスは、レイテンシー、トラフィック、エラー、飽和度に加え、完了取引などのプロダクト成果を扱います。独立してデプロイされる複数サービスを一つのリクエストが通る場合、分散トレースは特に有用です。
保持期間は、調査の必要とプライバシー規則に合わせます。すべてのイベントを永遠に残すとコストとデータ露出が増えます。残し方が少なすぎると、遅い障害や報告の遅れた障害の証拠を失います。データ種別ごとに保持を定め、テレメトリーがアプリケーションを出る前にシークレットや機微な項目を除きます。
所有メタデータを最新に保つ
サービスカタログや開発者ポータルには、責任チーム、対応スケジュール、依存先、ダッシュボード、手順書、ソースの場所、信頼性目標を記録できます。価値はカタログの大きさではなく正確さにあります。
所有メタデータは、サービス作成とチーム移管のワークフローに含めるべきです。所有者なしに本番へ入れるべきではなく、再編時には前のチームがなくなる前に運用記録を更新します。自動検査は欠けた項目を検出でき、人は境界の妥当性を確認する責任を持ちます。
自動化で繰り返す手動リスクをなくす
標準的なデプロイパイプライン、テレメトリーの初期設定、インシデントテンプレート、復旧操作は、チーム間のばらつきを減らします。誤った復旧スクリプトや広すぎるデプロイ権限はインシデントの影響を広げるため、自動化もアプリケーションコードと同じくレビューとテストが必要です。
自動化が失敗した時のために、チームは理解可能な手動経路を保つべきです。目標は、誰も説明できないボタンへの依存ではなく、制御された運用です。
プラットフォームチームの役割
プラットフォームチームは、共有機能と安全な初期設定を提供し、プロダクトチームがプロダクトサービスの成果に責任を持ち続けられるようにします。プラットフォーム自体も、ユーザー、信頼性目標、サポート期待、責任チームを持つプロダクトです。
逃げ道のある舗装された道を提供する
舗装された道には、サービステンプレート、デリバリーパイプライン、ID制御、シークレット管理、実行時設定、ヘルスチェック、テレメトリー、承認済みデプロイパターンを含められます。これらの初期設定により、各プロダクトチームが専門的な設定を一から作る量を減らせます。
その道が独自実装より簡単で、制約が見えるなら採用は進みます。特殊な負荷には例外が必要です。文書化した例外手続きで、合わない設計を無理に押し付けず、リスクとサポートの必要を評価します。
ガードレールは、公開されたシークレットや所有者なしのデプロイのような、既知の危険状態を止めつつ、速いフィードバックを与えるべきです。日常的な変更ごとにチケット待ちをさせると、古い引き継ぎを新部署へ移しただけで、直接の責任が弱まります。
共有サービスとプロダクト所有を分ける
プラットフォームチームは、認証基盤、オーケストレーション環境、アーティファクトレジストリ、オブザーバビリティシステムを運用できます。プロダクトチームは引き続き、タイムアウト、フォールバック、権限、ユーザーに見える失敗を含め、アプリケーションがそれらをどう使うかを所有します。
プラットフォームチームは共有機能の可用性とサポートを所有します。利用側チームは統合と、プロダクトを通じてした約束を所有します。共有障害が複数サービスへ同時に影響する場合に備え、両チームには互換性のあるSLOとエスカレーション経路が必要です。
プラットフォームが作業を減らすか測る
プラットフォームは、設定時間、デプロイの労力、運用のばらつき、避けられるインシデントを減らすべきです。採用数だけでは不十分です。大きな摩擦を生むプラットフォームを、チームが必須だから使っているかもしれません。
本番準備済みサービスの作成時間、失敗したデプロイの原因、サポート需要、アップグレードの労力、一般的な作業への開発者の満足度が、有用なフィードバックです。機能を増やせば自動的に所有が改善すると考えず、プラットフォームチームはこれをプロダクトへの入力として使えます。
マネージドサービス、サーバーレス、AI生成コード
マネージド基盤や生成コードを使うと運用の境界は変わりますが、アプリケーションへの責任は消えません。プロバイダーがハードウェアや実行環境を運用しても、プロダクトチームは設定、データ、統合の挙動、ユーザーへの約束を所有します。
マネージドだから障害がないわけではない
マネージドデータベースでも、リージョン障害、クォータ制限、遅いクエリ、接続枯渇、互換性のないメンテナンス挙動が起きます。サービスチームは、プロバイダーの保証、使える制御、依存先が遅いまたは使えない時のアプリケーションの挙動を理解しなければなりません。
サーバーレスはサーバー管理の一部をなくしますが、並行実行制限、コールドスタート、イベント再試行、実行時間制限、呼び出しパターンに連動するコストという別の課題を持ちます。ホスト型のチェックリストを写すのではなく、このモデルに合う指標と手順書を用意します。
サードパーティAPIも同様です。タイムアウト、再試行上限、サーキット動作、依存先監視、劣化時の運用判断が必要です。無制限の再試行は、一つの依存先の問題をアプリケーション全体のリソース枯渇に変えます。
生成されたソフトウェアにも所有者が必要
AI支援やvibe-codingのツールは、アイデアから動くソフトウェアまでの時間を短縮できます。しかし、本番へ出す人またはチームが責任を持ちます。生成コードにも、レビュー、テスト、アクセス制御、オブザーバビリティ、データ処理、復旧で同じ基準が必要です。
生成前の計画は特に価値があります。境界が曖昧なら、デモでは動いても運用しにくいソフトウェアになり得ます。本番準備済みとみなす前に、ユーザー、データの所有、依存先、失敗時の挙動、デプロイモデル、サービス目標を定めます。
ソースへのアクセスも重要です。ツールやモデルが変わっても運用を続けられるよう、チームには挙動の確認、欠陥の修正、依存関係のレビューをする実用的な方法が必要です。作成時の便利さによって、本番所有者からアプリケーション運用に必要な制御を奪ってはいけません。
よくある失敗と現実的な調整
人員、権限、設計、計画を変えずに運用義務だけを割り当てると、このモデルは失敗します。その標語は、学ぶ仕組みではなくページャー負荷の正当化になります。
修正すべき失敗パターン
次のパターンにはすぐ注意が必要です。
- 開発者がオンコールを担うのに恒久対策を計画できない
- 最終決定者なしに複数チームへサービスの所有が分かれている
- 対応者が行動できない症状をアラートが報告する
- 利用チームが影響を与えられない共有依存先が障害を作る
- 火消しは評価されるのに予防は見えないまま
対策は状況によります。リーダーは余力を確保し、所有を明確にし、アラートを調整し、共有サービスの合意を定め、プラットフォーム作業に資金を出せます。壊れたローテーションに対応者を一人足しても、原因を減らさず害を広げるだけです。
規制のある環境
職務分離、監査可能なアクセス、正式な承認、制御された本番変更は、サービスの所有と両立します。プロダクトチームは、レビュー済みの手順と承認済みの役割で変更を実行しながら、信頼性の成果に責任を持てます。
事前承認されたインシデント操作、記録される緊急アクセス、機微な操作への同僚承認、権限を持つ運用者への練習済みエスカレーションが有用です。コンプライアンスは制御と証拠を定めるべきであり、誰がサービスを診断し、修正作業を所有するかを曖昧にしてはいけません。
レガシーモノリス
密に結合したモノリスでは、技術コンポーネント単位で明確に所有できないことがあります。チームが特定し測定できる、ユーザー体験、定期ジョブ、データ領域、業務機能の運用所有から始めます。
最初の作業は、より良いテレメトリー、安全なデプロイ、依存関係の把握、明確なインシデント役割であることが多いです。それらがないうちにコードをサービスへ分割すると、責任を解決せず運用面だけを増やす可能性があります。
小チームとグローバルなカバー
小さな会社では、各サービスに別々のローテーションを置いたり、常時の地域対応を提供したりできないかもしれません。関連サービスを一つのローテーションにまとめ、低リスクシステムは営業時間サポートにし、マネージド基盤を使い、深刻な事象には経営層へのエスカレーションを確保できます。
世界規模の組織では、follow-the-sunの対応で夜間の中断を減らせます。ただし引き継ぎには、最新のインシデント状態、明示的な所有移管、共有手順が必要です。地域を分けても、責任の曖昧さはそれだけでは解決しません。
モデルを段階的に導入する方法
導入は、組織全体へ広げる前に運用実践を証明する、範囲を限ったパイロットで最もうまく進みます。全社アナウンスだけでは、所有記録、役に立つアラート、継続可能なローテーションは作れません。
適したサービスを一つ選ぶ
明確なユーザー成果、分かっている依存関係、管理可能なリスクがあり、変更と本番挙動の両方を所有する意思のあるチームを選びます。最も壊れやすい共有システムから始めるのは避けます。問題が学習の過程を圧倒するからです。
サービス境界、責任チーム、本番連絡先、ユーザー向け指標、最初のSLO、主な失敗モード、復旧制御を記録します。人員判断が実際の需要を反映するよう、ローテーションを決める前に、現在のページ負荷と最近のインシデントを確認します。
最低限の運用システムを作る
パイロットには、責任を安全かつ測定可能にするための構造が必要です。ダッシュボード、実行可能なアラート、手順書、重大度ルール、エスカレーション経路、インシデント役割、リリース復旧方法を整えます。緊急権限の手続きを含め、インシデント前にアクセスを試します。
現実的な障害を使った対応演習を予定します。対応者に影響を診断させ、軽減を選び、状況を伝え、復旧を確認させます。本当の停止より安全に、権限不足や不明確な指示を見つけられます。
30日、60日、90日の流れを使う
最初の30日間は、所有を定め、指標とSLOを作り、よくある障害への対応を文書化し、最初のローテーションを作ります。パイロットを稼働扱いにする前に、サービスの設計とデータ復旧の必要を確認します。
31日目から60日目は、うるさいアラートを調整し、インシデント演習を行い、復元とロールバックを試し、すべてのページを見直します。この期間に見つかった反復手作業をなくすための余力をチームに与えます。
61日目から90日目は、成果を基準値と比べ、負荷の問題を直し、次のチーム向けに有用な初期設定をまとめます。日常的な英雄的対応なしでパイロットを運用できるようになってから、一つか二つのサービスへ広げます。
儀式ではなく成果を追う
導入指標は、このモデルがデリバリーと運用を改善するかを示すべきです。有用な指標には、デプロイ頻度、変更失敗率、サービス復旧時間、SLO達成度、ページ数、時間外中断、繰り返すインシデント原因があります。
数値には背景が必要です。デプロイ頻度の低下は、変更の大型化、リリース凍結、需要低下を示すことがあります。ページ数の減少は、信頼性向上か、アラートを無効にした結果かもしれません。方針を変える前に指標を一緒に見て、顧客影響と結び付けます。
チームの健康もレビューに含めます。ローテーションの公平さ、睡眠の中断、埋まらない担当枠、運用作業の時間、ポストモーテム項目に余力が与えられるかを追います。SLOを満たしても、それを保つ人を疲弊させるサービスは持続可能ではありません。
拡大の条件を定める
所有が明確で、対応者が安全にアクセスでき、アラートが実行可能で、よくある失敗に手順があり、復旧を試してあり、リーダーが予防作業に資金を出すなら、サービスはこのモデルの準備ができています。チームは具体的な証拠とともに「まだ準備できていない」と言えるべきです。
拡大では標準を再利用しますが、目標をそのまま複製しません。各サービスには、ユーザー、失敗の影響、設計、サポートの約束に応じた信頼性目標とカバー体制が必要です。運用原則は一貫させ、実装は実際のリスクに合わせます。
Koder.aiとの関係
Koder.aiは、Web、サーバー、モバイルアプリケーションを作成・運用するチームを支援できますが、信頼性要件と本番手順を定義するのは引き続きサービス所有者です。このプラットフォームは、チャットインターフェースと複数のエージェントを使い、技術者と非技術者が自然言語の指示からソフトウェアを作るのを助けます。
計画モードは、実装前にアプリケーション境界、依存関係、データ要件、運用上の受け入れ基準を記述する助けになります。スナップショットとロールバックは、リリースとインシデントの手順に組み込める復旧制御です。ソースコードのエクスポートにより、レビュー、テスト、継続的な所有に必要な実装へのアクセスを保てます。
Koder.aiはデプロイ、ホスティング、カスタムドメインを支援します。WebインターフェースにはReact、バックエンドにはGoとPostgreSQL、モバイル開発にはFlutterを使えます。こうした機能は準備を短縮しますが、チームは各本番アプリケーションで、監視、アラートしきい値、アクセス、バックアップ、インシデント役割、ユーザー重視の目標を設定する必要があります。
プラットフォームには無料、プロ、ビジネス、エンタープライズのプランがあります。価格を運用モデルの代わりと考えず、デプロイ、サポート、ガバナンス、共同作業の必要に応じて選びます。AWSベースのグローバル基盤は、データプライバシーや越境移転の要件がある場合、国別のアプリケーション配置も支援できます。
実用的なパイロットは、範囲を限ったアプリケーションを計画し、所有者を決め、測定可能なユーザー成果を定め、失敗したリリースをどう検知して戻すかを文書化することから始まります。構築とデプロイの速さは、できあがったサービスが公開後も観測可能で、復旧可能で、所有されている時にこそ持続する利点になります。
よくある質問
「You Build It, You Run It」とは何ですか?
サービスを作ったチームが、リリース後も責任を持つ考え方です。監視、インシデント対応、信頼性の改善、本番でユーザーが問題なく使えることの確認まで担います。
「You Build It, You Run It」を広めたのは誰ですか?
Amazonの最高技術責任者であるWerner Vogelsが広めました。アプリケーションを、公開後に他部署へ渡すプロジェクトではなく、継続的に運用するサービスとして扱うモデルです。
すべての開発者が運用の専門家になる必要がありますか?
いいえ。開発者には自分たちのサービスを診断し改善するための運用知識が必要ですが、プラットフォーム、セキュリティ、データベース、インフラの専門家は共有基盤と深い支援を提供します。
サービスを所有するチームにはどんな権限が必要ですか?
責任とともに実際の権限が必要です。本番の可視性、安全なデプロイ権限、ロールバックまたは機能制御、エスカレーション経路、信頼性向上に充てる計画済みの時間が含まれます。
サービスの所有とは、障害を開発者のせいにすることですか?
いいえ。説明責任とは、対応と再発防止をチームが担うことです。良いレビューでは、テスト不足、安全策の欠如、遅いアラート、不明確な復旧手順などの条件を調べ、一人を責めません。
チームはどうすれば疲弊せずにオンコールを運用できますか?
すぐ対応すればユーザーやデータへの被害を防げる場合だけ呼び出します。緊急ではない問題はチケットや定期レビューへ回し、繰り返す呼び出しは恒久対策が必要な技術課題として扱います。
SLI、SLO、SLAの違いは何ですか?
SLIは成功リクエストなど、ユーザーに関係する結果の測定値です。SLOはその結果に対する一定期間の社内目標です。SLAは合意水準を下回った場合に契約上の救済を含むことがある外部への約束です。
サービスの所有はリリースをどう安全にしますか?
小さく観測可能なリリースはリスクを下げます。段階的な公開、機能制御、明確な中止条件、検証済みのロールバックまたはロールフォワード計画を使い、デプロイ中はインフラの健全性だけでなくユーザー向け指標を確認します。
マネージドサービスやAI生成コードで本番責任はなくなりますか?
マネージド基盤はインフラ作業の一部を減らしますが、アプリケーションチームは設定、データ処理、依存先の挙動、ユーザーへの影響、監視、復旧を引き続き担います。生成されたコードにもレビュー、テスト、アクセス制御、運用計画が必要です。
チームはこのモデルをどう導入すればよいですか?
明確なユーザー成果があり、引き受ける意思のあるチームがいる、範囲の限られたサービスから始めます。担当を決め、指標と最初のSLOを定め、実行可能なアラートと手順書を作り、復旧を試してから学びを次のサービスに広げます。