ソフトウェア開発者がソフトウェアアーキテクチャの進化を理解していない場合、技術の選択と開発者の生存および昇進の余地が制限されます。ここでは、ソフトウェア開発者の知識を広げるために、4 つの主要なソフトウェア アーキテクチャとその長所と短所をリストします。 1. モノリシックアーキテクチャ モノリシック アーキテクチャは比較的基本的なもので、典型的な 3 レベル アーキテクチャは、フロントエンド (Web/モバイル) + 中間ビジネス ロジック層 + データベース層です。これは、Java Spring MVC または Python Drango フレームワークの典型的なアプリケーションです。アーキテクチャ図は次のとおりです。 モノリシックアーキテクチャ モノリシック アプリケーションは、展開とテストが簡単です。プロジェクトの初期段階では、モノリシック アプリケーションは問題なく動作します。しかし、需要が増加し続け、開発チームに加わる人が増えるにつれて、コードベースは急速に拡大しました。徐々に、モノリシック アプリケーションは肥大化し、保守性と柔軟性が徐々に低下し、保守コストがどんどん高くなります。モノリシック アプリケーションの欠点は次のとおりです。
2. 分散アプリケーション 中間アーキテクチャ、分散アプリケーション、中間層分散 + データベース分散は、モノリシック アーキテクチャの同時拡張です。大規模なシステムを複数のビジネス モジュールに分割します。ビジネス モジュールは異なるサーバーに展開され、ビジネス モジュールはインターフェイスを通じて相互に対話します。データベースでは、Redis、ES、Solor などの分散データベースも広く使用されています。LVS/Nginx プロキシ アプリケーションを通じて、ユーザー リクエストはさまざまなサーバーに分散されます。アーキテクチャ図は次のとおりです。 分散アーキテクチャ モノリシック アーキテクチャと比較して、このアーキテクチャは負荷分散機能を提供し、システムの負荷容量を大幅に向上させ、Web サイトの高い同時実行要件を解決します。その他の機能は次のとおりです:
3. マイクロサービスアーキテクチャ マイクロサービス アーキテクチャは主に中間層を分解し、システムを多数の小さなアプリケーション (マイクロサービス) に分割します。マイクロサービスは、異なるサーバーにデプロイすることも、同じサーバー上の異なるコンテナにデプロイすることもできます。アプリケーションの障害が他のアプリケーションに影響を与えず、単一アプリケーションの負荷が他のアプリケーションに影響を与えない場合、代表的なフレームワークとしては、Spring cloud、Dubbo などがあります。そのアーキテクチャ図は以下のとおりです。 マイクロサービスアーキテクチャ
4. サーバーレスアーキテクチャ 私たちがコンテナの波の中で前進を続ける一方で、革命的な先駆者たちは、サーバーレス アーキテクチャという別のクラウド コンピューティングの戦場をひっそりと開拓してきました。 サーバーレスアーキテクチャ 2014 年 11 月 14 日、Amazon AWS は新しい製品 Lambda をリリースしました。当時、Lambda は、基盤となるコンピューティング リソースを気にすることなく、時間に応じてユーザー コードを実行するコンピューティング サービスと説明されていました。ある意味、Lambda は遅れて参加したと言えます。これはクラウド コンピューティングの PaaS コンセプトに似ています。顧客はビジネスに集中するだけでよく、ストレージやコンピューティング リソースについて心配する必要はありません。 その少し前の2014年10月22日、GoogleはリアルタイムバックエンドデータベースのスタートアップであるFirebaseを買収しました。 Firebase は、開発者が標準 REST API のさまざまなインターフェースを使用してデータを読み書きするには、API ライブラリ ファイルを参照するだけでよいと主張しています。 HTML + CSS + JavaScript のフロントエンド コードのみを記述すればよく、サーバー側のコードは必要ありません (統合が必要な場合でも、非常に簡単です)。 上記2社と比較すると、2014年2月にFacebookに買収されたParseは、一般的なバックエンドサービスの提供に重点を置いています。これらのサービスは、サーバーレスまたはサーバーなしと呼ばれます。 PaaS(Platform as a Service)をお考えですか?とても似ていますね。ユーザーはインフラストラクチャについて心配する必要はなく、ビジネスについてのみ注意する必要があります。これは後発の PaaS ですが、より実用的な PaaS でもあります。これにより、開発プロセス全体と従来のアプリケーション ライフサイクルに革命が起こる可能性があります。開発者がクラウド リソースの完全に自動化された作成と割り当てに慣れると、マイクロ アプリケーションでリソースを構成する必要があった時代に戻ることはできなくなるかもしれません。 サーバーレス アーキテクチャにより、開発者はコンピューティング リソースの取得とメンテナンスを気にすることなくアプリケーションを構築できます。このプラットフォームは、オンデマンドでコンピューティング リソースを割り当て、アプリケーション実行の SLA (サービス レベル契約) を保証します。課金は通話回数に基づいて行われるため、アプリケーション コストを効果的に節約できます。 ServerLess のアーキテクチャを上の図に示します。利点は次のとおりです。
しかし、ServerLess アーキテクチャには欠点もあります。
現在、4つのアーキテクチャの中ではマイクロサービスアーキテクチャが主流となっており、第1および第2のアーキテクチャを採用している多くの企業も徐々にマイクロサービスアーキテクチャへと移行しつつあります。今のところ、マイクロサービスの技術は2、3年前に比べて比較的成熟しており、第4のアーキテクチャは今後の発展のトレンドとなるでしょう。私の記事が気に入ったら、私の Jianshu をフォローしてください。後ほど、Spring Cloud と Docker を使用してマイクロサービスを簡単に楽しく構築する方法を説明します。 |
<<: 製造業におけるクラウド コンピューティングからクラウド製造に移行するには、いくつのハードルを乗り越える必要がありますか?
>>: エッジコンピューティングはコロナウイルス後に繁栄すると予想される
今後、浙江省の各級裁判所の訴訟資産はすべてタオバオで競売にかけられる予定。 【TechWeb Rep...
2019年12月13日、「知会杯」2019年度全国大学フィンテックイノベーションコンテスト表彰式お...
[51CTO.com からのオリジナル記事] ハイパーコンバージェンスは中国市場に登場してまだそれほ...
tzulo.com は、2003 年に設立されたホスティング会社です。主にシカゴとロサンゼルスにコン...
Google PR 値は、ウェブマスターがフレンドリー リンクを交換するための基準の 1 つであるた...
1. かつて有名だったレストラン予約サイト「Fantong.com」はどこへ行ってしまったのでしょう...
当初は「B2Cの叫び」というタイトルにしようと思っていたのですが、後からクリックベイトっぽすぎるし、...
米国のテクノロジーニュースサイトEngadgetなどの報道によると、業界関係者は最近、Googleが...
はじめに:深センの 500 万宝くじネットワークが米国で上場される予定です。Snowball の著者...
SEOER として SEO に従事している人は多く、会社内で小さな役割を担い、最低の給料をもらいなが...
[編集者注] この記事の翻訳者は Fan Xiaohu です。モバイル Web にとって、今は急成長...
87cloudはAlibaba Cloud Internationalの公式代理店として、Aliba...
ntup (旧 takewyn) からの最新のメールは次のとおりです: 専用サーバーの場合、トラフィ...
Admin5.comが9月4日に報じたところによると、一方ではオフライン決済市場最大の銀行カードスイ...
はじめに: いつから始まったのかは分かりませんが、インターネットではあらゆる種類の「示唆的な」コンテ...