ストーリー
自動化のスコープ
何を自動化するか
CI/CD基盤の運用で自動化すべき領域を整理します。
| 領域 | 手動時のコスト | 自動化の効果 |
|---|---|---|
| ランナーのスケーリング | ビルドキュー待ち、手動プロビジョニング | 需要に応じた自動スケーリング |
| 共有ライブラリの更新 | 各チームへの通知、手動更新依頼 | 自動PRと通知 |
| セキュリティパッチ適用 | 脆弱性発見→手動対応 | 自動検知→自動修正PR |
| コスト最適化 | 月次のコストレビュー | 未使用リソースの自動削除 |
| 障害検知と復旧 | 手動監視、手動対応 | 自動検知→自動復旧 |
| コンプライアンスレポート | 監査時の手動データ収集 | 自動レポート生成 |
自動化の優先順位
すべてを一度に自動化することはできません。ROI(投資対効果)で優先順位をつけます。
| 優先度 | 自動化対象 | ROI | 理由 |
|---|---|---|---|
| 高 | セキュリティパッチ適用 | 高 | リスク低減効果が大きい |
| 高 | ランナースケーリング | 高 | 開発者体験への直接的影響 |
| 中 | 共有ライブラリ更新 | 中 | 更新作業の工数削減 |
| 中 | コンプライアンスレポート | 中 | 監査対応の工数削減 |
| 低 | コスト最適化 | 中 | 効果は大きいが緊急性は低い |
自動化パターン
パターン1: イベント駆動自動化
特定のイベントをトリガーに自動処理を実行します。
# 新しいCVEが公開されたときの自動対応
on_new_cve:
trigger: "Snyk webhook / GitHub Advisory Database"
actions:
- scan_all_repositories
- create_issues_for_affected_repos
- auto_create_fix_prs (if patch available)
- notify_security_team
- update_dashboard
パターン2: スケジュール駆動自動化
定期的に実行する自動化タスクです。
| タスク | スケジュール | 内容 |
|---|---|---|
| 依存関係の更新チェック | 日次 | Dependabotの実行 |
| 未使用リソースの検出 | 週次 | エフェメラル環境のクリーンアップ |
| コストレポート生成 | 月次 | CI/CDインフラのコスト分析 |
| コンプライアンスレポート | 月次 | 監査証跡の自動収集 |
| セキュリティポリシー監査 | 週次 | 全リポジトリのポリシー準拠チェック |
パターン3: 閾値駆動自動化
メトリクスが閾値を超えたときに自動対応します。
| メトリクス | 閾値 | アクション |
|---|---|---|
| ランナーキュー待ち時間 | > 5分 | 追加ランナーの自動プロビジョニング |
| ビルド時間の劣化 | p95 > 20分 | キャッシュの自動リビルド |
| ストレージ使用量 | > 80% | 古いアーティファクトの自動削除 |
| エラー率の急増 | 前日比200% | 自動アラート + インシデント作成 |
まとめ
| ポイント | 内容 |
|---|---|
| 自動化スコープ | パイプラインの中ではなく、基盤自体の運用を自動化 |
| 優先順位 | セキュリティとDXへの影響が大きいものを優先 |
| 3パターン | イベント駆動、スケジュール駆動、閾値駆動 |
チェックリスト
- CI/CD基盤の運用自動化のスコープを理解した
- 自動化の優先順位付けの考え方を理解した
- 3つの自動化パターンを理解した
次のステップへ
次は「Infrastructure as Code for CI/CD」です。CI/CD基盤自体をIaCで管理する方法を学びましょう。
推定読了時間: 30分