【ゼロからマイクロサービスを学ぶ】 03. ソフトウェアアーキテクチャの進化過程

みなさん、こんにちは、Wanmao Academy へようこそ。私と一緒に学びましょう。あなたもマイクロサービスの専門家になれます。

現在、ほとんどのエンタープライズ システムとインターネット アプリケーションは Web の形でサービス機能を提供しています. システムの編成と展開構造に従って、通常、ソフトウェア アーキテクチャの進化プロセスを次の段階に分けます。

  • モノリシック アーキテクチャ
  • 垂直アーキテクチャ
  • SOA アーキテクチャ
  • マイクロサービス アーキテクチャ

モノリシック アーキテクチャ

モノリシック アーキテクチャはモノリシック アーキテクチャとも呼ばれ、モノリスのように、システムのすべてのコード、すべてのロジック、およびすべてのモジュールが 1 つのプロジェクトに集約され、1 つのプロセスで展開されます。たとえば、次の電子商取引システムです。

電子商取引システムは、プレゼンテーション レイヤー、ビジネス ロジック レイヤー、およびデータ アクセス レイヤーに分割されますが、それらは同じプロジェクト内にあります。例えば、ビジネスロジック層では、商品管理、在庫管理、注文管理などのモジュールのロジックがまとまっていて、コード同士が結合している箇所が出てくるのは必然です。そしてあなたは私の中にいます。そのためコードのメンテナンスが難しく、例えば商品管理のコードを変更する場合、注意を怠ると在庫管理のロジックに影響を与え、本番環境でバグや事故が発生することもありました。

アドバンテージ

  • シンプルな構造で、すべてのモジュールが 1 つのプロジェクトに集中しています。
  • 展開は簡単です。展開する必要があるのは 1 つのプロセスだけです。

欠点

  • バージョンの反復は遅く、モジュールの結合度は高く、全身に通じます。
  • コードのメンテナンスが難しく、すべてのモジュールが 1 つのプロジェクトにあり、他のユーザーによって誤って変更されるリスクが高くなります。

垂直アーキテクチャ

ビジネスの発展に伴い、単一アーキテクチャのシステムはますます肥大化し、コードの保守がますます困難になるため、システムは複数のプロジェクトのサブシステムに垂直に分割され、垂直アーキテクチャとも呼ばれますシャフト建築、または煙突建築。たとえば、次の電子商取引システムです。

オリジナルの電子商取引システムは、注文システム、物流システム、およびユーザー システムの 3 つの独立したサブシステムに分割されます.サブシステムは互いに独立しており、互いに影響を与えることはありません.新しいビジネスの反復はより効率的です
. ただし、システムは相互に呼び出すことができないため、一部のモジュール機能は異なるシステムに実装されています。たとえば、製品管理モジュールは、注文システムと物流システムの両方で繰り返し実装されています。

アドバンテージ

  • システムは互いに独立しており、互いに影響を与えません。
  • 新しいビジネスの反復はより効率的です。

欠点

  • さまざまなシステム間でモジュール機能の開発が繰り返される状況がある
  • 各システムは互いに独立しており、互いに呼び出すことができず、「情報の孤島」を形成しています。

SOA アーキテクチャ

SOA の正式名称は Service Oriented Architecture で、サービス指向のアーキテクチャです. 垂直アプリケーションが増えると、重複するビジネス コードがますます増えます。この時点で、繰り返されるコードを抽出して、独立したサービスとして統合されたビジネス レイヤーを形成できます。

SOAは、企業内ITシステムの構築の繰り返しと効率の悪さを背景に、企業内のさまざまなITシステムの能力をより有効に活用し、情報島などの問題を解決し、異種システムに適応し、ビジネス機能を統合します。たとえば、次の電子商取引システムです。

注文システムや物流システムなどの機能モジュールは独立したサービスとして定義され、すべてのサービスはエンタープライズ サービス バス (ESB) を介して相互に接続されます。エンタープライズ サービス バス (ESB) は、伝送プロトコル変換、データ形式変換、サービス ルーティング、監視、アラームなどの機能を実行します。

アドバンテージ

  • 孤立した情報島の問題を解決し、さまざまな異種システムに適応します。
  • システム全体の再利用性と保守性を向上させます。

欠点

  • サービスのインターフェイス プロトコルは固定されておらず、多くの種類があり、複雑さが増しています。
  • サービスの依存関係により、展開が複雑になります。

マイクロサービス

ある観点から見ると、マイクロサービス アーキテクチャもサービス指向アーキテクチャであり、マイクロサービスと SOA アーキテクチャは非常に似ており、多くの概念が似ていますが、本質的には大きな違いがあります。

SOA アーキテクチャは通常、巨大で複雑な ESB バスを持ち、ESB は個々のアプリケーション間のデータ交換に使用され、ESB は多くのビジネス ロジックの変換と処理作業も請け負っていますが、マイクロサービスの概念には ESB はなく、 some それは単なる軽量のメッセージ通信メカニズムです。

マイクロサービスは、特定の技術基準ではなく、ビジネス機能と一連の設計基準に基づいて編成されたきめ細かいサービスの構成を通じて、大規模で複雑なシステムを構築するためのアーキテクチャ スタイルです。

要約する

  • モノリシック アーキテクチャ、すべてのコード、すべてのロジック、およびすべてのモジュールが 1 つのプロジェクトに集中しています。
  • システムを複数のプロジェクトのサブシステムに垂直に分割する垂直アーキテクチャ。
  • SOA アーキテクチャでは、すべてのサービスがエンタープライズ サービス バス (ESB) を介して相互に接続されています。
  • マイクロサービス アーキテクチャは、きめ細かいサービスの組み合わせによって大規模で複雑なシステムを構築します。

最後に、とてもハンサムで、親指を立ててくれてありがとう


『ゼロから学ぶマイクロサービス』総合カタログ

おすすめ

転載: blog.csdn.net/heihaozi/article/details/127898901