ソフトウェア開発者がソフトウェアアーキテクチャの進化を理解していない場合、技術の選択と開発者の生存および昇進の余地が制限されます。ここでは、ソフトウェア開発者の知識を広げるために、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 を使用してマイクロサービスを簡単に楽しく構築する方法を説明します。 |
<<: 製造業におけるクラウド コンピューティングからクラウド製造に移行するには、いくつのハードルを乗り越える必要がありますか?
>>: エッジコンピューティングはコロナウイルス後に繁栄すると予想される
Fliphostは2周年を機にKVMベースのVPSをリリースしました。1Gと2Gのメモリは月額4ドル...
『易経』には「君子は豹のように変わり、悪人は顔つきを変える」という格言がある。翻訳すると、状況が変わ...
電子署名業界は2019年に再び盛り上がりを見せました。資本の注目を浴びる人気分野となっただけでなく、...
2011年にWeChatが台頭して以来、私の周りの友人たちもどんどんWeChatやモーメントを使い始...
テンセントテクノロジーニュース(朱旭東)は9月17日、アリペイが本日、中国初のインターネット商店セキ...
[[205059]]現在のパブリッククラウド環境 (AWS、Microsoft Azure、Goog...
私は医療業界で検索エンジンマーケティングに携わっています。医療業界のプロモーションや編集に携わったこ...
[[243682]]データは世界で最も価値のあるリソースになりつつあります。分散ファイル ストレージ...
近年、不動産ウェブサイトの人気が高まっています。住宅価格は規制されていますが、住宅を購入する人の数は...
先日のメーデーは、気候が温暖だったため、各地の観光客数が春節ゴールデンウィークや清明節の観光客数を上...
6G テクノロジーの分野では、クラウドとエッジ コンピューティングが重要な役割を果たし、デジタル世界...
11月16日、中国オープンソースクラウドアライアンスWG6コンテナワーキンググループとShuren ...
今日、多くの企業が、ビジネス開発のためにモノのインターネット (IoT) とクラウド コンピューティ...
市場調査会社Omdiaの新しいレポートによると、ITベンダーはかつて企業にクラウド技術を提供し、統合...
アプリケーションの展開時間を数日から数時間に短縮した後、クラウド コンピューティングは数秒の時代に入...