Kush's Wiki
Blog
/
Microservices
#
Blog
#
Software Design
マイクロサービス
について
Martin Fowler
,
James Lewis
が2014年に書いたブログ
マイクロサービスの9つの特徴
について説明している
Loading...
Fetching description...
クラウドネイティブで実現する マイクロサービス開発・運用 実践ガイド
マイクロサービスの9つの特徴
#Software Design Microservicesのブログの中で説明されたマイクロサービスについての9つの特徴 9つの特徴 1. Componentization via Services(サービスによるコンポーネント化) - サービスを独立してデプロイ・置き換え可能なソフトウェアユニットとして扱う 2. Organized around Business Capabilities(ビジネス機能による組織化) - 技術層ではなくビジネス能力を中心にチームを編成し、UIからデータベースまで一つのチームが担当する 3. Products not Projects(プロジェクトではなくプロダクト志向) - "開発したものを自分たちで運用する"という哲学のもと、チームが長期的責任を持つ 4. Smart endpoints and dumb pipes(スマートエンドポイント、ダムパイプ) - 複雑なロジックはサービス内に置き、通信機構(HTTP、メッセージング)はシンプルに保つ 5. Decentralized Governance(分散ガバナンス) - 各チームが独立してプログラミング言語やデータベース技術を選択でき、中央集約的な標準化を避ける 6. Decentralized Data Management(分散データ管理) - 各サービスが独自のデータベースを管理し、結果整合性を活用する 7. Infrastructure Automation(インフラストラクチャ自動化) - 継続的デリバリーと自動デプロイメントを支援するツールやパイプラインへの投資を重視する 8. Design for failure(障害設計) - サービス障害に対応するため、回路ブレーカーパターンなどを使い、システムの耐障害性を確保する 9. Evolutionary Design(進化的設計) - サービス境界は変更時の複雑さに基づいて設定され、時間とともに柔軟に調整される想定で設計する