マイクロサービス

クラウド | IT用語集

この用語をシェア

概要・定義

マイクロサービス(Microservices)は、アプリケーションを小さな独立したサービスに分割し、それぞれが独立してデプロイ・運用される分散システムアーキテクチャです。各サービスは特定のビジネス機能を担当し、軽量なAPI(通常はHTTP/REST)で他のサービスと通信します。

従来のモノリシック(単一構成)アーキテクチャに対するアプローチとして、Netflix、Amazon、Uberなどの大手企業が採用し、2010年代中期から急速に普及しました。各サービスは独立してスケールでき、異なる技術スタックを使用することも可能で、大規模で複雑なシステムの開発・運用に適しています。

主要な特徴・利点

1. 独立したデプロイメント

各サービスは独立してデプロイ・リリースできるため、システム全体を停止することなく、個別の機能を更新できます。

2. 技術多様性

各サービスに最適な技術スタック(プログラミング言語、データベース、フレームワーク)を選択できます。

3. 障害分離

一つのサービスで障害が発生しても、他のサービスへの影響を最小限に抑えることができます。

4. スケーラビリティ

負荷に応じて、特定のサービスのみを水平スケールできるため、リソースの効率的な利用が可能です。

5. 開発チームの独立性

各サービスを異なるチームが開発・運用できるため、組織の拡張性が向上します。

マイクロサービスの原則

1. 単一責任の原則

各サービスは特定のビジネス機能に焦点を当て、明確な責任範囲を持ちます。

2. 分散データ管理

各サービスが独自のデータベースを持ち、直接的なデータベース共有は避けます。

3. 障害に対する設計

サービス間の通信障害を前提とし、リトライ、サーキットブレーカー、タイムアウトなどの機能を実装します。

4. 自動化の重要性

多数のサービスを効率的に管理するため、デプロイメント、モニタリング、テストの自動化が必須です。

実装アーキテクチャ例

ECサイトのマイクロサービス分割例

  • User Service: ユーザー管理・認証
  • Product Service: 商品カタログ管理
  • Cart Service: ショッピングカート機能
  • Order Service: 注文処理
  • Payment Service: 決済処理
  • Notification Service: 通知・メール送信
  • Inventory Service: 在庫管理

API Gateway パターン

# API Gateway設定例(Kong)
services:
  - name: user-service
    url: http://user-service:3000
    routes:
      - name: user-route
        paths:
          - /api/users
        
  - name: product-service
    url: http://product-service:3001
    routes:
      - name: product-route
        paths:
          - /api/products
          
  - name: order-service
    url: http://order-service:3002
    routes:
      - name: order-route
        paths:
          - /api/orders

この用語についてもっと詳しく

マイクロサービスに関するご質問や、システム導入のご相談など、お気軽にお問い合わせください。

カテゴリ

クラウド IT用語集