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

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

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

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

[[283475]]

背景

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

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

特徴

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

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

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

主な困難

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

やり方

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

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

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

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

推薦する

Kafka の効率的なストレージ設計をコミックで解説

[[347741]]始める前に、Kafka の概念をいくつか思い出させてください。 a.ブローカー:...

羅永浩はライブ配信でグッズ販売に成功するだろうか?

老洛氏は、招商証券の権威あるライブストリーミング電子商取引レポートを読んで、ライブストリーミング電子...

ステーショングループ?勝てるかどうかわからない戦いには出かけないでください!

サイト グループを設定する理由については、人それぞれ理由があります。私が説明したい理由は非常に単純で...

「理解」エコシステムを構築し、エコシステムの潜在力を解き放ち、業界のデジタル変革に立ち向かう

[51CTO.comより元記事] ファーウェイは2021年1月1日、「2021年ファーウェイ中国政府...

利益を守ることは独創性を守る方法を教えます

今日の午後、嬉しいと同時に驚くような出来事がありました。午後2時頃、見知らぬ人が突然私のQQに現れて...

スマートフォンが SP モデルを推進: 中国電信がワイヤレス音楽業界を改革

長らく収益モデルに制約されてきた中国のオンライン音楽業界は、新たなビジネスモデル革新を起こしつつある...

アリババクラウドが高速オンライン課金プラットフォームを立ち上げ、課金精度が2倍に

6月9日、アリババクラウドは2020年アリババクラウドオンラインサミットにおいて、スマートハイウェイ...

SEOにはプロダクト思考を活用する

最近友人とチャットしていたとき、私たちは二人とも、SEO 業界には、固定された規範や基準が欠如してい...

ICTとクラウドコンピューティングの主なトレンドはエッジコンピューティングになる

[[388201]] Reply 社の新しい調査「クラウドからエッジへ」によると、2025 年までに...

dedicatserver: ルーマニア、VPS+サーバー、開始まで10分

dedicatserver.ro は Astimp Consulting SRL Group (19...

Tencent Cloud: 新年ショッピングフェスティバル、フラッシュセール 20% オフ、買って稼ごう!

テンセントクラウド(良心クラウド)は、春節ショッピングフェスティバルを正式に開始しました。(1)毎日...

UCloud AIオンラインサービスが低遅延シナリオに重点を置くGPUバージョンをリリース

序文UCloud AIオンラインサービス「UAI-Inference」は、昨年5月の無料公開ベータ版...

greencloudvps: 8 周年、すべての VPS が 12% オフ、香港\日本\シンガポール\ベトナム\米国\オランダ\英国\カナダ

greencloudvps は、8 周年を記念して最新のプロモーションを開始しました。すべての VP...

#プロモーション: cpanel ホスティングは 1.99 ドルから、bluehost/justhost/hostmonster

7 月 1 日から 7 月 7 日まで、世界最大のプライベート エクイティ ファンド ホスティング事...

B2Bウェブサイトを最適化する方法についてのアイデア

インターネット産業の急速な発展に伴い、国内の産業プラットフォームはますます増加し、ますます専門化して...