記事ディレクトリ
インターネットの発展に伴い、Webサイトの利用範囲も拡大し、システムアーキテクチャも変遷を続けてきましたが、インターネットの黎明期から現在に至るまで、システムアーキテクチャは大まかに以下のような過程を経てきました。
モノリシックアプリケーションアーキテクチャ
すべての機能が 1 つのアプリケーションに集中されており、統合された開発、導入、保守が可能です。
- 利点: 開発コスト、導入コスト、保守コストが低い
- 短所: 大規模なプロジェクトの場合、プロジェクト モジュールが密結合し、単一点フォールト トレランスが低く、特定のモジュールを最適化して水平拡張することができません。
垂直アプリケーション アーキテクチャ
以前の単一アプリケーションを複数のアプリケーションに分割して、効率を向上させます。たとえば、e コマース システムは、e コマース システム、バックエンド システムなどに分割できます。
- 利点: プロジェクト分割によりトラフィックの共有が実現し、同時実行の問題が解決され、特定のモジュールの最適化と水平拡張が可能になると同時に、アプリケーションが相互に影響を与えなくなり、耐障害性が向上します。
- 短所: アプリケーションは存在し、互いに独立しているため、同じ機能に対して一定の冗長性が生じます。
分散アーキテクチャ
ビジネスが拡大するにつれて、垂直アプリケーションには冗長なコードがますます増えます。冗長コードを抽出し、分散アーキテクチャを形成するアプリケーション呼び出しを提供する個別のサービスを提供します。
- 利点: パブリック関数をサービス層として抽出して、コードの再利用を向上させます。
- デメリット: システム間の結合度が高くなり、呼び出し関係が複雑になり、維持が困難になります。
SOAアーキテクチャ
分散アーキテクチャの欠点は、特にサービス ノードの数が増えると、アプリケーションとサービス間の呼び出しが複雑になり、維持が困難になることです。SOA は、リソースのスケジューリングとガバナンスの問題を解決するものです。
- 利点: ガバナンス センター (ESB/Dubbo) を使用して、サービス間の呼び出し関係の自動調整を解決します。
- 短所: サービス間には依存関係があり、1 つのリンクで問題が発生すると大きな影響が生じます。
マイクロサービスアーキテクチャ
SOA アーキテクチャ開発の次のステップであるマイクロサービス アーキテクチャでは、ある程度サービスの分割が重視され、各サービスは互いに影響を与えることなく独立してデプロイされるため、サービスがより軽量になります。
- 利点: サービスは個別にパッケージ化、展開、アップグレードされ、機能が明確に分割されているため、拡張が容易です。
- 短所: コストが高く、複雑です。
SOA アーキテクチャとマイクロサービス アーキテクチャの比較
- マイクロサービス アーキテクチャはより洗練されており、プロの人々がプロの仕事を行います。
- マイクロサービス アーキテクチャでは、各サービスは独立してデプロイされます。
- マイクロサービス アーキテクチャでは、各サービスは個別のデータベースです。
- マイクロサービス アーキテクチャは、機敏なインターネット開発とバージョンの迅速な反復により適しています。
分散アプリケーション開発ソリューション
Spring Cloud は、分散アプリケーション マイクロサービスの開発に必要なコンポーネントを含むマイクロサービス開発のためのワンストップ ソリューションを提供し、開発者が Spring Cloud プログラミング モデルを通じて分散アプリケーション サービスを簡単に開発できるようにします。現在、Spring Cloud エコシステムには Spring Cloud Netflix と Spring Cloud Alibaba の 2 つのフレームワークがあります。