web-dev-qa-db-ja.com

クラウドコンピューティングと分散コンピューティングの違いは?

クラウドコンピューティングと分散コンピューティングの違いについて知りたいと思いました。クラウドコンピューティングに関する記事を読んで、クラウドコンピューティングと分散コンピューティングの間に関係があると感じたため、テクノロジーの違いについて質問したいと思いました。

また、誰かがクラウドコンピューティングに役立つリソースを教えてくれたら、とてもありがたいです。

ありがとう

59
Rachel

クラウドコンピューティングを定義しているのは、クラウドベースのサービスとソフトウェアの基盤となるコンピューティングリソース(ストレージ、プロセッサ、RAM、ロードバランサーなど)が、ソフトウェア/サービスのコンシューマから完全に抽象化されていることです。これは、クラウドベースのリソースのベンダーがコンピューティング環境のパフォーマンス/信頼性/スケーラビリティに責任を負っていることを意味します。

アプリケーション開発者の観点から見ると、これは非常に大きな利点です。ハードウェアの調達、保守、チューニング、監視、および拡張の要求を満たすためのスケーリングは困難であり、費用もかかるためです。

小規模なISVの場合、クラウドコンピューティングは、資本投資なしでソフトウェアのプロトタイプ作成、テスト、展開を行う機能を提供します。

大規模なアプリケーションの場合、一般に無制限のスケーラビリティと、IT /アプリケーションホスティングの責任のアウトソーシングに加えて、新しいサーバー/ストレージ/オンデマンドへの即時アクセスが得られます。多くの場合、クラウドプロバイダーは、最大規模の社内ITショップ以外のすべてのレベルの冗長性、信頼性、さらにはセキュリティを提供しますが、そのすべてのコストを達成することはできません。

アプリケーション開発者にとっての主な欠点は、コントロールの喪失です。ハードウェアはクラウド環境で外部的にホストされるだけでなく、抽象化されているため、アプリケーションがハードウェアを直接制御する必要がある場合は運が悪いです。そして、クラウドプロバイダーを信頼する必要があります。それらはすべて99.9%の繰り返し時間とSLAを提供しますが、これらの統計が実際に実現されているとは思えません。しかし、あなたは自問する必要があります、私はもっと良くできますか?多くの場合、答えはノーです。ただし、制御が失われるのはハードウェアの制御だけではありません。クラウドベースのシステムとの統合は、明らかな理由により、オンプレミスまたは自己管理ソフトウェアよりも困難になる可能性があります。ただし、新しいテクノロジーと堅牢なAPIにより、LAN/WANの外部でアプリケーションを実行するときに生じる多くの統合の問題が解消されるため、この障害は解消されつつあるように思えます。

別の欠点はパフォーマンスです。ローカルLANでアプリケーションを実行すると、おそらくクラウドから実行するよりもローカルユーザーにややきび​​しいエクスペリエンスが提供されます。ただし、オーディエンスが分散している場合、そのメリットはアプリケーションのオーディエンスのサブセットにのみ適用される場合があります。

分散コンピューティングは、すでに何度か言われているように、2台以上のコンピューター間で調整されたコンピューティングです。クラウドコンピューティングは、定義上、分散コンピューティングですが、特殊な形式です。

こちらはニースのホワイトペーパーです David Chappell著。これはMicrosoftがスポンサーとなった論文であるため、Microsoftのクラウドプラットフォーム(Azure)の観点から提示されていますが、基本原則は非常に普遍的であり、David Chappellは常に非常に読みやすくなっています。

55
Nathan

まず、重要な金融サービスを100%クラウドベースの環境で実行していると言ってみましょう。

クラウドコンピューティングは、それほど明確に定義されていません(バズワードと同様に、誰もが何らかの形で既存の製品に最新のバズワードをブランド化したいと考えています)。

クラウドコンピューティングの鍵は、コンピューティングリソース(CPU、メモリなど)を資本ではなく商品のように見られることです。

どういう意味ですか?

従来、組織にコンピューティングパワーを追加したい場合は、外出してコンピューターを追加購入し、セットアップし、保守する必要があります。クラウドコンピューティング(Eric J.の定義)を使用すると、必要なときに正確に追加のコンピューティングパワーを取得し、不要なときに解放できます。消費税計算サービスを提供しています。クリスマスまでの間に、1年の他の時期よりもはるかに多くの計算能力が必要です。クラウド環境では、リソースを数秒で追加し、必要のないときにすぐにリソースを解放できます。大手顧客の1人が1時間のメガセールスを持っていることがあります。その時間だけに余分な処理能力を追加し、完了したら解放します。

そのクラウドコンピューティングインフラストラクチャ上で提供するソリューションは、Software-as-a-Service(SaaS)です。私の見解では、GMailのようなものはクラウドコンピューティングではなく、SaaSです。

では、これらすべてが分散コンピューティングと比較してどうでしょうか?

分散コンピューティングとは、問題を分割することを意味します。そのため、多数のコンピューターを同時に動作させることができます。 Berkeley Universityの [〜#〜] boinc [〜#〜] プロジェクトは、この優れた例です(サインアップを検討してください)。彼らは、ボランティアが提供するすべてのコンピューターに科学研究プロジェクトを配布しています。

BOINCやその他の分散プロジェクトに関与するコンピューターは、人々のラップトップ、デスクトップ、サーバーになります。私のオフィス、ISPからリースされた仮想サーバー、または「クラウド」の一部である仮想サーバーにインストールできます。コンピューターがどこから来たのかは重要ではありません。分散コンピューティングソフトウェアをコンピューターにインストールできる場合、それは分散ソリューションの一部になります。

24
Eric J.

分散コンピューティングでは、大きな問題を小さなスライスに分割し、複数のネットワーク化されたコンピューターでスライスを処理します。

クラウドコンピューティングとは、通常、インターネット経由でサービスを提供することを指します。そのサービスは、Web経由でアクセスされるビジネスソフトウェアから、オフサイトのストレージやコンピューティングリソースまで、ほとんど何でもかまいません。

編集:私の下のポスターが指摘しているように、それは一般にそれらのサービスのマーケティング用語です。

14
John D.

分散コンピューティングは、タスクの解決/計算に複数のコンピューターが参加する場所です。 Folding @ Home のように。

クラウドコンピューティング は、インターネットサービスにデータ(ドキュメント、写真など)を保持することです。 GMailとGoogle Docsは一種のクラウドコンピューティングを形成していると思います。

7
Skurmedel

クラウドコンピューティング という用語は マーケティング用語 になり、ほとんどすべてを表すようになったことに留意してください。コーダーにとって、この用語は、名前と値のペアを保存および取得する分散型の方法を指します。注目すべき例には、 BigTableGoogle App Engine からアクセスする可能性が最も高い)と EC2 があります。

6
Glenn