クラスター、分散、マイクロサービスの類似点と相違点について簡単に説明します。

クラスター、分散、マイクロサービスの類似点と相違点について簡単に説明します。

クラスターとは何か

クラスタリングとは、複数のサーバーをまとめて、各サーバーが同じビジネスを実装し、同じことを実行することを指します。ただし、各サーバーは必須ではありません。その主な機能は、同時実行の圧力と単一点障害の転送の問題を軽減することです。安価な産業標準ハードウェアを使用して、拡張性、パフォーマンス、コスト、可用性に優れたシステムを構築できます。

クラスターの主な機能は次のとおりです。

  • スケーラビリティ

一部の大規模システムでは、エンドユーザーの数と行動を予測することが非常に困難です。スケーラビリティとは、増加するユーザー数に適応するシステムの能力を指します。この同時セッション機能を向上させる最も直感的な方法の 1 つは、リソース (CPU、メモリ、ハード ディスクなど) を追加することです。クラスタリングは、この問題を解決するもう 1 つの方法です。複数のサーバーをグループ化して、単一のサーバーのように重いタスクを共有できるようになります。クラスターに新しいサーバーを追加するだけです。顧客にとっては、サービスの継続性やパフォーマンスにほとんど変化はなく、まるで気づかないうちにシステムがアップグレードされたかのようです。

  • 高可用性

単一サーバー ソリューションは、単一障害点になりやすいため、堅牢なアプローチではありません。銀行業務や請求書処理などの重要なアプリケーションでは、数分間のダウンタイムさえ許容できません。いつでもアクセス可能で、合理的かつ予測可能な時間内に応答するサービスが必要です。高可用性クラスターの登場は、コンピューティング ハードウェアとソフトウェアの信頼性を考慮しながら、クラスターの全体的なサービスを可能な限り利用できるようにすることです。高可用性クラスターのプライマリ ノードに障害が発生した場合、この期間中はセカンダリ ノードがその役割を引き継ぎます。セカンダリ ノードは通常、プライマリ ノードのミラーであるため、プライマリ ノードを置き換えると、その ID を完全に引き継ぐことができます。したがって、ユーザーにとってシステム環境は一貫しています。

  • 負荷分散

負荷分散クラスターは、企業のニーズに合わせてより実用的なシステムを提供します。名前が示すように、このシステムでは、コンピューターのクラスター全体に負荷を可能な限り均等に分散できます。負荷は、バランスを取る必要があるアプリケーション処理負荷またはネットワーク トラフィック負荷である可能性があります。このようなシステムは、多数のユーザーが同じアプリケーション セットを実行する場合に適しています。各ノードは負荷の一部を処理でき、負荷はノード間で動的に分散され、バランスが保たれます。

  • 高性能

通常、この設計のクラスターは、複雑な科学的問題を解決するための並列プログラミング アプリケーションの開発に使用されます。並列コンピューティング (または並列コンピューティング) は、シリアル コンピューティングに関連しています。並列コンピューティングの目的は、コンピューティング速度を向上させることです。これは実際には、実際のスーパーコンピュータと同等の処理能力を備えたコンピュータ クラスターです。

配布されるもの

分散サービスとは、複数のサーバーを集中して配置することを指し、サービスは異なるマシンに展開されます。各サーバーはシステム全体の中で異なるビジネスを実装し、異なることを行います。サービスは複数の機能を担当する可能性があり、SOA 指向のアーキテクチャです。個別に配備されたパーツは、さまざまな通信プロトコルを介して相互に情報を交換し、各サーバーは不可欠です。サーバーに障害が発生すると、一部の機能が失われたり、システム全体が動作しなくなる可能性があります。

分散存在の主な機能は、効率を大幅に向上させ、サーバーのアクセスとストレージの負荷を軽減することです。違いは、ビジネスが複数のサブビジネスに分割され、異なるサーバーに展開されることです。

たとえば、大規模なシステムを複数のビジネス モジュールに分割し、ビジネス モジュールを異なるマシンに展開し、インターフェイスを介してビジネス モジュール間でデータを交換します。

上の図では、サービス A、B、C、D は、API ゲートウェイを介してアクセスされるビジネス コンポーネントです。

マイクロサービスとは何か

マイクロサービスの概念は分散に似ており、マイクロサービスはアーキテクチャスタイルです。簡単に言えば、マイクロサービスは非常に小さなサービスであり、サービスは 1 つの機能にのみ対応するほど小さいです。各マイクロサービスは 1 つのタスクを完了し、それを適切に完了することに重点を置いており、このサービスは独立してデプロイおよび実行できます。各マイクロサービスは疎結合されており、サービスは RPC を通じて相互に対話できます。各マイクロサービスは、そのライフサイクル全体に責任を持つ独立した小規模チームによって開発、テスト、展開、起動されます。

アーキテクチャ設計を行うときは、最大ユーザー数と同時実行数を見積もった後、単一のアプリケーション サーバーで需要を満たすことができるかどうかを計算します。数百人のユーザーしかいない小規模なアプリケーションの場合は、モノリシック アプリケーションを使用できます。つまり、すべてのアプリケーションが 1 つのアプリケーション サーバーに展開されます。ユーザー数が多く、一部の機能が頻繁にアクセスされる場合、または一部の機能が大量の計算を必要とする場合は、アプリケーションを複数のサブシステムに分割し、それぞれが独自の機能を担当するようにすることをお勧めします。これがマイクロサービス アーキテクチャです。

マイクロサービスは、特定のモジュールのアップグレードやバグがシステム全体の既存のビジネスに影響を与えないように設計されています。マイクロサービスと分散アプリケーションの微妙な違いは、マイクロサービス アプリケーションは必ずしも複数のサーバーに分散する必要はなく、同じサーバー上に配置することもできるという点です。

分散サービスと比較すると、マイクロサービスは粒度が小さく、サービス間の結合度が低くなります。各マイクロサービスは独立した小規模チームによって管理されるため、より俊敏になります。分散サービスは、最終的にはマイクロサービス アーキテクチャへと進化する傾向にあります。しかし、マイクロサービスによってもたらされる課題も明らかです。例えば、サービスの粒度が細かく、数が多く、その後の運用や保守の難易度が増します。

クラスター、分散、マイクロサービス間の類似点、相違点、接続

1. 分散コンピューティングでは、単一のタスクの実行時間を短縮することで効率が向上しますが、クラスター コンピューティングでは、単位時間あたりに実行されるタスクの数を増やすことで効率が向上します。

たとえば、タスクが 10 個のサブタスクで構成され、各サブタスクの実行に 1 時間かかる場合、1 台のサーバーでタスクを実行するには 10 時間かかります。

  • 分散ソリューションが採用され、10 台のサーバーが提供されます。各サーバーは 1 つのサブタスクのみを処理する責任があります。サブタスク間の依存関係は考慮されません。タスクを完了するには 1 時間しかかかりません。 (この動作モードの代表的なものは、Hadoop の Map/Reduce 分散コンピューティング モデルです)
  • クラスター ソリューションでは 10 台のサーバーも提供され、各サーバーは独立してこのタスクを処理できます。 10 個のタスクが同時に到着し、10 台のサーバーが同時に動作し、1 時間後に 10 個のタスクが同時に完了すると想定します。全体として、タスクは 1 時間以内に完了できます。

注: 分散トランザクションには適切なトランザクション管理が必要です。

2. クラスター モードでは、異なるサーバーが外部アクセス用に同じサービス セットを展開して、サービスの負荷分散を実現します。クラスターを区別する方法は、展開された複数のサーバーのサービスが同じかどうかを判断することです。ディストリビューション内の各ノードはクラスターになることができます。クラスターは必ずしも分散されるわけではありません。

たとえば、Sina.com に多くの人がアクセスすると、クラスターが形成される可能性があります。同じ処理を完了するには、応答サーバーを前面に配置し、背後に複数のサーバーを配置します。ビジネス アクセスがある場合、応答サーバーは負荷が最も少ないサーバーを確認し、そのサーバーにタスクをディスパッチして完了させます。

分散は、狭義では、クラスターに似ています。ただし、組織構造を持つクラスターとは異なり、その組織は比較的緩やかです。 1 台のサーバーに障害が発生した場合、他のサーバーが引き継ぐことができます。各分散ノードは異なるサービスを実行します。ノードに障害が発生すると、サービスにアクセスできなくなります。

注: クラスター モードでは、異なるサーバー間の切り替えプロセス中にセッションを取得できなかったためにサービスが終了しないように、適切なセッション共有が必要です。

3. 分散とマイクロサービスの関係

分散型とマイクロサービスのアーキテクチャは非常に似ていますが、展開方法は異なります。

実稼働環境のマイクロサービスは確実に分散方式で展開されますが、分散アプリケーションは必ずしもマイクロサービス アーキテクチャに基づいているわけではありません。たとえば、クラスター展開では同じアプリケーションが異なるサーバーにコピーされますが、論理機能の点では単一のアプリケーションのままです。

4. 開発において分散とクラスタリングを分離できますか?

この問題に関しては、ディストリビューションの導入から、その主な機能はシステムをモジュール化し、システムを分離して将来のメンテナンスと開発を容易にすることであることがわかります。ただし、同時実行の問題を解決することはできず、サーバーがクラッシュした後のシステムの正常な動作を保証することもできません。

クラスターは、分散の欠点を補うだけです。クラスターとは、同じビジネスを処理する複数のサーバーです。これにより、一方ではシステムの同時実行性の問題を解決または改善することができ、他方では、一定数のサーバーがクラッシュした場合でもシステムが正常に動作し続けることが保証されます。

優れた設計とは、分散とクラスタリングを組み合わせたもので、最初に分散、次にクラスタリングを行うものです。具体的な実装としては、ビジネスを多数のサブビジネスに分割し、サブビジネスごとにクラスターを展開します。これにより、いずれかのサブビジネスで問題が発生しても、システム全体にはまったく影響が及ぶことはありません。

したがって、ディストリビューションとクラスターは良き友人のペアであり、どちらか一方が欠けては機能しません。

<<:  効果的なクラウドコンピューティングコスト管理戦略を実装する方法

>>:  アーキテクチャ上の特徴から機能上の欠陥まで、分析分散データベースを再考する

推薦する

cambohost: カンボジア専用サーバー、100M 帯域幅、CN2 ネットワーク、東南アジアに最適

カンボジアの現在のネットワーク規制は比較的緩いので、カンボジアのサーバーを好む人が多くいます。ここで...

外部リンク構築作業を繰り返し精査

最近最も話題になっているのは、百度と360社の間の紛争、最大1億元の賠償請求、そしてその子会社である...

低価格≠高コストパフォーマンス。分散ルーターを購入する際に知っておくべきこと

インターネットで話題となった新しい「分散ルーティング システム」の登場により、WiFi ワイヤレス ...

高級品の電子商取引はますます「フラット化」している:人気のルートを採用

成熟した消費者にとって、品質とデザインは最も重要な考慮事項です。高級品電子商取引は2009年以来、中...

最初のポッドを Kubernetes クラスターにデプロイするにはどうすればよいですか?

[[437979]] [51CTO.com クイック翻訳] Pod は、Kubernetes アプリ...

PR の低下はウェブサイトのコンテンツの質に関係しているのでしょうか?

ある日、偶然 SEO 愛好家を訪ねて、次のような記事を目にしました。「PR の低下は、ウェブサイトの...

kihihosting-$2/kvm/512m メモリ/120g ハードディスク/500g トラフィック/カナダ

kihihosting、ドメイン名は今年 2 月に登録され、レジストラは dreamhost です。...

WordPressテンプレートがSEOへの長い道のりを歩ませる方法

生き物を捕まえられる人が達人と呼ばれるこの時代、フロントエンド言語の基礎知識がなくても、ウェブサイト...

ウェブサイト最適化技術SEOの衰退の理由は、スパイダーだけに注目し、人間の役割を無視していることです。

3年前、SEOと言えば誰もが感心して聞いていました。3年後の今日、SEOは徐々に人々の視界から消えて...

ランキングの裏にあるちょっとした秘密を明かす

科学技術の漸進的な発展に伴い、あらゆる分野の競争、特に企業間の競争はますます激しくなっています。注意...

企業が導入できる優れたクラウドセキュリティソリューションとは

クラウド コンピューティング テクノロジーは急速に発展し続けており、企業はより高速で、より安価で、よ...

雲奇会議では、影のないアーキテクチャを備えたさまざまな革新的な端末ノートブックとARグラスが展示されました。

11月2日の雲奇大会オープンデーでは、アリババクラウドの無影アーキテクチャを搭載した多数の新型端末が...

2013年7月の振り返りとまとめ

8 月初旬にいくつかの変化が起こり、私はこれまでの考察や要約を振り返ることになりました。私の心はまだ...

1日1スキル: 分散システム向けの低コストの権限検証メカニズム

Weiwen Codeをよくフォローしている人は、私がニュースWebページのテキストを自動的に抽出で...