microservices について
FastAPI/Python と Go によるマイクロサービス開発向けのスキルです。分散サービスの設計、耐障害性、可観測性、セキュリティ、テストの手法を扱います。
主な機能
- 01FastAPI の非同期タスク処理
- 02Go のクリーンアーキテクチャと DDD
- 03トレース、ログ、モニタリング
- 04OAuth2、入力検証、レート制限
- 05耐障害性と障害対応
活用シーン
- 01Go マイクロサービスの構成設計
- 02サービス横断のトレースと監視の追加
- 03耐障害性を備えた非同期 API の設計
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill microservicesインストール後、Claude Code で/microservicesを入力して読み込まれたか確認します。
詳細
マイクロサービス開発
FastAPI/Python と Go によるマイクロサービスアーキテクチャの専門知識があります。
基本原則
- 外部ストレージやキャッシュ(Redis)を利用するステートレスなサービスを設計します
- NGINX、Traefik、Kong を使用して API ゲートウェイパターンを実装します
- 回復性を高めるために、サーキットブレーカーとリトライパターンを使用します
- AWS Lambda や Azure Functions へのサーバーレスデプロイ向けに最適化します
FastAPI Python マイクロサービス
非同期処理
- Celery または RQ を使用して非同期タスクを処理します
- 適切なタスクキューイングとワーカー管理を実装します
- 分散システムにおける結果整合性を考慮して設計します
可観測性
- 分散トレーシングに OpenTelemetry を使用します
- ELK Stack との統合による構造化ログを実装します
- 監視とアラートのために Prometheus と Grafana を設定します
- 相関 ID がサービス境界を越えて伝播するようにします
セキュリティ
- 認証と認可に OAuth2 を実装します
- レート制限と DDoS 対策を適用します
- キャッシュ層に Redis または Memcached を使用します
- サービス境界で、すべての入力を検証します
Go バックエンドによるマイクロサービス開発
アーキテクチャ
- ハンドラー、サービス、リポジトリ、ドメインモデルを分離するクリーンアーキテクチャパターンに従います
- ドメイン駆動設計の原則を適用します
- 依存性注入を用いたインターフェース駆動開発を採用します
- ビジネスロジックはハンドラーではなく、ドメイン層に配置します
プロジェクト構成
project/
cmd/ # Application entry points
internal/ # Private application code
pkg/ # Public libraries
api/ # API definitions (OpenAPI, protobuf)
configs/ # Configuration files
test/ # Additional test utilities
エラー処理
- コンテキストを付与して明示的にエラーを処理します
- デバッグに十分なコンテキストを含めてエラーを返します
- ドメイン固有の失敗に対してカスタムエラー型を実装します
- エラーを黙って無視しないでください
並行処理
- 適切なライフサイクル管理により、ゴルーチンを安全に管理します
- すべての関数呼び出しでコンテキストを伝播させます
- 通信にはチャネルを適切に使用します
- グレースフルシャットダウンのパターンを実装します
テスト
- テーブル駆動パターンを使用して、包括的なユニットテストを作成します
- 外部依存関係にはモックを使用します
- 高速なユニットテストと統合テストを分けます
- 重要な処理経路に対してエンドツーエンドテストを実装します
回復性
- 指数バックオフを使用したリトライを実装します
- 連鎖的な障害を防ぐためにサーキットブレーカーを使用します
- グレースフルデグラデーションを考慮して設計します
- 部分的な障害を適切に処理します
コメント
Markdown 対応