microservices-architecture について
マイクロサービスアーキテクチャの設計、実装、保守に関するガイドです。サービス境界や通信、データ整合性、デプロイ、分散システムの可観測性を扱います。
主な機能
- 01サービス境界の設計
- 02サービス間通信パターン
- 03API ゲートウェイとサービスディスカバリー
- 04データ整合性パターン
- 05デプロイと可観測性の実践
活用シーン
- 01新しいマイクロサービスシステムの設計
- 02モノリシックアプリケーションの分割
- 03サービス間通信の計画
- 04サービスの個別スケーリング
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill microservices-architectureインストール後、Claude Code で/microservices-architectureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-gateway-pattern.mdcommunication-patterns.mddata-consistency-patterns.mdservice-boundary-design.mdservice-discovery.mdservice-mesh-istio.mdscripts/validate-config.shtemplates/config-starter.yaml詳細
マイクロサービスアーキテクチャ
目次
概要
マイクロサービスアーキテクチャの設計、実装、保守に関する包括的なガイドです。分散システムにおけるサービスの分割、通信パターン、データ管理、デプロイ戦略、可観測性を網羅しています。
使用する場面
- 新しいマイクロサービスアーキテクチャを設計する
- モノリシックアプリケーションを分割する
- サービス間通信を実装する
- API ゲートウェイとサービスメッシュを設定する
- サービスディスカバリーを実装する
- 分散トランザクションを管理する
- サービス間のデータ整合性を設計する
- サービスを個別にスケーリングする
クイックスタート
最小限の動作例:
Bounded Contexts:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Order Service │ │ User Service │ │ Payment Service │
│ │ │ │ │ │
│ - Create Order │ │ - User Profile │ │ - Process Pay │
│ - Order Status │ │ - Auth │ │ - Refund │
│ - Order History │ │ - Preferences │ │ - Transactions │
└─────────────────┘ └─────────────────┘ └─────────────────┘
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください:
| ガイド | 内容 |
|---|---|
| サービス境界の設計 | サービス境界の設計 |
| 通信パターン | 通信パターン |
| API ゲートウェイパターン | API ゲートウェイパターン |
| サービスディスカバリー | サービスディスカバリー |
| データ整合性パターン | データ整合性パターン |
| サービスメッシュ(Istio) | サービスメッシュ(Istio) |
ベストプラクティス
✅ DO
- ビジネスケイパビリティを中心にサービスを設計する
- 可能な場合は非同期通信を使用する
- 耐障害性を高めるためにサーキットブレーカーを実装する
- 横断的関心事には API ゲートウェイを使用する
- 分散トレーシングを実装する
- サービス間通信にはサービスメッシュを使用する
- 障害を前提に設計する(カオスエンジニアリング)
- すべてのサービスにヘルスチェックを実装する
- リクエスト追跡に相関 ID を使用する
- API にバージョンを付ける
- 適切な監視とアラートを実装する
- 疎結合を実現するためにイベント駆動型アーキテクチャを使用する
- 冪等性のある操作を実装する
- サービスごとにデータベースを設けるパターンを使用する
❌ DON'T
- サービス間でデータベースを共有する
- サービスを過度に細分化する(ナノサービス)
- 分散トランザクションを使用する(2 フェーズコミット)
- ネットワークの遅延や障害を無視する
- サービス間でドメインモデルを共有する
- すべてのサービスを一つの単位としてデプロイする
- サービス URL をハードコードする
- 認証/認可の実装を忘れる
- 長時間実行される処理に同期呼び出しを使用する
- 後方互換性を無視する
- 監視やログ記録を省略する
- サービス間に循環依存を作る
コメント
Markdown 対応