@k2works/claude-code-booster 0.5.0 → 0.6.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.
@@ -81,7 +81,7 @@ docs/reference/ユースケース作成ガイド.md に基づくユースケー
81
81
  #### アーキテクチャ設計サポート
82
82
 
83
83
  @docs/reference/アーキテクチャ設計ガイド.md に基づくアーキテクチャ設計ドキュメントを作成します。
84
- 成果物は architecture_backend.md と architecture_frontend.md です。
84
+ 成果物は architecture_backend.md と architecture_frontend.md architecture_infrastructure.md です。
85
85
 
86
86
  ```bash
87
87
  /analysis --architecture
@@ -92,6 +92,7 @@ docs/reference/ユースケース作成ガイド.md に基づくユースケー
92
92
  - @docs/requirements/user_story.md を参照
93
93
  - バックエンドアーキテクチャ設計を実施して @docs/design/architecture_backend.md を作成
94
94
  - フロンエンドアーキテクチャ設計を実施して @docs/design/architecture_frontend.md を作成
95
+ - インフラストラクチャアーキテクチャ設計を実施して @docs/design/architecture_infrastructure.md を作成
95
96
 
96
97
  #### データモデル設計サポート
97
98
 
@@ -17,36 +17,49 @@
17
17
 
18
18
  ```plantuml
19
19
  @startuml
20
- package "アプリケーション" {
21
- package "フロントエンド" {
22
- [Webアプリケーション] as WebApp
23
- }
24
-
25
- package "バックエンド" {
26
- [APIサーバー] as API
27
- database "データベース" as DB
20
+ package "インフラストラクチャ" {
21
+ package "ネットワーク" {
22
+ package "アプリケーション" {
23
+ package "フロントエンド" {
24
+ [Webアプリケーション] as WebApp
25
+ }
26
+
27
+ package "バックエンド" {
28
+ [APIサーバー] as API
29
+ database "データベース" as DB
30
+ }
31
+
32
+ WebApp --> API : HTTP/REST
33
+ API --> DB : SQL/NoSQL
34
+ }
28
35
  }
29
-
30
- WebApp --> API : HTTP/REST
31
- API --> DB : SQL/NoSQL
32
36
  }
33
37
  @endtuml
34
38
  ```
35
39
 
36
40
  ### コンポーネント責務
37
41
 
38
- #### フロントエンド
42
+ #### アプリケーション
43
+
44
+ ##### フロントエンド
45
+
39
46
  - **UI/UX**: ユーザーインターフェース・ユーザー体験
40
47
  - **状態管理**: アプリケーション状態とサーバー状態の管理
41
48
  - **API連携**: バックエンドとのデータ通信
42
49
  - **レンダリング**: 効率的な画面描画とユーザーインタラクション
43
50
 
44
- #### バックエンド
51
+ ##### バックエンド
52
+
45
53
  - **ビジネスロジック**: 業務ルール・制約の実装
46
54
  - **データ永続化**: データの保存・取得・更新・削除
47
55
  - **セキュリティ**: 認証・認可・データ保護
48
56
  - **外部システム連携**: API・メッセージング・ファイル処理
49
57
 
58
+ #### インフラストラクチャ
59
+
60
+ - **ネットワーク**: 負荷分散・DNS・CDN
61
+ - **アプリケーション**: ホスティング: サーバー・コンテナ管理
62
+
50
63
  # バックエンドアーキテクチャ
51
64
 
52
65
  ## バックエンドアーキテクチャパターン選択フロー
@@ -1369,9 +1382,745 @@ stop
1369
1382
  4. **バンドルサイズ監視**: パフォーマンス劣化防止
1370
1383
  5. **ブラウザ互換性**: サポート対象ブラウザでの動作確認
1371
1384
 
1372
- ## まとめ
1385
+ # インフラストラクチャアーキテクチャ
1386
+
1387
+ ## インフラストラクチャ設計の原則
1388
+
1389
+ ### 基本方針
1390
+
1391
+ - **Infrastructure as Code (IaC)**: インフラの設定をコード化し、バージョン管理
1392
+ - **自動化**: デプロイ・スケーリング・復旧の自動化
1393
+ - **モニタリングとオブザーバビリティ**: システム状態の可視化と追跡
1394
+ - **セキュリティファースト**: 設計段階からのセキュリティ考慮
1395
+ - **コスト最適化**: リソース利用の効率化とコスト管理
1396
+
1397
+ ## デプロイメントアーキテクチャパターン
1398
+
1399
+ ### 1. モノリシックデプロイメント
1400
+
1401
+ #### 適用場面
1402
+ - **システム規模**: 小規模〜中規模
1403
+ - **チーム規模**: 小規模チーム
1404
+ - **特性**: 単一アプリケーション、シンプルなデプロイ
1405
+
1406
+ #### 構造
1407
+ ```plantuml
1408
+ @startuml
1409
+ node "Webサーバー" {
1410
+ [アプリケーション]
1411
+ }
1412
+
1413
+ database "データベース" as DB
1414
+
1415
+ cloud "ロードバランサー" as LB
1416
+
1417
+ LB --> [アプリケーション]
1418
+ [アプリケーション] --> DB
1419
+ @enduml
1420
+ ```
1421
+
1422
+ **メリット**:
1423
+ - シンプルな構成
1424
+ - 低い運用コスト
1425
+ - デプロイが容易
1426
+
1427
+ **デメリット**:
1428
+ - スケーリングの柔軟性が低い
1429
+ - 単一障害点
1430
+ - 大規模化時の制約
1431
+
1432
+ ### 2. マイクロサービスデプロイメント
1433
+
1434
+ #### 適用場面
1435
+ - **システム規模**: 大規模
1436
+ - **チーム規模**: 複数チーム
1437
+ - **特性**: 独立したサービス、高いスケーラビリティ
1438
+
1439
+ #### 構造
1440
+ ```plantuml
1441
+ @startuml
1442
+ cloud "APIゲートウェイ" as gateway
1443
+
1444
+ node "認証サービス" {
1445
+ [Auth Service]
1446
+ }
1447
+
1448
+ node "予約サービス" {
1449
+ [Reservation Service]
1450
+ }
1451
+
1452
+ node "会議室サービス" {
1453
+ [Room Service]
1454
+ }
1455
+
1456
+ database "Auth DB" as authdb
1457
+ database "Reservation DB" as resdb
1458
+ database "Room DB" as roomdb
1459
+
1460
+ gateway --> [Auth Service]
1461
+ gateway --> [Reservation Service]
1462
+ gateway --> [Room Service]
1463
+ [Auth Service] --> authdb
1464
+ [Reservation Service] --> resdb
1465
+ [Room Service] --> roomdb
1466
+ @enduml
1467
+ ```
1468
+
1469
+ **メリット**:
1470
+ - 独立したデプロイとスケーリング
1471
+ - 技術スタックの柔軟性
1472
+ - 障害の局所化
1473
+
1474
+ **デメリット**:
1475
+ - 複雑な運用
1476
+ - 分散システムの課題
1477
+ - デバッグの困難さ
1478
+
1479
+ ### 3. コンテナオーケストレーション
1480
+
1481
+ #### 適用場面
1482
+ - **デプロイ頻度**: 高頻度
1483
+ - **スケーリング要件**: 動的スケーリング
1484
+ - **特性**: Kubernetes、Docker等のコンテナ技術
1485
+
1486
+ #### 構造
1487
+ ```plantuml
1488
+ @startuml
1489
+ package "Kubernetesクラスター" {
1490
+ node "マスターノード" {
1491
+ [API Server]
1492
+ [Scheduler]
1493
+ [Controller]
1494
+ }
1495
+
1496
+ node "ワーカーノード1" {
1497
+ [Pod 1]
1498
+ [Pod 2]
1499
+ }
1500
+
1501
+ node "ワーカーノード2" {
1502
+ [Pod 3]
1503
+ [Pod 4]
1504
+ }
1505
+
1506
+ [API Server] --> [Pod 1]
1507
+ [API Server] --> [Pod 2]
1508
+ [API Server] --> [Pod 3]
1509
+ [API Server] --> [Pod 4]
1510
+ }
1511
+ @enduml
1512
+ ```
1513
+
1514
+ **メリット**:
1515
+ - 自動スケーリング
1516
+ - 高可用性
1517
+ - リソース効率化
1518
+
1519
+ **デメリット**:
1520
+ - 高い学習コスト
1521
+ - 複雑な設定
1522
+ - 運用の複雑さ
1523
+
1524
+ ### 4. サーバーレスアーキテクチャ
1525
+
1526
+ #### 適用場面
1527
+ - **負荷パターン**: 変動が大きい
1528
+ - **実行頻度**: イベント駆動、バースト型
1529
+ - **特性**: AWS Lambda、Azure Functions等
1530
+
1531
+ #### 構造
1532
+ ```plantuml
1533
+ @startuml
1534
+ cloud "APIゲートウェイ" as api
1535
+ rectangle "Lambda関数" as lambda1
1536
+ rectangle "Lambda関数" as lambda2
1537
+ rectangle "Lambda関数" as lambda3
1538
+ database "DynamoDB" as db
1539
+ queue "SQS" as queue
1540
+
1541
+ api --> lambda1 : HTTP
1542
+ queue --> lambda2 : イベント
1543
+ lambda1 --> db
1544
+ lambda2 --> db
1545
+ lambda3 --> db
1546
+ @enduml
1547
+ ```
1548
+
1549
+ **メリット**:
1550
+ - 完全なサーバー管理不要
1551
+ - 自動スケーリング
1552
+ - 従量課金
1553
+
1554
+ **デメリット**:
1555
+ - コールドスタート
1556
+ - ベンダーロックイン
1557
+ - ローカルテストの困難さ
1558
+
1559
+ ## ネットワークアーキテクチャ
1560
+
1561
+ ### ネットワーク構成パターン
1562
+
1563
+ ```plantuml
1564
+ @startuml
1565
+ package "DMZ(非武装地帯)" {
1566
+ [ロードバランサー]
1567
+ [リバースプロキシ]
1568
+ }
1569
+
1570
+ package "プライベートネットワーク" {
1571
+ package "アプリケーション層" {
1572
+ [Webサーバー]
1573
+ [APサーバー]
1574
+ }
1575
+
1576
+ package "データ層" {
1577
+ database "DB(Primary)"
1578
+ database "DB(Replica)"
1579
+ }
1580
+ }
1581
+
1582
+ cloud "インターネット" as internet
1583
+
1584
+ internet --> [ロードバランサー]
1585
+ [ロードバランサー] --> [リバースプロキシ]
1586
+ [リバースプロキシ] --> [Webサーバー]
1587
+ [Webサーバー] --> [APサーバー]
1588
+ [APサーバー] --> "DB(Primary)"
1589
+ "DB(Primary)" --> "DB(Replica)" : レプリケーション
1590
+ @enduml
1591
+ ```
1592
+
1593
+ ### ネットワーク設計の要点
1594
+
1595
+ | 要素 | 考慮事項 |
1596
+ |------|----------|
1597
+ | **負荷分散** | ロードバランサーによる複数サーバーへの分散 |
1598
+ | **セキュリティ** | ファイアウォール、WAF、DDoS対策 |
1599
+ | **可用性** | 冗長化、フェイルオーバー |
1600
+ | **パフォーマンス** | CDN、キャッシング、帯域幅 |
1601
+
1602
+ ## スケーリング戦略
1603
+
1604
+ ### 垂直スケーリング vs 水平スケーリング
1605
+
1606
+ ```plantuml
1607
+ @startuml
1608
+ left to right direction
1609
+
1610
+ package "垂直スケーリング" {
1611
+ node "サーバー" as v1 {
1612
+ [CPU: 2コア\nメモリ: 4GB]
1613
+ }
1614
+
1615
+ node "サーバー" as v2 {
1616
+ [CPU: 8コア\nメモリ: 32GB]
1617
+ }
1618
+
1619
+ v1 -right-> v2 : スペックアップ
1620
+ }
1621
+
1622
+ package "水平スケーリング" {
1623
+ node "サーバー1" as h1 {
1624
+ [CPU: 2コア\nメモリ: 4GB]
1625
+ }
1626
+
1627
+ node "サーバー2" as h2 {
1628
+ [CPU: 2コア\nメモリ: 4GB]
1629
+ }
1630
+
1631
+ node "サーバー3" as h3 {
1632
+ [CPU: 2コア\nメモリ: 4GB]
1633
+ }
1634
+
1635
+ h1 -right-> h2 : サーバー追加
1636
+ h2 -right-> h3 : サーバー追加
1637
+ }
1638
+ @enduml
1639
+ ```
1640
+
1641
+ ### スケーリング戦略の選択
1642
+
1643
+ | 戦略 | メリット | デメリット | 適用場面 |
1644
+ |------|----------|------------|----------|
1645
+ | **垂直スケーリング** | シンプル、データ整合性保持 | 物理的上限、ダウンタイム | データベース、レガシーシステム |
1646
+ | **水平スケーリング** | 柔軟性、高可用性 | 複雑な設計、データ分散 | Webアプリケーション、マイクロサービス |
1647
+
1648
+ ### オートスケーリング
1649
+
1650
+ ```plantuml
1651
+ @startuml
1652
+ start
1653
+
1654
+ :負荷監視;
1655
+
1656
+ if (CPU使用率 > 80%?) then (yes)
1657
+ :インスタンス追加;
1658
+ :負荷分散設定更新;
1659
+ else if (CPU使用率 < 20%?) then (yes)
1660
+ :インスタンス削減;
1661
+ :負荷分散設定更新;
1662
+ else (no)
1663
+ :現状維持;
1664
+ endif
1665
+
1666
+ :負荷監視;
1667
+
1668
+ stop
1669
+ @enduml
1670
+ ```
1671
+
1672
+ ## 監視とログ管理
1673
+
1674
+ ### 監視アーキテクチャ
1675
+
1676
+ ```plantuml
1677
+ @startuml
1678
+ package "アプリケーション" {
1679
+ [Webサーバー]
1680
+ [APサーバー]
1681
+ [DBサーバー]
1682
+ }
1683
+
1684
+ package "監視システム" {
1685
+ [メトリクス収集] as metrics
1686
+ [ログ収集] as logs
1687
+ [アラート管理] as alerts
1688
+ }
1689
+
1690
+ package "可視化・分析" {
1691
+ [ダッシュボード]
1692
+ [ログ分析]
1693
+ [トレーシング]
1694
+ }
1695
+
1696
+ [Webサーバー] --> metrics
1697
+ [APサーバー] --> metrics
1698
+ [DBサーバー] --> metrics
1699
+
1700
+ [Webサーバー] --> logs
1701
+ [APサーバー] --> logs
1702
+ [DBサーバー] --> logs
1703
+
1704
+ metrics --> [ダッシュボード]
1705
+ logs --> [ログ分析]
1706
+ metrics --> alerts
1707
+ logs --> alerts
1708
+ @enduml
1709
+ ```
1710
+
1711
+ ### 監視対象と指標
1373
1712
 
1374
- ### バックエンドアーキテクチャ選択の指針
1713
+ | カテゴリ | 監視項目 | 重要指標 |
1714
+ |----------|----------|----------|
1715
+ | **インフラ** | CPU、メモリ、ディスク、ネットワーク | 使用率、レスポンス時間 |
1716
+ | **アプリケーション** | レスポンスタイム、エラー率、スループット | レイテンシ、成功率 |
1717
+ | **ビジネス** | アクティブユーザー数、トランザクション数 | コンバージョン率、利用状況 |
1718
+
1719
+ ### ログ管理戦略
1720
+
1721
+ #### ログレベルの定義
1722
+
1723
+ ```java
1724
+ // ✅ 適切なログレベルの使用
1725
+ public class ReservationService {
1726
+ private static final Logger logger = LoggerFactory.getLogger(ReservationService.class);
1727
+
1728
+ public void createReservation(ReservationRequest request) {
1729
+ logger.debug("予約作成開始: {}", request);
1730
+
1731
+ try {
1732
+ var reservation = processReservation(request);
1733
+ logger.info("予約作成成功: reservationId={}", reservation.getId());
1734
+ } catch (BusinessException e) {
1735
+ logger.warn("予約作成失敗(ビジネスエラー): {}", e.getMessage());
1736
+ throw e;
1737
+ } catch (Exception e) {
1738
+ logger.error("予約作成失敗(システムエラー)", e);
1739
+ throw new SystemException("予約作成処理でエラーが発生しました", e);
1740
+ }
1741
+ }
1742
+ }
1743
+ ```
1744
+
1745
+ #### ログの集約と分析
1746
+
1747
+ - **集約**: Fluentd、Logstash等でログを集約
1748
+ - **保存**: Elasticsearch、S3等で長期保存
1749
+ - **分析**: Kibana、CloudWatch Insights等で可視化・分析
1750
+
1751
+ ## セキュリティアーキテクチャ
1752
+
1753
+ ### 多層防御アーキテクチャ
1754
+
1755
+ ```plantuml
1756
+ @startuml
1757
+ left to right direction
1758
+
1759
+ rectangle "インターネット" as internet
1760
+
1761
+ package "セキュリティ層" {
1762
+ rectangle "WAF/DDoS対策" as waf
1763
+ rectangle "ファイアウォール" as fw
1764
+ rectangle "IDS/IPS" as ids
1765
+ }
1766
+
1767
+ package "認証・認可層" {
1768
+ rectangle "認証サーバー" as auth
1769
+ rectangle "API Gateway" as apigw
1770
+ }
1771
+
1772
+ package "アプリケーション層" {
1773
+ rectangle "暗号化通信" as encrypt
1774
+ rectangle "入力検証" as validation
1775
+ rectangle "アクセス制御" as access
1776
+ }
1777
+
1778
+ package "データ層" {
1779
+ database "暗号化DB" as db
1780
+ rectangle "監査ログ" as audit
1781
+ }
1782
+
1783
+ internet --> waf
1784
+ waf --> fw
1785
+ fw --> ids
1786
+ ids --> auth
1787
+ auth --> apigw
1788
+ apigw --> encrypt
1789
+ encrypt --> validation
1790
+ validation --> access
1791
+ access --> db
1792
+ db --> audit
1793
+ @enduml
1794
+ ```
1795
+
1796
+ ### セキュリティベストプラクティス
1797
+
1798
+ | 領域 | 対策 | 実装例 |
1799
+ |------|------|--------|
1800
+ | **ネットワーク** | ファイアウォール、WAF、DDoS対策 | AWS WAF, CloudFlare |
1801
+ | **認証・認可** | 多要素認証、OAuth2.0、RBAC | Auth0, Keycloak |
1802
+ | **データ保護** | 暗号化(保管時・転送時)、マスキング | TLS/SSL, AES-256 |
1803
+ | **監査** | アクセスログ、変更履歴、コンプライアンス | CloudTrail, 監査ログ |
1804
+
1805
+ ### セキュリティ実装例
1806
+
1807
+ ```java
1808
+ // ✅ セキュアな実装
1809
+ @RestController
1810
+ @RequestMapping("/api/reservations")
1811
+ public class ReservationController {
1812
+
1813
+ @PostMapping
1814
+ @PreAuthorize("hasRole('USER')") // 認可チェック
1815
+ public ResponseEntity<Reservation> create(
1816
+ @Valid @RequestBody CreateReservationRequest request) { // 入力検証
1817
+
1818
+ // SQLインジェクション対策(PreparedStatement使用)
1819
+ var reservation = reservationService.createReservation(request);
1820
+
1821
+ // 監査ログ記録
1822
+ auditService.log("RESERVATION_CREATED", reservation.getId());
1823
+
1824
+ return ResponseEntity.ok(reservation);
1825
+ }
1826
+ }
1827
+ ```
1828
+
1829
+ ## バックアップと災害復旧
1830
+
1831
+ ### バックアップ戦略
1832
+
1833
+ ```plantuml
1834
+ @startuml
1835
+ package "本番環境" {
1836
+ database "本番DB" as prod
1837
+ }
1838
+
1839
+ package "バックアップ" {
1840
+ database "日次バックアップ" as daily
1841
+ database "週次バックアップ" as weekly
1842
+ database "月次バックアップ" as monthly
1843
+ }
1844
+
1845
+ package "災害復旧サイト" {
1846
+ database "DR環境" as dr
1847
+ }
1848
+
1849
+ prod --> daily : 毎日
1850
+ prod --> weekly : 毎週
1851
+ prod --> monthly : 毎月
1852
+ prod --> dr : リアルタイムレプリケーション
1853
+ @enduml
1854
+ ```
1855
+
1856
+ ### RPO/RTO定義
1857
+
1858
+ | 指標 | 意味 | 目標値例 |
1859
+ |------|------|----------|
1860
+ | **RPO (Recovery Point Objective)** | データ損失許容時間 | 1時間以内 |
1861
+ | **RTO (Recovery Time Objective)** | サービス復旧目標時間 | 4時間以内 |
1862
+
1863
+ ### ディザスタリカバリパターン
1864
+
1865
+ #### 1. バックアップ&リストア
1866
+ - **RPO**: 数時間〜1日
1867
+ - **RTO**: 数時間〜1日
1868
+ - **コスト**: 低
1869
+ - **用途**: 非重要システム
1870
+
1871
+ #### 2. パイロットライト
1872
+ - **RPO**: 数分〜数時間
1873
+ - **RTO**: 1時間以内
1874
+ - **コスト**: 中
1875
+ - **用途**: ビジネス継続性が重要
1876
+
1877
+ #### 3. ウォームスタンバイ
1878
+ - **RPO**: 数秒〜数分
1879
+ - **RTO**: 数分
1880
+ - **コスト**: 高
1881
+ - **用途**: 高可用性要求システム
1882
+
1883
+ #### 4. マルチサイトアクティブ/アクティブ
1884
+ - **RPO**: ゼロ
1885
+ - **RTO**: ゼロ(自動フェイルオーバー)
1886
+ - **コスト**: 非常に高
1887
+ - **用途**: ミッションクリティカルシステム
1888
+
1889
+ ## Infrastructure as Code (IaC)
1890
+
1891
+ ### IaCツールの選択
1892
+
1893
+ | ツール | 特徴 | 適用場面 |
1894
+ |--------|------|----------|
1895
+ | **Terraform** | マルチクラウド対応、宣言的 | クラウド横断的なインフラ管理 |
1896
+ | **CloudFormation** | AWS特化、AWSサービスとの統合 | AWS専用環境 |
1897
+ | **Ansible** | 構成管理、手続き型 | サーバー設定管理 |
1898
+ | **Pulumi** | 汎用プログラミング言語使用 | 複雑なロジック要求時 |
1899
+
1900
+ ### IaC実装例(Terraform)
1901
+
1902
+ ```hcl
1903
+ # ✅ VPC定義
1904
+ resource "aws_vpc" "main" {
1905
+ cidr_block = "10.0.0.0/16"
1906
+ enable_dns_hostnames = true
1907
+ enable_dns_support = true
1908
+
1909
+ tags = {
1910
+ Name = "main-vpc"
1911
+ Environment = var.environment
1912
+ }
1913
+ }
1914
+
1915
+ # ✅ サブネット定義
1916
+ resource "aws_subnet" "public" {
1917
+ count = 2
1918
+ vpc_id = aws_vpc.main.id
1919
+ cidr_block = "10.0.${count.index}.0/24"
1920
+ availability_zone = data.aws_availability_zones.available.names[count.index]
1921
+ map_public_ip_on_launch = true
1922
+
1923
+ tags = {
1924
+ Name = "public-subnet-${count.index + 1}"
1925
+ }
1926
+ }
1927
+
1928
+ # ✅ セキュリティグループ
1929
+ resource "aws_security_group" "web" {
1930
+ name = "web-sg"
1931
+ description = "Security group for web servers"
1932
+ vpc_id = aws_vpc.main.id
1933
+
1934
+ ingress {
1935
+ from_port = 443
1936
+ to_port = 443
1937
+ protocol = "tcp"
1938
+ cidr_blocks = ["0.0.0.0/0"]
1939
+ }
1940
+
1941
+ egress {
1942
+ from_port = 0
1943
+ to_port = 0
1944
+ protocol = "-1"
1945
+ cidr_blocks = ["0.0.0.0/0"]
1946
+ }
1947
+ }
1948
+ ```
1949
+
1950
+ ## CI/CDパイプライン
1951
+
1952
+ ### CI/CDアーキテクチャ
1953
+
1954
+ ```plantuml
1955
+ @startuml
1956
+ start
1957
+
1958
+ :コード変更;
1959
+ :Git Push;
1960
+
1961
+ fork
1962
+ :ユニットテスト実行;
1963
+ fork again
1964
+ :静的解析;
1965
+ fork again
1966
+ :コードカバレッジ;
1967
+ end fork
1968
+
1969
+ :ビルド;
1970
+
1971
+ if (テスト成功?) then (yes)
1972
+ :コンテナイメージ作成;
1973
+ :イメージレジストリ登録;
1974
+
1975
+ if (本番デプロイ?) then (yes)
1976
+ :承認待ち;
1977
+ :本番デプロイ;
1978
+ else (no)
1979
+ :ステージングデプロイ;
1980
+ endif
1981
+
1982
+ :スモークテスト;
1983
+ :監視開始;
1984
+ else (no)
1985
+ :通知(失敗);
1986
+ stop
1987
+ endif
1988
+
1989
+ :デプロイ完了;
1990
+
1991
+ stop
1992
+ @enduml
1993
+ ```
1994
+
1995
+ ### デプロイメント戦略
1996
+
1997
+ #### ブルーグリーンデプロイメント
1998
+
1999
+ ```plantuml
2000
+ @startuml
2001
+ left to right direction
2002
+
2003
+ cloud "ロードバランサー" as lb
2004
+
2005
+ package "Blue環境(現行)" {
2006
+ node "App v1.0" as blue1
2007
+ node "App v1.0" as blue2
2008
+ }
2009
+
2010
+ package "Green環境(新規)" {
2011
+ node "App v2.0" as green1
2012
+ node "App v2.0" as green2
2013
+ }
2014
+
2015
+ lb --> blue1
2016
+ lb --> blue2
2017
+ @enduml
2018
+ ```
2019
+
2020
+ **メリット**:
2021
+ - 即座にロールバック可能
2022
+ - ゼロダウンタイム
2023
+ - 本番環境での検証
2024
+
2025
+ **デメリット**:
2026
+ - リソースが2倍必要
2027
+ - データベース移行の複雑さ
2028
+
2029
+ #### カナリアデプロイメント
2030
+
2031
+ ```plantuml
2032
+ @startuml
2033
+ cloud "ロードバランサー" as lb
2034
+
2035
+ package "本番環境" {
2036
+ node "App v1.0" as old1
2037
+ node "App v1.0" as old2
2038
+ node "App v1.0" as old3
2039
+ node "App v2.0(カナリア)" as canary
2040
+ }
2041
+
2042
+ lb --> old1 : 75%
2043
+ lb --> old2 : 75%
2044
+ lb --> old3 : 75%
2045
+ lb --> canary : 25%
2046
+ @enduml
2047
+ ```
2048
+
2049
+ **メリット**:
2050
+ - リスク最小化
2051
+ - 段階的なロールアウト
2052
+ - 問題の早期発見
2053
+
2054
+ **デメリット**:
2055
+ - 複雑な管理
2056
+ - バージョン混在期間
2057
+
2058
+ ## インフラストラクチャ評価基準
2059
+
2060
+ ### 品質属性評価マトリックス
2061
+
2062
+ | 品質属性 | モノリシック | マイクロサービス | コンテナ | サーバーレス |
2063
+ |----------|:---:|:---:|:---:|:---:|
2064
+ | **運用複雑性** | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
2065
+ | **スケーラビリティ** | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
2066
+ | **コスト効率** | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
2067
+ | **デプロイ速度** | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
2068
+ | **可用性** | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
2069
+ | **監視・デバッグ** | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
2070
+
2071
+ ### コスト最適化戦略
2072
+
2073
+ | 戦略 | 実装方法 | 削減効果 |
2074
+ |------|----------|----------|
2075
+ | **リソース最適化** | 適切なインスタンスサイズ選択 | 20-40% |
2076
+ | **予約インスタンス** | 長期コミットメントで割引 | 40-60% |
2077
+ | **スポットインスタンス** | 余剰リソースの活用 | 70-90% |
2078
+ | **オートスケーリング** | 需要に応じた自動調整 | 30-50% |
2079
+ | **ストレージ最適化** | ライフサイクル管理、圧縮 | 30-60% |
2080
+
2081
+ ## インフラストラクチャ移行戦略
2082
+
2083
+ ### クラウド移行パターン
2084
+
2085
+ ```plantuml
2086
+ @startuml
2087
+ start
2088
+
2089
+ :現状分析;
2090
+
2091
+ if (移行戦略) then (リフト&シフト)
2092
+ :既存システムをそのままクラウドへ;
2093
+ :最小限の変更;
2094
+ else if (リプラットフォーム) then
2095
+ :軽微な最適化;
2096
+ :クラウドサービス活用;
2097
+ else if (リアーキテクト) then
2098
+ :アプリケーション再設計;
2099
+ :クラウドネイティブ化;
2100
+ else (リビルド)
2101
+ :完全な再構築;
2102
+ :最新アーキテクチャ採用;
2103
+ endif
2104
+
2105
+ :移行実行;
2106
+ :検証;
2107
+ :最適化;
2108
+
2109
+ stop
2110
+ @enduml
2111
+ ```
2112
+
2113
+ ### 移行時の注意点
2114
+
2115
+ 1. **段階的移行**: すべてを一度に移行せず、段階的に実施
2116
+ 2. **パイロットプロジェクト**: 小規模システムで先行検証
2117
+ 3. **データ移行計画**: データの整合性とダウンタイム最小化
2118
+ 4. **セキュリティ**: クラウド環境でのセキュリティ要件確認
2119
+ 5. **コスト管理**: 移行コストと運用コストの可視化
2120
+
2121
+ # まとめ
2122
+
2123
+ ## バックエンドアーキテクチャ選択の指針
1375
2124
 
1376
2125
  1. **業務ドメインの理解**: 中核業務と補完業務の明確な識別
1377
2126
  2. **データ複雑性の評価**: エンティティ関係とビジネスルールの複雑さ
@@ -1379,7 +2128,7 @@ stop
1379
2128
  4. **チーム能力の評価**: 技術的習熟度と学習意欲
1380
2129
  5. **長期戦略の整合**: 将来的な拡張性と保守性の確保
1381
2130
 
1382
- ### フロントエンドアーキテクチャ選択の指針
2131
+ ## フロントエンドアーキテクチャ選択の指針
1383
2132
 
1384
2133
  1. **プロジェクト規模**: 小規模・中規模・大規模に応じた構造設計
1385
2134
  2. **ユーザー体験要件**: SEO・パフォーマンス・インタラクティビティの優先順位
@@ -1387,42 +2136,59 @@ stop
1387
2136
  4. **チーム構成**: フロントエンド専任・フルスタック・QAエンジニアの有無
1388
2137
  5. **技術的制約**: ブラウザサポート・既存システム・運用環境
1389
2138
 
1390
- ### 成功要因
2139
+ ## インフラストラクチャアーキテクチャ選択の指針
2140
+
2141
+ 1. **システム規模とトラフィック**: 予想される負荷・成長率・ピーク時の要件分析
2142
+ 2. **可用性要件**: SLA・ダウンタイム許容度・災害復旧要件の定義
2143
+ 3. **セキュリティ要件**: コンプライアンス・データ保護・監査要件の評価
2144
+ 4. **運用体制**: チームの技術力・運用負荷・自動化レベルの考慮
2145
+ 5. **コスト制約**: 初期投資・運用コスト・スケーリングコストのバランス
2146
+
2147
+ ## 成功要因
1391
2148
 
1392
- #### バックエンド
2149
+ ### バックエンド
1393
2150
  - **適切なパターン選択**: 業務特性に応じた最適なアーキテクチャの採用
1394
2151
  - **段階的な実装**: 小さく始めて継続的に改善
1395
2152
  - **品質の作り込み**: テストファースト・継続的インテグレーション
1396
2153
  - **ドメイン駆動設計**: ビジネスルールの適切な表現と分離
1397
2154
 
1398
- #### フロントエンド
2155
+ ### フロントエンド
1399
2156
  - **適切な技術選択**: 要件に応じたライブラリ・フレームワークの選定
1400
2157
  - **コンポーネント設計**: 再利用性と保守性を両立した設計
1401
2158
  - **状態管理戦略**: スケールに応じた適切な状態管理手法の採用
1402
2159
  - **パフォーマンス最適化**: ユーザー体験を重視したパフォーマンス設計
1403
2160
 
1404
- ### 統合的成功要因
2161
+ ### インフラストラクチャ
2162
+ - **自動化の徹底**: IaC によるインフラ管理とデプロイメントの自動化
2163
+ - **監視とオブザーバビリティ**: 包括的な監視体制と問題の早期検知
2164
+ - **セキュリティの組み込み**: 設計段階からのセキュリティ対策実装
2165
+ - **コスト最適化**: リソース利用の継続的な見直しと最適化
2166
+
2167
+ ## 統合的成功要因
1405
2168
 
1406
2169
  - **チーム教育**: アーキテクチャ原則の共有と実践
1407
2170
  - **継続的改善**: 定期的な設計見直しとリファクタリング
1408
2171
  - **品質文化**: 自動テスト・コードレビュー・静的解析の徹底
1409
2172
  - **段階的移行**: リスクを最小化した漸進的なアーキテクチャ改善
1410
2173
 
1411
- ### 実践ポイント
2174
+ ## 実践ポイント
2175
+
2176
+ ### 開発初期
1412
2177
 
1413
- #### 開発初期
1414
2178
  1. **要件に基づく技術選択**: 過度な技術より要件適合性を重視
1415
2179
  2. **プロトタイプ開発**: アーキテクチャ妥当性の早期検証
1416
2180
  3. **チーム合意形成**: 技術選択の背景と理由の共有
1417
2181
 
1418
- #### 開発中期
2182
+ ### 開発中期
2183
+
1419
2184
  1. **継続的リファクタリング**: 設計負債の早期解消
1420
2185
  2. **パフォーマンス監視**: 品質メトリクスに基づく改善
1421
2186
  3. **テストカバレッジ**: アーキテクチャ変更に対する安全性確保
1422
2187
 
1423
- #### 運用期
2188
+ ### 運用期
2189
+
1424
2190
  1. **監視・メトリクス**: 実装の効果測定と改善指針
1425
2191
  2. **技術的負債管理**: 計画的なアーキテクチャ改善
1426
2192
  3. **スケーラビリティ対応**: 成長に応じたアーキテクチャ進化
1427
2193
 
1428
- 良いアーキテクチャは、システムの長期的成功の基盤となります。本ガイドを参考に、バックエンド・フロントエンドそれぞれの特性を理解し、プロジェクトに最適なアーキテクチャを選択・実装してください。
2194
+ 良いアーキテクチャは、システムの長期的成功の基盤となります。本ガイドを参考に、アプリケーション・インフラストラクチャそれぞれの特性を理解し、プロジェクトに最適なアーキテクチャを選択・実装してください。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k2works/claude-code-booster",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "AI Agent Development Support Tool",
5
5
  "main": "main.js",
6
6
  "bin": {