LESSON 15分

ストーリー

田中VPoE
IaCで基盤を管理できるようになった。最後のピースは「自己修復」と「セルフサービス」だ
あなた
自己修復というのは、障害が起きたら自動的に復旧するということですか?
田中VPoE
そうだ。プラットフォームチーム5人で20チームを24時間365日サポートするのは不可能だ。基盤自身が問題を検知し、可能な限り自動で修復する仕組みが必要だ。そしてチームがプラットフォームチームに依頼しなくても自分で必要な操作ができる「セルフサービス」も不可欠だ

自己修復パターン

パターン1: ランナーの自動復旧

障害検知方法自動修復
ランナーPodのクラッシュKubernetes Liveness ProbePod自動再起動
ランナーの応答なしHealth Check タイムアウトPod自動置換
ノードの障害Node Not ReadyPod再スケジュール
キュー滞留メトリクス閾値追加ランナー自動起動

パターン2: キャッシュの自動再構築

ビルドキャッシュの破損や期限切れを自動的に検知し、再構築します。

トリガーアクション
キャッシュヒット率が50%以下に低下共通依存のキャッシュを自動ウォームアップ
ビルド時間がp95で2倍以上に劣化キャッシュの自動パージと再構築

パターン3: 設定ドリフトの自動修正

IaCで定義された状態と実際の状態の差分(ドリフト)を検知し、自動修正します。

# 設定ドリフト検知ワークフロー
name: Configuration Drift Check
on:
  schedule:
    - cron: "0 */6 * * *"  # 6時間ごと

jobs:
  drift-check:
    runs-on: ubuntu-latest
    steps:
      - name: Terraform Plan
        run: terraform plan -detailed-exitcode
        # exit code 2 = 差分あり

      - name: Auto Correct (if drift detected)
        if: steps.plan.outcome == 'failure'
        run: |
          # 軽微なドリフト: 自動修正
          # 重大なドリフト: アラート発報
          terraform apply -auto-approve

セルフサービスポータル

チームが自分でできること

プラットフォームチームに依頼せずに、チームが自律的に実行できる操作を提供します。

操作セルフサービス方法承認
新プロジェクト作成テンプレートリポジトリからの作成自動(テンプレート選択のみ)
環境変数の追加GitHub Settings UIチームリード承認
デプロイの実行ワークフローの手動トリガー環境に応じた承認
ランナーラベルの追加PRで設定ファイル変更プラットフォームチーム承認
ダッシュボードの閲覧Grafanaダッシュボード認証のみ

セルフサービスの段階

Level 1: 情報の自己取得
  → ダッシュボード、ドキュメント、FAQ

Level 2: 標準操作の自己実行
  → プロジェクト作成、デプロイ、環境変数

Level 3: カスタマイズの自己実行
  → パイプラインのカスタマイズ、追加ツール導入

まとめ

ポイント内容
自己修復ランナー復旧、キャッシュ再構築、ドリフト修正を自動化
セルフサービスチームが自律的に操作できるポータルを提供
目的5人のプラットフォームチームで20チームを持続的にサポート

チェックリスト

  • 自己修復の3パターンを理解した
  • セルフサービスの段階を理解した
  • プラットフォームチームの負荷軽減の考え方を理解した

次のステップへ

次は演習です。ここまで学んだ自動化戦略、IaC、自己修復、セルフサービスを統合して、運用自動化を設計してみましょう。


推定読了時間: 15分