ソフトウェア開発者がソフトウェアアーキテクチャの進化を理解していない場合、技術の選択と開発者の生存および昇進の余地が制限されます。ここでは、ソフトウェア開発者の知識を広げるために、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 を使用してマイクロサービスを簡単に楽しく構築する方法を説明します。 |
<<: 製造業におけるクラウド コンピューティングからクラウド製造に移行するには、いくつのハードルを乗り越える必要がありますか?
>>: エッジコンピューティングはコロナウイルス後に繁栄すると予想される
Baidu がアップグレードされてから、Baidu の 2 ページ目の上部に関連キーワードの小さな機...
ソフト記事の台頭は一時的なものではなく、ルネサンスでもありません。むしろ、それはオンラインでの宣伝や...
私たちのネットワークプロモーションにおけるソフト記事プロモーションの位置は、「軸」という単語で説明で...
V5Net(v5サーバー)は現在、香港の代表的なサーバーを30%割引で提供しています。わずか625元...
この記事は、私自身のネットで稼ぐ経験をまとめたものです。よく考えてみると、ネットで稼ぐということに気...
MicrosoftInternetExplorer402DocumentNotSpecified7....
古いウェブサイトが数秒でインデックスに追加されることは目新しいことではありませんが、新しいウェブサイ...
ロシアのサーバーには独自の利点があります。法律は比較的緩やかで、中国からの接続は遅くなく、ヨーロッパ...
年末の総括と言えば、私は基本的に書いたことがありません。前年の年末に書いたログは、細かいことばかりで...
WeChat認証プラットフォームレビュー戦略アップグレード【TechWeb Report】5月22日...
サーバーがKになったという記事でBaiduに取り上げられた2つのウェブサイトのランキングが回復し、少...
ウェブマスターとして、特に企業の SEO 担当者として、ウェブサイトのランキングは当然注目の的となり...
先週、Github で最も人気のあるプロジェクトは、最近バージョン 2.0 に更新された自然言語処理...
[[382681]] 「クラウド」という概念は私たちの生活の隅々まで浸透しています。 2021年の春...
「ワン・ステップ・アウェイ」は悪い映画か、それとも良心的な作品か?この問題は最近激しく議論されており...