インターネット アプリケーションのアーキテクチャの進化


インターネットの発展に伴い、Webサイトの利用範囲も拡大し、システムアーキテクチャも変遷を続けてきましたが、インターネットの黎明期から現在に至るまで、システムアーキテクチャは大まかに以下のような過程を経てきました。

ここに画像の説明を挿入します

モノリシックアプリケーションアーキテクチャ

すべての機能が 1 つのアプリケーションに集中されており、統合された開発、導入、保守が可能です。

  • 利点: 開発コスト、導入コスト、保守コストが低い
  • 短所: 大規模なプロジェクトの場合、プロジェクト モジュールが密結合し、単一点フォールト トレランスが低く、特定のモジュールを最適化して水平拡張することができません。

垂直アプリケーション アーキテクチャ

以前の単一アプリケーションを複数のアプリケーションに分割して、効率を向上させます。たとえば、e コマース システムは、e コマース システム、バックエンド システムなどに分割できます。

  • 利点: プロジェクト分割によりトラフィックの共有が実現し、同時実行の問題が解決され、特定のモジュールの最適化と水平拡張が可能になると同時に、アプリケーションが相互に影響を与えなくなり、耐障害性が向上します。
  • 短所: アプリケーションは存在し、互いに独立しているため、同じ機能に対して一定の冗長性が生じます。

分散アーキテクチャ

ビジネスが拡大するにつれて、垂直アプリケーションには冗長なコードがますます増えます。冗長コードを抽出し、分散アーキテクチャを形成するアプリケーション呼び出しを提供する個別のサービスを提供します。

  • 利点: パブリック関数をサービス層として抽出して、コードの再利用を向上させます。
  • デメリット: システム間の結合度が高くなり、呼び出し関係が複雑になり、維持が困難になります。

SOAアーキテクチャ

分散アーキテクチャの欠点は、特にサービス ノードの数が増えると、アプリケーションとサービス間の呼び出しが複雑になり、維持が困難になることです。SOA は、リソースのスケジューリングとガバナンスの問題を解決するものです。

  • 利点: ガバナンス センター (ESB/Dubbo) を使用して、サービス間の呼び出し関係の自動調整を解決します。
  • 短所: サービス間には依存関係があり、1 つのリンクで問題が発生すると大きな影響が生じます。

マイクロサービスアーキテクチャ

SOA アーキテクチャ開発の次のステップであるマイクロサービス アーキテクチャでは、ある程度サービスの分割が重視され、各サービスは互いに影響を与えることなく独立してデプロイされるため、サービスがより軽量になります。

  • 利点: サービスは個別にパッケージ化、展開、アップグレードされ、機能が明確に分割されているため、拡張が容易です。
  • 短所: コストが高く、複雑です。

SOA アーキテクチャとマイクロサービス アーキテクチャの比較

  • マイクロサービス アーキテクチャはより洗練されており、プロの人々がプロの仕事を行います。
  • マイクロサービス アーキテクチャでは、各サービスは独立してデプロイされます。
  • マイクロサービス アーキテクチャでは、各サービスは個別のデータベースです。
  • マイクロサービス アーキテクチャは、機敏なインターネット開発とバージョンの迅速な反復により適しています。

分散アプリケーション開発ソリューション

Spring Cloud は、分散アプリケーション マイクロサービスの開発に必要なコンポーネントを含むマイクロサービス開発のためのワンストップ ソリューションを提供し、開発者が Spring Cloud プログラミング モデルを通じて分散アプリケーション サービスを簡単に開発できるようにします。現在、Spring Cloud エコシステムには Spring Cloud Netflix と Spring Cloud Alibaba の 2 つのフレームワークがあります。

おすすめ

転載: blog.csdn.net/qq_28314431/article/details/128644137