サービス指向アーキテクチャService-oriented architecture

サービス指向アーキテクチャ (SOA) は乱用されている用語であり、人によって異なる意味で使われています。Service-oriented architecture (SOA) was an overused term and has meant different things to different people. ただし、共通の基準としての SOA は、アプリケーションをサブシステムや階層などのさまざまな種類に分類できる複数のサービス (通常は HTTP サービス) に分解して、アプリケーションを構築することを意味します。But as a common denominator, SOA means that you structure your application by decomposing it into multiple services (most commonly as HTTP services) that can be classified as different types like subsystems or tiers.

このようなサービスは Docker コンテナーとして展開できます。すべての依存関係がコンテナー イメージに含まれているため、展開の問題が解決します。Those services can now be deployed as Docker containers, which solves deployment issues, because all the dependencies are included in the container image. ただし、SOA アプリケーションをスケール アップする必要がある場合、単一の Docker ホストに基づいて展開すると、スケーラビリティと可用性に問題が生じる可能性があります。However, when you need to scale up SOA applications, you might have scalability and availability challenges if you're deploying based on single Docker hosts. このような場合に Docker クラスタリング ソフトウェアまたはオーケストレーターが役立ちます。詳細については、マイクロサービスの展開アプローチについて説明する後述のセクションを参照してください。This is where Docker clustering software or an orchestrator can help you, as explained in later sections where deployment approaches for microservices are described.

Docker コンテナーは、従来のサービス指向アーキテクチャと高度なマイクロサービス アーキテクチャの両方にとって便利な機能です (ただし、必須ではありません)。Docker containers are useful (but not required) for both traditional service-oriented architectures and the more advanced microservices architectures.

マイクロサービスは SOA に由来しますが、SOA はマイクロサービス アーキテクチャとは異なります。Microservices derive from SOA, but SOA is different from microservices architecture. 大きな中央のブローカー、組織レベルの中央のオーケストレーター、エンタープライズ サービス バス (ESB) などは、SOA の典型的な機能です。Features like large central brokers, central orchestrators at the organization level, and the Enterprise Service Bus (ESB) are typical in SOA. ただしほとんどの場合、マイクロサービス コミュニティではこれらはアンチパターンです。But in most cases, these are anti-patterns in the microservice community. 実際、一部の人は "マイクロサービス アーキテクチャはきちんとした SOA だ" と主張しています。In fact, some people argue that "The microservice architecture is SOA done right."

このガイドでは、マイクロサービスに焦点を当てています。なぜなら、SOA アプローチは、マイクロサービス アーキテクチャで使用される要件や手法ほど規範的ではないからです。This guide focuses on microservices, because a SOA approach is less prescriptive than the requirements and techniques used in a microservice architecture. マイクロサービスベースのアプリケーションを構築する方法がわかれば、より単純なサービス指向アプリケーションを構築する方法もわかります。If you know how to build a microservice-based application, you also know how to build a simpler service-oriented application.