分散アーキテクチャの過去と現在を10分で理解する

分散アーキテクチャの過去と現在を10分で理解する

すべてのプログラマーにとって、分散アーキテクチャについて聞いたときの最初の反応は通常、それがハイエンドで、威圧的で、高級感があるというものです。例えば、アリババのさまざまなシステムは異なるマシンに展開されており、杭州、上海、深センなどの異なるサーバーにも分散されています。ファーウェイのサーバーも、世界中のユーザーのニーズを満たすことができるように、世界のさまざまな地域に分散されます。

さまざまな求人広告で、分散システムの開発に精通している人材を見かけることはよくあります。では、配布とは一体何でしょうか?こう言えば子供でも理解できます。

[[283475]]

背景

分散とはモジュールでの開発と展開を意味し、分散の核となるのはモジュールであると考える人もいます。しかし、モジュール化は分散型の概念ではありません。 1990 年代初頭には、ソフトウェア機能をモジュールに従って分割することを提案する人もいました。ソフトウェア エンジニアリングでは、モジュールをより適切に分離することができ、作業では、モジュールをさまざまなタスクに適切に分割することもできます。モジュールで開発されていますが、同じマシンにデプロイされています。ソフトウェア、特にインターネットの発展に伴い、従来のモノリシック アーキテクチャはますます効果が低下しており、主に次の 3 つの側面に現れています。

  • パフォーマンスの問題: インターネット業界の初期の頃は、ハードウェアが非常に急速に発展し、ほぼすべての新しい世代のコンピュータ チップのパフォーマンスが前世代の 2 倍になりました。しかし、ムーアの法則が期限切れとなり、ハードウェアの改善はソフトウェア業界の発展に追いつかなくなっています。チップの性能を 2 倍にするには、現在では数世代の製品が必要になるため、Intel は歯磨き粉を絞り出しているようなものだとよく言われます。そのため、モノリシックアーキテクチャのパフォーマンス問題が発生し、時代の変化に対応できなくなりました。
  • 各モジュールは論理的に分離されているだけで、同じマシン上に展開されているため、拡張が困難です。各モジュールは、Yongyang の物理メモリ、同じハードディスク、同じネットワーク カードを使用します。実際、各モジュールは、何千ものギアを備えた精密機械のように、互いに密接に依存しています。各モジュールの変更により、他のギアの回転が駆動されます。
  • システムの可用性が低いです。すべてのモジュールが同じマシン上に存在しないことは想像に難くありません。突然ディスク全体がいっぱいになったり、メモリがリークしたりするなど、1 つのモジュールに問題が発生すると、システム上の他のモジュールに影響が及び、システム全体がクラッシュすることになります。

特徴

従来のモノリシック構造と比較すると、分散アーキテクチャの最も重要な点は次のとおりです。

  • 新しい機能の開発と実装が容易になります。従来のモノリシック構造では、モジュール間の依存関係が非常に深刻です。機能を実装する場合は、他のモジュールへの影響も評価する必要があります。分散設計では、モジュールはインターフェースを通じて相互に対話します。モジュールの内部実装は他のモジュールに対して透過的であり、影響は少なくなります。
  • 単一点障害の影響は小さくなります。従来のモノリシック アーキテクチャの重大な問題は、1 つのモジュールに障害が発生すると、システム全体が簡単に使用できなくなる可能性があることです。簡単な例を挙げると、電子商取引システムでは評価システムはそれほど重要ではないかもしれません。しかし、ある日、評価システムに障害が発生し、メモリ リークが発生してマシンが継続的に再起動するようになり、同じマシンに展開されている他のアプリケーションに影響を及ぼす可能性が高くなります。分散展開により、障害の可能性を大幅に減らすことができます。もちろん、分散にも障害の問題があり、優れた分散アーキテクトが合理的かつ適切なフレームワークを構築し、それを合理的に展開して、単一障害点による大規模な障害を回避する必要があります。
  • システムのスループットが向上します。以前のシングルポイント展開モジュールは、単一のマシンのパフォーマンスによって制限されていました。分散アーキテクチャでは、パフォーマンスのボトルネックがあるモジュールに対して、非同期を使用したり、より多くのマシンを展開したりすることで、単一マシンのパフォーマンスのボトルネックの問題を解決し、マシンの使用率を向上させることができます。簡単な例を挙げると、データベース モジュールではディスクのパフォーマンスと容量に対する要件が高くなります。より高性能なディスクを搭載したマシンに導入できます。 CPU とメモリ容量に対する要件が高いキャッシュの場合、より高いマシン使用率を実現できます。

分散は多くの問題を解決しますが、多くの欠点や困難も抱えているため、それらを克服して設計するにはプログラマーとアーキテクトが必要です。

主な困難

  • 異機種混合システムには統一された標準はありません。分散システムでは、各モジュールは独自の開発言語と展開環境を選択でき、各システムは独自のデータ構造と通信プロトコルを選択できます。通信に HTTP プロトコルを使用したい人もいれば、Google の gRPC を使用したい人もいれば、Twitter の thrift を使用したい人もいるでしょう。さらに、プロトコル本体、エラーコード、エラーメッセージなどのデータ構造に一貫性がない可能性があり、開発に不便をもたらすだけでなく、統一された監視とガバナンスにも多くの問題をもたらします。
  • 機械の台数が増えたために故障の可能性が高くなり、1 台の機械の性能や品質が以前ほど良くない可能性があります。同時に、保守や開発に携わる人数が増えると、単一の機械構造よりも単一の機械が故障する確率が高くなります。これは避けられない現象です。一度も失敗を経験したことのないエンジニアは、良いプログラマーとは言えません。そのためには、運用と保守を自動化しながら、障害の可能性と影響を軽減するための合理的な分散アーキテクチャを設計する必要があります。結局のところ、人は必ず間違いを犯しますし、頻繁に間違いを犯します。
  • サービス依存関係の問題に関しては、1 台のマシンがクラッシュしてもプログラム全体がクラッシュすると想定しないでください。これはモノリシック アーキテクチャでのみ発生します。分散環境には、いくつかの重要なサービスもあります。一度崩壊すると、ドミノ倒しのような現象が起こり、雪崩が発生することがよくあります。たとえば、ユーザーのログイン状態を維持するチャット ソフトウェアのセッション サービスに障害が発生すると、すべてのサービスでログイン状態が失われ、サービス全体が利用できなくなる可能性があります。

やり方

分散によって生じる問題を解決するには、プログラマーやアーキテクトがスキルを発揮する必要があります。どのような方法を使用するかに関係なく、次の 2 つのことに他なりません。

  • システムスループットを向上させることです。
  • システムの可用性を向上させることです。

<<:  デジタル時代において、クラウドインテリジェンスはクラウドの未来を再定義します

>>:  デジタル変革の第二章が始まろうとしており、ハイブリッドマルチクラウド管理が焦点となる

推薦する

unestyはどうですか?ドイツのVPSの簡単な評価

unestyはどうですか? unesty German VPS はどうですか? unesty.net...

海外SEO最適化ツール2つを推奨

SEO ブログでは基本的に、「ウェブマスターがよく使用する無料 SEO ツール」という記事で国産 S...

パブリッククラウドが攻撃されたらどうなりますか?

パブリック クラウドがハッキングされ、重要なデータが無防備な状態のまま放置されることは、どの組織にと...

分析する価値のある競合ウェブサイトとその分析方法について簡単に説明します。

みなさんこんにちは。私はハルビン仮想および現実ウェブサイトデザインです。最近、オンラインでいくつかの...

曲頭条にはまだ突破のチャンスはあるのだろうか?

Qutoutiao は、新しい形式の情報閲覧を創造することに特化したソフトウェアです。モバイル アプ...

WeChatに勝てる者は誰か?

誰がWeChatに勝てるかは、最新のホットな話題ではなく、古くからある疑問です。小さなスタートアップ...

ニュース: Linode が PayPal と Google Pay を定期支払い方法として正式に追加

Linode は、PayPal とGoogle Pay が支払い方法に追加されることを公式に発表しま...

ソーシャルQ&Aサイトの台頭:Quoraは最終的にWikipediaに取って代わるだろう

クオーラソーシャルQ&Aサイト「Quora」は、シリコンバレーで最も注目されているスタートア...

Google Cloud の幹部は、これらの 5 つのデータ トレンドが 2021 年のビジネス開発を推進すると予測しています。

この記事はLeiphone.comから転載したものです。再印刷が必要な場合は、Leiphone.co...

リンクや製品の推奨を行うときは、関連性だけでなく需要にも重点を置く必要があります。

内部リンクであろうと外部リンクであろうと、リンクを作成するときに最初に考慮する必要があるのはリンクの...

QQグループマーケティング

インターネットの普及により、オンライン販売は大企業、中堅企業、中小企業、さらには個人の間でもますます...

uuuvpsはどうですか?プロモーション20M帯域幅香港VPSの簡単な評価

Sanyouyun (uuuvps はどうですか、uuuvps の香港 VPS はどうですか?) こ...

ドイツチームの視点からウェブサイト運営の欠陥リスクを回避する方法

今回のヨーロッパカップの盛り上がりは、明らかに過去2回よりも良い。グループリーグの2ラウンドを終えて...

AWS スポットインスタンスを使用してクラウドコンピューティングのコストを 90% 削減する方法

企業の IT チームの中には、スポットインスタンスを利用するのではなく、容量を予約することを選択する...

ウェブサイトの外部リンク構築モデルのアップグレード平均外部リンク方式が人気

百度のザクロアルゴリズムによる一連の攻撃の後、外部リンクの重要性は相対的に低くなりましたが、この相対...