@k2works/claude-code-booster 1.10.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +42 -42
- package/bin/claude-code-booster +79 -79
- package/lib/assets/.claude/README.md +162 -162
- package/lib/assets/.claude/SKILLS_TEMPLATE.md +100 -100
- package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
- package/lib/assets/.claude/settings.json +11 -11
- package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +119 -119
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +87 -87
- package/lib/assets/.claude/skills/analyzing-business/SKILL.md +117 -117
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +80 -80
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +88 -88
- package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +137 -137
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +89 -87
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +102 -102
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +87 -87
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +86 -86
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +87 -87
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +115 -115
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +106 -106
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +96 -96
- package/lib/assets/.claude/skills/developing-release/SKILL.md +154 -154
- package/lib/assets/.claude/skills/generating-slides/SKILL.md +136 -136
- package/lib/assets/.claude/skills/git-commit/SKILL.md +106 -106
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +98 -98
- package/lib/assets/.claude/skills/managing-docs/SKILL.md +200 -200
- package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +77 -77
- package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +80 -80
- package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +84 -84
- package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +75 -75
- package/lib/assets/.claude/skills/managing-operations/SKILL.md +156 -156
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +134 -134
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +243 -243
- package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +193 -193
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +222 -222
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +164 -164
- package/lib/assets/.devcontainer/devcontainer.json +34 -34
- package/lib/assets/.env.example +17 -17
- package/lib/assets/.gitattributes +4 -4
- package/lib/assets/.github/workflows/docker-publish.yml +77 -77
- package/lib/assets/.github/workflows/mkdocs.yml +39 -39
- package/lib/assets/AGENTS.md +94 -94
- package/lib/assets/CLAUDE.md +162 -162
- package/lib/assets/README.md +285 -269
- package/lib/assets/docker-compose.yml +33 -33
- package/lib/assets/docs/assets/css/extra.css +29 -29
- package/lib/assets/docs/assets/js/extra.js +44 -44
- package/lib/assets/docs/index.md +14 -14
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +532 -532
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +341 -341
- package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +578 -578
- package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +465 -465
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +448 -448
- package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +242 -242
- package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2216 -2216
- package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1878 -1878
- package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +554 -554
- package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +705 -705
- package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1313 -1313
- package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +311 -311
- package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +599 -599
- package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +528 -528
- package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +682 -682
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +442 -442
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +558 -558
- package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +663 -663
- package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1248 -1248
- package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +392 -392
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +235 -235
- package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1236 -1236
- package/lib/assets/docs/template/ADR.md +30 -30
- package/lib/assets/docs/template/README.md +50 -50
- package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +12 -12
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +58 -58
- package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +13 -13
- package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +379 -379
- package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +68 -68
- package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
- package/lib/assets/docs/template//350/250/255/350/250/210.md +163 -163
- package/lib/assets/gulpfile.js +23 -23
- package/lib/assets/mkdocs.yml +65 -65
- package/lib/assets/ops/docker/mkdoc/Dockerfile +19 -19
- package/lib/assets/ops/scripts/journal.js +180 -180
- package/lib/assets/ops/scripts/mkdocs.js +82 -82
- package/lib/assets/ops/scripts/release.js +431 -431
- package/lib/assets/ops/scripts/ssh.js +190 -190
- package/lib/assets/ops/scripts/vault.js +299 -299
- package/lib/assets/package-lock.json +1653 -1653
- package/lib/assets/package.json +40 -40
- package/lib/gulpfile.js +37 -37
- package/package.json +41 -41
|
@@ -1,393 +1,393 @@
|
|
|
1
|
-
# 運用要件定義ガイド
|
|
2
|
-
|
|
3
|
-
## 運用要件の概要
|
|
4
|
-
|
|
5
|
-
運用要件とは、システムが本番環境で稼働する際に必要となる要件のことです。これには監視、バックアップ、セキュリティ、運用手順などが含まれます。よいソフトウェアを実現するために、開発段階から運用性を考慮した設計・実装が重要です。
|
|
6
|
-
|
|
7
|
-
## 運用要件の種類
|
|
8
|
-
|
|
9
|
-
### 監視要件
|
|
10
|
-
|
|
11
|
-
```plantuml
|
|
12
|
-
@startuml
|
|
13
|
-
!define RECTANGLE class
|
|
14
|
-
|
|
15
|
-
RECTANGLE "システム監視" {
|
|
16
|
-
+ リソース監視
|
|
17
|
-
+ パフォーマンス監視
|
|
18
|
-
+ アプリケーション監視
|
|
19
|
-
+ エラー監視
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
RECTANGLE "ビジネス監視" {
|
|
23
|
-
+ KPI 監視
|
|
24
|
-
+ SLA 監視
|
|
25
|
-
+ ユーザー行動監視
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
RECTANGLE "セキュリティ監視" {
|
|
29
|
-
+ 不正アクセス検知
|
|
30
|
-
+ セキュリティイベント監視
|
|
31
|
-
+ 脆弱性監視
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@enduml
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
#### システム監視
|
|
38
|
-
- **リソース監視**: CPU、メモリ、ディスク、ネットワーク使用率
|
|
39
|
-
- **パフォーマンス監視**: レスポンス時間、スループット
|
|
40
|
-
- **可用性監視**: サービス稼働状況、ヘルスチェック
|
|
41
|
-
- **エラー監視**: アプリケーションエラー、システムエラー
|
|
42
|
-
|
|
43
|
-
#### ビジネス監視
|
|
44
|
-
- **KPI 監視**: ビジネス重要指標の追跡
|
|
45
|
-
- **SLA 監視**: サービスレベル合意の監視
|
|
46
|
-
- **ユーザー行動監視**: アクセスパターン、利用状況
|
|
47
|
-
|
|
48
|
-
#### セキュリティ監視
|
|
49
|
-
- **不正アクセス検知**: 異常なアクセスパターンの検知
|
|
50
|
-
- **セキュリティイベント監視**: セキュリティ関連ログの監視
|
|
51
|
-
- **脆弱性監視**: セキュリティリスクの継続的監視
|
|
52
|
-
|
|
53
|
-
### バックアップ・リカバリ要件
|
|
54
|
-
|
|
55
|
-
```plantuml
|
|
56
|
-
@startuml
|
|
57
|
-
!define RECTANGLE class
|
|
58
|
-
|
|
59
|
-
RECTANGLE "バックアップ戦略" {
|
|
60
|
-
+ データバックアップ
|
|
61
|
-
+ システムバックアップ
|
|
62
|
-
+ 設定バックアップ
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
RECTANGLE "リカバリ戦略" {
|
|
66
|
-
+ 障害対応手順
|
|
67
|
-
+ データ復旧手順
|
|
68
|
-
+ サービス復旧手順
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
RECTANGLE "災害復旧" {
|
|
72
|
-
+ DR サイト運用
|
|
73
|
-
+ BCP 対応
|
|
74
|
-
+ データセンター冗長化
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@enduml
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
#### バックアップ要件
|
|
81
|
-
- **バックアップ頻度**: 日次、週次、月次バックアップ
|
|
82
|
-
- **保存期間**: データ保持ポリシーに基づく保存期間
|
|
83
|
-
- **バックアップ範囲**: データベース、ファイル、システム設定
|
|
84
|
-
- **バックアップ検証**: 定期的なリストアテスト
|
|
85
|
-
|
|
86
|
-
#### リカバリ要件
|
|
87
|
-
- **RTO (Recovery Time Objective)**: 復旧時間目標
|
|
88
|
-
- **RPO (Recovery Point Objective)**: 復旧ポイント目標
|
|
89
|
-
- **リカバリ手順**: 段階的な復旧プロセス
|
|
90
|
-
- **データ整合性**: リカバリ後のデータ一貫性確保
|
|
91
|
-
|
|
92
|
-
### セキュリティ運用要件
|
|
93
|
-
|
|
94
|
-
```plantuml
|
|
95
|
-
@startuml
|
|
96
|
-
!define RECTANGLE class
|
|
97
|
-
|
|
98
|
-
RECTANGLE "アクセス管理" {
|
|
99
|
-
+ 認証・認可
|
|
100
|
-
+ アカウント管理
|
|
101
|
-
+ 権限管理
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
RECTANGLE "セキュリティ監査" {
|
|
105
|
-
+ ログ監査
|
|
106
|
-
+ アクセス監査
|
|
107
|
-
+ 設定監査
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
RECTANGLE "脅威対応" {
|
|
111
|
-
+ インシデント対応
|
|
112
|
-
+ 脆弱性対応
|
|
113
|
-
+ セキュリティパッチ適用
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@enduml
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
#### アクセス管理
|
|
120
|
-
- **認証システム**: 多要素認証、SSO 連携
|
|
121
|
-
- **アカウント管理**: ユーザーライフサイクル管理
|
|
122
|
-
- **権限管理**: 最小権限の原則、定期的な権限見直し
|
|
123
|
-
|
|
124
|
-
#### セキュリティ監査
|
|
125
|
-
- **アクセスログ**: すべてのアクセスの記録・監査
|
|
126
|
-
- **操作ログ**: 重要な操作の追跡可能性
|
|
127
|
-
- **設定変更**: システム設定変更の記録・承認
|
|
128
|
-
|
|
129
|
-
#### 脅威対応
|
|
130
|
-
- **インシデント対応**: セキュリティ事故対応手順
|
|
131
|
-
- **脆弱性管理**: 定期的な脆弱性スキャン・対応
|
|
132
|
-
- **パッチ管理**: セキュリティパッチの計画的適用
|
|
133
|
-
|
|
134
|
-
### 運用手順・保守要件
|
|
135
|
-
|
|
136
|
-
```plantuml
|
|
137
|
-
@startuml
|
|
138
|
-
!define RECTANGLE class
|
|
139
|
-
|
|
140
|
-
RECTANGLE "日常運用" {
|
|
141
|
-
+ システム監視
|
|
142
|
-
+ 定期メンテナンス
|
|
143
|
-
+ 障害対応
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
RECTANGLE "変更管理" {
|
|
147
|
-
+ リリース管理
|
|
148
|
-
+ 設定変更管理
|
|
149
|
-
+ 緊急変更対応
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
RECTANGLE "保守管理" {
|
|
153
|
-
+ 予防保守
|
|
154
|
-
+ 計画保守
|
|
155
|
-
+ 緊急保守
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
@enduml
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
#### 日常運用
|
|
162
|
-
- **監視体制**: 24時間365日監視体制
|
|
163
|
-
- **アラート対応**: 重要度に応じたエスカレーション
|
|
164
|
-
- **定期点検**: システム稼働状況の定期確認
|
|
165
|
-
|
|
166
|
-
#### 変更管理
|
|
167
|
-
- **リリース手順**: 本番リリースの標準手順
|
|
168
|
-
- **ロールバック手順**: 問題発生時の切り戻し手順
|
|
169
|
-
- **変更承認**: 変更に対する承認プロセス
|
|
170
|
-
|
|
171
|
-
#### 保守管理
|
|
172
|
-
- **メンテナンス計画**: 計画的なシステムメンテナンス
|
|
173
|
-
- **容量管理**: リソース使用量の監視・拡張計画
|
|
174
|
-
- **ライフサイクル管理**: システム更改・廃止計画
|
|
175
|
-
|
|
176
|
-
## 運用要件定義のプロセス
|
|
177
|
-
|
|
178
|
-
### 1. 現状分析
|
|
179
|
-
|
|
180
|
-
```plantuml
|
|
181
|
-
@startuml
|
|
182
|
-
start
|
|
183
|
-
:既存システム調査;
|
|
184
|
-
:運用実態把握;
|
|
185
|
-
:課題抽出;
|
|
186
|
-
:改善点識別;
|
|
187
|
-
stop
|
|
188
|
-
@enduml
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
- **既存運用**: 現在の運用手順・体制の調査
|
|
192
|
-
- **課題識別**: 運用上の問題点・改善点の抽出
|
|
193
|
-
- **ベンチマーク**: 他システム・業界標準との比較
|
|
194
|
-
|
|
195
|
-
### 2. 要件定義
|
|
196
|
-
|
|
197
|
-
```plantuml
|
|
198
|
-
@startuml
|
|
199
|
-
start
|
|
200
|
-
:ビジネス要件確認;
|
|
201
|
-
:運用ポリシー策定;
|
|
202
|
-
:技術要件定義;
|
|
203
|
-
:運用レベル設定;
|
|
204
|
-
stop
|
|
205
|
-
@enduml
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
- **サービスレベル定義**: SLA、SLO、SLI の設定
|
|
209
|
-
- **運用ポリシー**: セキュリティ、バックアップ等のポリシー
|
|
210
|
-
- **技術要件**: 監視ツール、運用ツールの要件
|
|
211
|
-
|
|
212
|
-
### 3. 運用設計
|
|
213
|
-
|
|
214
|
-
```plantuml
|
|
215
|
-
@startuml
|
|
216
|
-
start
|
|
217
|
-
:監視設計;
|
|
218
|
-
:運用手順設計;
|
|
219
|
-
:体制設計;
|
|
220
|
-
:ツール設計;
|
|
221
|
-
stop
|
|
222
|
-
@enduml
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
- **監視設計**: 監視項目・閾値・アラート設計
|
|
226
|
-
- **手順書作成**: 運用手順書・障害対応手順書
|
|
227
|
-
- **体制設計**: 運用体制・役割分担・エスカレーション
|
|
228
|
-
|
|
229
|
-
### 4. 運用準備
|
|
230
|
-
|
|
231
|
-
```plantuml
|
|
232
|
-
@startuml
|
|
233
|
-
start
|
|
234
|
-
:環境構築;
|
|
235
|
-
:ツール導入;
|
|
236
|
-
:手順書整備;
|
|
237
|
-
:運用訓練;
|
|
238
|
-
stop
|
|
239
|
-
@enduml
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
- **環境準備**: 監視環境・運用ツール環境構築
|
|
243
|
-
- **手順書整備**: 運用手順書・マニュアル作成
|
|
244
|
-
- **運用訓練**: 障害対応訓練・手順確認
|
|
245
|
-
|
|
246
|
-
## 運用要件の品質基準
|
|
247
|
-
|
|
248
|
-
### SMART 原則
|
|
249
|
-
|
|
250
|
-
運用要件は SMART 原則に従って定義します:
|
|
251
|
-
|
|
252
|
-
- **Specific (具体的)**: 曖昧さのない明確な要件
|
|
253
|
-
- **Measurable (測定可能)**: 数値で測定可能な要件
|
|
254
|
-
- **Achievable (達成可能)**: 現実的に達成可能な要件
|
|
255
|
-
- **Relevant (関連性)**: ビジネス目標に関連した要件
|
|
256
|
-
- **Time-bound (期限)**: 明確な期限・頻度を持つ要件
|
|
257
|
-
|
|
258
|
-
### サービスレベル定義
|
|
259
|
-
|
|
260
|
-
```plantuml
|
|
261
|
-
@startuml
|
|
262
|
-
!define RECTANGLE class
|
|
263
|
-
|
|
264
|
-
RECTANGLE "SLI" {
|
|
265
|
-
+ 可用性
|
|
266
|
-
+ レスポンス時間
|
|
267
|
-
+ エラー率
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
RECTANGLE "SLO" {
|
|
271
|
-
+ 可用性 99.9%
|
|
272
|
-
+ レスポンス時間 < 200ms
|
|
273
|
-
+ エラー率 < 0.1%
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
RECTANGLE "SLA" {
|
|
277
|
-
+ 顧客との合意事項
|
|
278
|
-
+ ペナルティ条項
|
|
279
|
-
+ 免責事項
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
SLI --> SLO : 測定
|
|
283
|
-
SLO --> SLA : 合意
|
|
284
|
-
@enduml
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
#### SLI (Service Level Indicator)
|
|
288
|
-
- **可用性**: システム稼働率
|
|
289
|
-
- **レスポンス時間**: API・画面応答時間
|
|
290
|
-
- **エラー率**: エラー発生率
|
|
291
|
-
|
|
292
|
-
#### SLO (Service Level Objective)
|
|
293
|
-
- **目標設定**: 具体的な数値目標
|
|
294
|
-
- **測定期間**: 月次・四半期・年次
|
|
295
|
-
- **エラーバジェット**: 許容エラー範囲
|
|
296
|
-
|
|
297
|
-
#### SLA (Service Level Agreement)
|
|
298
|
-
- **顧客合意**: サービス提供の合意事項
|
|
299
|
-
- **補償条項**: SLA 未達成時の対応
|
|
300
|
-
- **免責条項**: 責任範囲の明確化
|
|
301
|
-
|
|
302
|
-
## 運用要件のベストプラクティス
|
|
303
|
-
|
|
304
|
-
### 1. 運用性を考慮した設計
|
|
305
|
-
|
|
306
|
-
- **Observability**: システムの内部状態を外部から観測可能に
|
|
307
|
-
- **Graceful Degradation**: 段階的な機能縮退
|
|
308
|
-
- **Circuit Breaker**: 障害の連鎖防止機能
|
|
309
|
-
- **Health Check**: システム状態確認機能
|
|
310
|
-
|
|
311
|
-
### 2. 自動化の推進
|
|
312
|
-
|
|
313
|
-
```plantuml
|
|
314
|
-
@startuml
|
|
315
|
-
start
|
|
316
|
-
:手作業識別;
|
|
317
|
-
:自動化可能性評価;
|
|
318
|
-
:自動化実装;
|
|
319
|
-
:効果測定;
|
|
320
|
-
:継続改善;
|
|
321
|
-
stop
|
|
322
|
-
@enduml
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
- **デプロイ自動化**: CI/CD パイプライン構築
|
|
326
|
-
- **監視自動化**: 自動アラート・自動復旧
|
|
327
|
-
- **テスト自動化**: 運用テストの自動実行
|
|
328
|
-
|
|
329
|
-
### 3. インシデント管理
|
|
330
|
-
|
|
331
|
-
```plantuml
|
|
332
|
-
@startuml
|
|
333
|
-
start
|
|
334
|
-
:インシデント検知;
|
|
335
|
-
:初期対応;
|
|
336
|
-
:エスカレーション;
|
|
337
|
-
:復旧作業;
|
|
338
|
-
:事後分析;
|
|
339
|
-
:改善実施;
|
|
340
|
-
stop
|
|
341
|
-
@enduml
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
- **早期検知**: 監視による迅速な問題発見
|
|
345
|
-
- **迅速対応**: 明確な対応手順・体制
|
|
346
|
-
- **学習文化**: ポストモーテムによる継続改善
|
|
347
|
-
|
|
348
|
-
### 4. セキュリティファースト
|
|
349
|
-
|
|
350
|
-
- **Zero Trust**: すべてのアクセスを検証
|
|
351
|
-
- **最小権限**: 必要最小限の権限付与
|
|
352
|
-
- **多層防御**: 複数のセキュリティ対策
|
|
353
|
-
- **継続監視**: 24時間体制のセキュリティ監視
|
|
354
|
-
|
|
355
|
-
## 運用要件の管理・改善
|
|
356
|
-
|
|
357
|
-
### 継続的改善
|
|
358
|
-
|
|
359
|
-
```plantuml
|
|
360
|
-
@startuml
|
|
361
|
-
title PDCA サイクル
|
|
362
|
-
|
|
363
|
-
start
|
|
364
|
-
:Plan\n運用計画策定;
|
|
365
|
-
:Do\n運用実行;
|
|
366
|
-
:Check\n運用状況確認;
|
|
367
|
-
:Action\n改善実施;
|
|
368
|
-
|
|
369
|
-
note right
|
|
370
|
-
・KPI 測定
|
|
371
|
-
・課題抽出
|
|
372
|
-
・改善計画
|
|
373
|
-
end note
|
|
374
|
-
|
|
375
|
-
stop
|
|
376
|
-
@enduml
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
- **定期レビュー**: 運用状況・課題の定期確認
|
|
380
|
-
- **KPI 測定**: 運用効率・品質指標の測定
|
|
381
|
-
- **改善計画**: 継続的な運用改善
|
|
382
|
-
|
|
383
|
-
### ドキュメント管理
|
|
384
|
-
|
|
385
|
-
- **手順書更新**: 最新状態の維持・版数管理
|
|
386
|
-
- **知識共有**: 運用ナレッジの組織内共有
|
|
387
|
-
- **教育・訓練**: 運用スキルの継続的向上
|
|
388
|
-
|
|
389
|
-
## まとめ
|
|
390
|
-
|
|
391
|
-
運用要件は、システムの長期的な成功に直結する重要な要件です。開発初期から運用性を考慮し、継続的に改善していくことで、「変更を楽に安全にできて役に立つソフトウェア」の実現が可能になります。
|
|
392
|
-
|
|
1
|
+
# 運用要件定義ガイド
|
|
2
|
+
|
|
3
|
+
## 運用要件の概要
|
|
4
|
+
|
|
5
|
+
運用要件とは、システムが本番環境で稼働する際に必要となる要件のことです。これには監視、バックアップ、セキュリティ、運用手順などが含まれます。よいソフトウェアを実現するために、開発段階から運用性を考慮した設計・実装が重要です。
|
|
6
|
+
|
|
7
|
+
## 運用要件の種類
|
|
8
|
+
|
|
9
|
+
### 監視要件
|
|
10
|
+
|
|
11
|
+
```plantuml
|
|
12
|
+
@startuml
|
|
13
|
+
!define RECTANGLE class
|
|
14
|
+
|
|
15
|
+
RECTANGLE "システム監視" {
|
|
16
|
+
+ リソース監視
|
|
17
|
+
+ パフォーマンス監視
|
|
18
|
+
+ アプリケーション監視
|
|
19
|
+
+ エラー監視
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
RECTANGLE "ビジネス監視" {
|
|
23
|
+
+ KPI 監視
|
|
24
|
+
+ SLA 監視
|
|
25
|
+
+ ユーザー行動監視
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
RECTANGLE "セキュリティ監視" {
|
|
29
|
+
+ 不正アクセス検知
|
|
30
|
+
+ セキュリティイベント監視
|
|
31
|
+
+ 脆弱性監視
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@enduml
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### システム監視
|
|
38
|
+
- **リソース監視**: CPU、メモリ、ディスク、ネットワーク使用率
|
|
39
|
+
- **パフォーマンス監視**: レスポンス時間、スループット
|
|
40
|
+
- **可用性監視**: サービス稼働状況、ヘルスチェック
|
|
41
|
+
- **エラー監視**: アプリケーションエラー、システムエラー
|
|
42
|
+
|
|
43
|
+
#### ビジネス監視
|
|
44
|
+
- **KPI 監視**: ビジネス重要指標の追跡
|
|
45
|
+
- **SLA 監視**: サービスレベル合意の監視
|
|
46
|
+
- **ユーザー行動監視**: アクセスパターン、利用状況
|
|
47
|
+
|
|
48
|
+
#### セキュリティ監視
|
|
49
|
+
- **不正アクセス検知**: 異常なアクセスパターンの検知
|
|
50
|
+
- **セキュリティイベント監視**: セキュリティ関連ログの監視
|
|
51
|
+
- **脆弱性監視**: セキュリティリスクの継続的監視
|
|
52
|
+
|
|
53
|
+
### バックアップ・リカバリ要件
|
|
54
|
+
|
|
55
|
+
```plantuml
|
|
56
|
+
@startuml
|
|
57
|
+
!define RECTANGLE class
|
|
58
|
+
|
|
59
|
+
RECTANGLE "バックアップ戦略" {
|
|
60
|
+
+ データバックアップ
|
|
61
|
+
+ システムバックアップ
|
|
62
|
+
+ 設定バックアップ
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
RECTANGLE "リカバリ戦略" {
|
|
66
|
+
+ 障害対応手順
|
|
67
|
+
+ データ復旧手順
|
|
68
|
+
+ サービス復旧手順
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
RECTANGLE "災害復旧" {
|
|
72
|
+
+ DR サイト運用
|
|
73
|
+
+ BCP 対応
|
|
74
|
+
+ データセンター冗長化
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@enduml
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### バックアップ要件
|
|
81
|
+
- **バックアップ頻度**: 日次、週次、月次バックアップ
|
|
82
|
+
- **保存期間**: データ保持ポリシーに基づく保存期間
|
|
83
|
+
- **バックアップ範囲**: データベース、ファイル、システム設定
|
|
84
|
+
- **バックアップ検証**: 定期的なリストアテスト
|
|
85
|
+
|
|
86
|
+
#### リカバリ要件
|
|
87
|
+
- **RTO (Recovery Time Objective)**: 復旧時間目標
|
|
88
|
+
- **RPO (Recovery Point Objective)**: 復旧ポイント目標
|
|
89
|
+
- **リカバリ手順**: 段階的な復旧プロセス
|
|
90
|
+
- **データ整合性**: リカバリ後のデータ一貫性確保
|
|
91
|
+
|
|
92
|
+
### セキュリティ運用要件
|
|
93
|
+
|
|
94
|
+
```plantuml
|
|
95
|
+
@startuml
|
|
96
|
+
!define RECTANGLE class
|
|
97
|
+
|
|
98
|
+
RECTANGLE "アクセス管理" {
|
|
99
|
+
+ 認証・認可
|
|
100
|
+
+ アカウント管理
|
|
101
|
+
+ 権限管理
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
RECTANGLE "セキュリティ監査" {
|
|
105
|
+
+ ログ監査
|
|
106
|
+
+ アクセス監査
|
|
107
|
+
+ 設定監査
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
RECTANGLE "脅威対応" {
|
|
111
|
+
+ インシデント対応
|
|
112
|
+
+ 脆弱性対応
|
|
113
|
+
+ セキュリティパッチ適用
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@enduml
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### アクセス管理
|
|
120
|
+
- **認証システム**: 多要素認証、SSO 連携
|
|
121
|
+
- **アカウント管理**: ユーザーライフサイクル管理
|
|
122
|
+
- **権限管理**: 最小権限の原則、定期的な権限見直し
|
|
123
|
+
|
|
124
|
+
#### セキュリティ監査
|
|
125
|
+
- **アクセスログ**: すべてのアクセスの記録・監査
|
|
126
|
+
- **操作ログ**: 重要な操作の追跡可能性
|
|
127
|
+
- **設定変更**: システム設定変更の記録・承認
|
|
128
|
+
|
|
129
|
+
#### 脅威対応
|
|
130
|
+
- **インシデント対応**: セキュリティ事故対応手順
|
|
131
|
+
- **脆弱性管理**: 定期的な脆弱性スキャン・対応
|
|
132
|
+
- **パッチ管理**: セキュリティパッチの計画的適用
|
|
133
|
+
|
|
134
|
+
### 運用手順・保守要件
|
|
135
|
+
|
|
136
|
+
```plantuml
|
|
137
|
+
@startuml
|
|
138
|
+
!define RECTANGLE class
|
|
139
|
+
|
|
140
|
+
RECTANGLE "日常運用" {
|
|
141
|
+
+ システム監視
|
|
142
|
+
+ 定期メンテナンス
|
|
143
|
+
+ 障害対応
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
RECTANGLE "変更管理" {
|
|
147
|
+
+ リリース管理
|
|
148
|
+
+ 設定変更管理
|
|
149
|
+
+ 緊急変更対応
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
RECTANGLE "保守管理" {
|
|
153
|
+
+ 予防保守
|
|
154
|
+
+ 計画保守
|
|
155
|
+
+ 緊急保守
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@enduml
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### 日常運用
|
|
162
|
+
- **監視体制**: 24時間365日監視体制
|
|
163
|
+
- **アラート対応**: 重要度に応じたエスカレーション
|
|
164
|
+
- **定期点検**: システム稼働状況の定期確認
|
|
165
|
+
|
|
166
|
+
#### 変更管理
|
|
167
|
+
- **リリース手順**: 本番リリースの標準手順
|
|
168
|
+
- **ロールバック手順**: 問題発生時の切り戻し手順
|
|
169
|
+
- **変更承認**: 変更に対する承認プロセス
|
|
170
|
+
|
|
171
|
+
#### 保守管理
|
|
172
|
+
- **メンテナンス計画**: 計画的なシステムメンテナンス
|
|
173
|
+
- **容量管理**: リソース使用量の監視・拡張計画
|
|
174
|
+
- **ライフサイクル管理**: システム更改・廃止計画
|
|
175
|
+
|
|
176
|
+
## 運用要件定義のプロセス
|
|
177
|
+
|
|
178
|
+
### 1. 現状分析
|
|
179
|
+
|
|
180
|
+
```plantuml
|
|
181
|
+
@startuml
|
|
182
|
+
start
|
|
183
|
+
:既存システム調査;
|
|
184
|
+
:運用実態把握;
|
|
185
|
+
:課題抽出;
|
|
186
|
+
:改善点識別;
|
|
187
|
+
stop
|
|
188
|
+
@enduml
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
- **既存運用**: 現在の運用手順・体制の調査
|
|
192
|
+
- **課題識別**: 運用上の問題点・改善点の抽出
|
|
193
|
+
- **ベンチマーク**: 他システム・業界標準との比較
|
|
194
|
+
|
|
195
|
+
### 2. 要件定義
|
|
196
|
+
|
|
197
|
+
```plantuml
|
|
198
|
+
@startuml
|
|
199
|
+
start
|
|
200
|
+
:ビジネス要件確認;
|
|
201
|
+
:運用ポリシー策定;
|
|
202
|
+
:技術要件定義;
|
|
203
|
+
:運用レベル設定;
|
|
204
|
+
stop
|
|
205
|
+
@enduml
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- **サービスレベル定義**: SLA、SLO、SLI の設定
|
|
209
|
+
- **運用ポリシー**: セキュリティ、バックアップ等のポリシー
|
|
210
|
+
- **技術要件**: 監視ツール、運用ツールの要件
|
|
211
|
+
|
|
212
|
+
### 3. 運用設計
|
|
213
|
+
|
|
214
|
+
```plantuml
|
|
215
|
+
@startuml
|
|
216
|
+
start
|
|
217
|
+
:監視設計;
|
|
218
|
+
:運用手順設計;
|
|
219
|
+
:体制設計;
|
|
220
|
+
:ツール設計;
|
|
221
|
+
stop
|
|
222
|
+
@enduml
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
- **監視設計**: 監視項目・閾値・アラート設計
|
|
226
|
+
- **手順書作成**: 運用手順書・障害対応手順書
|
|
227
|
+
- **体制設計**: 運用体制・役割分担・エスカレーション
|
|
228
|
+
|
|
229
|
+
### 4. 運用準備
|
|
230
|
+
|
|
231
|
+
```plantuml
|
|
232
|
+
@startuml
|
|
233
|
+
start
|
|
234
|
+
:環境構築;
|
|
235
|
+
:ツール導入;
|
|
236
|
+
:手順書整備;
|
|
237
|
+
:運用訓練;
|
|
238
|
+
stop
|
|
239
|
+
@enduml
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
- **環境準備**: 監視環境・運用ツール環境構築
|
|
243
|
+
- **手順書整備**: 運用手順書・マニュアル作成
|
|
244
|
+
- **運用訓練**: 障害対応訓練・手順確認
|
|
245
|
+
|
|
246
|
+
## 運用要件の品質基準
|
|
247
|
+
|
|
248
|
+
### SMART 原則
|
|
249
|
+
|
|
250
|
+
運用要件は SMART 原則に従って定義します:
|
|
251
|
+
|
|
252
|
+
- **Specific (具体的)**: 曖昧さのない明確な要件
|
|
253
|
+
- **Measurable (測定可能)**: 数値で測定可能な要件
|
|
254
|
+
- **Achievable (達成可能)**: 現実的に達成可能な要件
|
|
255
|
+
- **Relevant (関連性)**: ビジネス目標に関連した要件
|
|
256
|
+
- **Time-bound (期限)**: 明確な期限・頻度を持つ要件
|
|
257
|
+
|
|
258
|
+
### サービスレベル定義
|
|
259
|
+
|
|
260
|
+
```plantuml
|
|
261
|
+
@startuml
|
|
262
|
+
!define RECTANGLE class
|
|
263
|
+
|
|
264
|
+
RECTANGLE "SLI" {
|
|
265
|
+
+ 可用性
|
|
266
|
+
+ レスポンス時間
|
|
267
|
+
+ エラー率
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
RECTANGLE "SLO" {
|
|
271
|
+
+ 可用性 99.9%
|
|
272
|
+
+ レスポンス時間 < 200ms
|
|
273
|
+
+ エラー率 < 0.1%
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
RECTANGLE "SLA" {
|
|
277
|
+
+ 顧客との合意事項
|
|
278
|
+
+ ペナルティ条項
|
|
279
|
+
+ 免責事項
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
SLI --> SLO : 測定
|
|
283
|
+
SLO --> SLA : 合意
|
|
284
|
+
@enduml
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### SLI (Service Level Indicator)
|
|
288
|
+
- **可用性**: システム稼働率
|
|
289
|
+
- **レスポンス時間**: API・画面応答時間
|
|
290
|
+
- **エラー率**: エラー発生率
|
|
291
|
+
|
|
292
|
+
#### SLO (Service Level Objective)
|
|
293
|
+
- **目標設定**: 具体的な数値目標
|
|
294
|
+
- **測定期間**: 月次・四半期・年次
|
|
295
|
+
- **エラーバジェット**: 許容エラー範囲
|
|
296
|
+
|
|
297
|
+
#### SLA (Service Level Agreement)
|
|
298
|
+
- **顧客合意**: サービス提供の合意事項
|
|
299
|
+
- **補償条項**: SLA 未達成時の対応
|
|
300
|
+
- **免責条項**: 責任範囲の明確化
|
|
301
|
+
|
|
302
|
+
## 運用要件のベストプラクティス
|
|
303
|
+
|
|
304
|
+
### 1. 運用性を考慮した設計
|
|
305
|
+
|
|
306
|
+
- **Observability**: システムの内部状態を外部から観測可能に
|
|
307
|
+
- **Graceful Degradation**: 段階的な機能縮退
|
|
308
|
+
- **Circuit Breaker**: 障害の連鎖防止機能
|
|
309
|
+
- **Health Check**: システム状態確認機能
|
|
310
|
+
|
|
311
|
+
### 2. 自動化の推進
|
|
312
|
+
|
|
313
|
+
```plantuml
|
|
314
|
+
@startuml
|
|
315
|
+
start
|
|
316
|
+
:手作業識別;
|
|
317
|
+
:自動化可能性評価;
|
|
318
|
+
:自動化実装;
|
|
319
|
+
:効果測定;
|
|
320
|
+
:継続改善;
|
|
321
|
+
stop
|
|
322
|
+
@enduml
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
- **デプロイ自動化**: CI/CD パイプライン構築
|
|
326
|
+
- **監視自動化**: 自動アラート・自動復旧
|
|
327
|
+
- **テスト自動化**: 運用テストの自動実行
|
|
328
|
+
|
|
329
|
+
### 3. インシデント管理
|
|
330
|
+
|
|
331
|
+
```plantuml
|
|
332
|
+
@startuml
|
|
333
|
+
start
|
|
334
|
+
:インシデント検知;
|
|
335
|
+
:初期対応;
|
|
336
|
+
:エスカレーション;
|
|
337
|
+
:復旧作業;
|
|
338
|
+
:事後分析;
|
|
339
|
+
:改善実施;
|
|
340
|
+
stop
|
|
341
|
+
@enduml
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
- **早期検知**: 監視による迅速な問題発見
|
|
345
|
+
- **迅速対応**: 明確な対応手順・体制
|
|
346
|
+
- **学習文化**: ポストモーテムによる継続改善
|
|
347
|
+
|
|
348
|
+
### 4. セキュリティファースト
|
|
349
|
+
|
|
350
|
+
- **Zero Trust**: すべてのアクセスを検証
|
|
351
|
+
- **最小権限**: 必要最小限の権限付与
|
|
352
|
+
- **多層防御**: 複数のセキュリティ対策
|
|
353
|
+
- **継続監視**: 24時間体制のセキュリティ監視
|
|
354
|
+
|
|
355
|
+
## 運用要件の管理・改善
|
|
356
|
+
|
|
357
|
+
### 継続的改善
|
|
358
|
+
|
|
359
|
+
```plantuml
|
|
360
|
+
@startuml
|
|
361
|
+
title PDCA サイクル
|
|
362
|
+
|
|
363
|
+
start
|
|
364
|
+
:Plan\n運用計画策定;
|
|
365
|
+
:Do\n運用実行;
|
|
366
|
+
:Check\n運用状況確認;
|
|
367
|
+
:Action\n改善実施;
|
|
368
|
+
|
|
369
|
+
note right
|
|
370
|
+
・KPI 測定
|
|
371
|
+
・課題抽出
|
|
372
|
+
・改善計画
|
|
373
|
+
end note
|
|
374
|
+
|
|
375
|
+
stop
|
|
376
|
+
@enduml
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
- **定期レビュー**: 運用状況・課題の定期確認
|
|
380
|
+
- **KPI 測定**: 運用効率・品質指標の測定
|
|
381
|
+
- **改善計画**: 継続的な運用改善
|
|
382
|
+
|
|
383
|
+
### ドキュメント管理
|
|
384
|
+
|
|
385
|
+
- **手順書更新**: 最新状態の維持・版数管理
|
|
386
|
+
- **知識共有**: 運用ナレッジの組織内共有
|
|
387
|
+
- **教育・訓練**: 運用スキルの継続的向上
|
|
388
|
+
|
|
389
|
+
## まとめ
|
|
390
|
+
|
|
391
|
+
運用要件は、システムの長期的な成功に直結する重要な要件です。開発初期から運用性を考慮し、継続的に改善していくことで、「変更を楽に安全にできて役に立つソフトウェア」の実現が可能になります。
|
|
392
|
+
|
|
393
393
|
よいソフトウェアを作るためには、機能要件と同等に運用要件を重視し、開発・運用が一体となって取り組むことが重要です。
|