クラウドコンピューティングが急成長を遂げる中、英国のデジタルコンサルティング会社Red Badgerのテクニカルディレクター、Viktor Charypar氏は、VentureBeatで、クラウドサービスは終末を迎えるだろうと書いている。そして、ピアツーピアネットワークが今後の発展方向となるだろうと指摘した。 クラウドは終わりを迎えます。これは大胆な結論であり、少し狂っているように聞こえるかもしれないことは承知しています。しかし、我慢して続けさせてください。 ウェブ アプリケーションであろうとモバイル アプリケーションのバックエンドであろうと、サーバー上で実行されるアプリケーションは将来クラウドに移行するというのが従来の考え方でした。 Amazon、Google、Microsoft は、クラウド サービスにツールを追加し、クラウド サービス内でのソフトウェア サービスの実行をますます容易にしています。したがって、AWS、GCP、または Azure でコードをホストすることが最善の方法です。便利で、安価で、自動化が容易で、スケールを柔軟に制御できます...
では、なぜ私はこれがすべて終わると予測するのでしょうか?理由はいくつかあります。 まず、長期的な拡張要件を満たすことができない クラウドであっても、スケーラブルで信頼性が高く、可用性の高い Web アプリケーションを構築するのは非常に困難な場合があります。良い仕事をしてアプリが大成功を収めたとしても、アプリの規模の大きさによってお金とエネルギーが浪費されてしまいます。たとえビジネスが非常に成功していたとしても、最終的にはクラウド コンピューティングの限界に達します。コンピューターの速度とストレージ容量は、ネットワークの帯域幅よりも速く増加するからです。 ネット中立性の議論を無視すれば、これはおそらくほとんどの人にとっては問題ではないだろう(Netflix と Amazon を除く)が、すぐに問題になるだろう。ビデオ品質が HD から 4K、8K へと進化するにつれて、必要なデータの量は劇的に増加しており、VR データセットがまもなく利用可能になります。 これは主に、Web を構成する方法に起因する問題です。コンテンツを入手したりプログラムを利用したいユーザーは多くいますが、それらのプログラムやコンテンツを備えたサーバーは比較的少ないです。たとえば、Slack で面白い写真を見つけて、隣に座っている 20 人の人と共有したい場合、全員がホスティング サービスのサーバーから写真をダウンロードする必要があり、写真を 20 回送信する必要があります。 Amazon や Google のデータセンター内のコンピューターのように、サーバーがクラウドに移行すると、それらの場所に近いネットワークは、大量のデータを処理するために驚異的なスループットを備える必要があります。さらに、各人や CPU のデータを保存し、ネットワークを通じて必要な人全員にデータを送信するためのハード ドライブが大量に必要です。ストリーミングサービスの台頭により、状況はさらに悪化しました。 こうした活動には大量のエネルギーと冷却が必要となり、システム全体が非効率で高価になり、環境にも優しくありません。 第二に、それは集中していて壊れやすい データとプログラムを集中的に保存する場合のもう 1 つの問題は、可用性と耐久性です。 Amazon のデータセンターが小惑星に衝突したり、竜巻で破壊されたらどうなるでしょうか?あるいは、一定期間電源が落ちたらどうなるでしょうか?同社のマシンに保存されているデータは、アクセスが停止されることも、永久に失われることもなくなりました。 通常、この問題は複数の場所にデータを保存することで軽減されますが、それは単にデータセンターが増えることを意味します。これにより、偶発的な損失のリスクが大幅に軽減される可能性がありますが、本当に重要なデータはどうでしょうか?あなたの結婚式のビデオ、子供の成長の写真、あるいはWikipediaのような重要な公開情報源。現在、この情報はすべて、Facebook、Google Drive、iCloud、Dropbox などのクラウドに保存されています。これらのサービスが運営を停止したり資金を失ったりした場合、あなたのデータはどうなるのでしょうか?たとえその段階に達しなかったとしても、データにアクセスする方法は制限されます。あなたは彼らのサービスを利用する必要があり、友人と共有する場合、彼らもそのサービスを利用する必要があります。 第三に、信頼は必要だが、保証はできない クラウド サービスを使用する場合、友人が受け取るデータはあなたから送信され、信頼できる仲介者を通じて配信されていることを友人に納得させる必要があります。ほとんどの場合、これはうまく機能し、受け入れられますが、私たちが使用する Web サイトとネットワークは、合法的に運営するために登録する必要があり、規制当局はそれらに多くのことを強制する権限を持っています。ほとんどの場合、これは良いことであり、犯罪の解決やウェブからの違法コンテンツの削除に役立てることができますが、この力が悪用されるケースも数多くあります。 ほんの数週間前、スペイン政府はカタルーニャ独立の是非を問う住民投票を阻止するために、投票場所を知らせる情報ウェブサイトをブロックするなど、あらゆる手段を講じた。 第四に、データが攻撃に対してより脆弱になる 高度に集中化されたインターネットの本当に恐ろしい側面は、個人データの集中化です。私たちにサービスを提供している大企業は、私たちに関する膨大なデータを持っています。そのデータには、あなたが何を買うのか、誰に投票するのか、どんな家を買うのか、さらには、何人の子どもを持つのかまで予測できるほどの情報が含まれています。この情報は、クレジットカードやローンを申請したり、自分の名前で家を購入したりするのにも十分です。 そして、あなたも同意するかもしれません。結局のところ、あなたが彼らのサービスを選択し、彼らを信頼することしかできないのです。しかし、これは心配する必要のあることではありません。あなたが心配する必要があるのは他の人々です。今年初め、信用調査会社エキファックスは、史上最大規模のデータ侵害により、1億4000万人の顧客データを失った。これらのデータは現在公開されています。これは、もっと注意していれば避けられたであろう10年に一度の出来事と考えることができますが、このようなデータ侵害を完全に避けることは難しいことがますます明らかになっています。そして、一度それが起こると、許容できないほど危険になります。このようなことが再び起こるのを本当に防ぐ唯一の方法は、そもそもそのような大量のデータを収集しないことです。 では、クラウドに代わるものは何でしょうか? インターネットは、主にクライアント サーバー プロトコル (HTTP など) と中央機関への信頼に基づくセキュリティ (TLS など) によって実現されていますが、欠陥があり、解決が困難または不可能な問題を引き起こします。今こそ、もっと良いものを探す時です。つまり、個人データを他人が一切保存せず、大きなメディア ファイルがネットワーク全体に分散され、システム全体が完全にピアツーピアでサーバーレス (クラウド ホスト型という意味での「サーバーレス」ではなく、文字通りサーバーがないという意味です) であるモデル フレームワークです。 私はこの分野で多くの文献を読んできましたが、ピアツーピアが私たちの将来の発展の必然的な方向であると確信するようになりました。ピアツーピア ネットワーキング テクノロジーは、私たちが知っている Web の構成要素を、上で述べた問題のほとんどを解決するプロトコルとポリシーに置き換えることです。目標は、ネットワークに参加しているすべてのユーザーが利用可能なデータの一部のコピーを保存する、完全に分散された永続的な冗長データ ストレージです。 BitTorrent について聞いたことがあるなら、これは聞き覚えがあるはずです。 BitTorrent では、ネットワーク ユーザーは中央機関からの承認を必要とせずに、大きなデータ ファイルを小さなチャンクまたはフラグメント (各チャンクには一意の ID があります) に分割できます。ファイルをダウンロードするには、コンテンツの指紋である「マジック」ナンバー、つまりハッシュだけが必要です。次に、BitTorrent クライアントは「コンテンツ フィンガープリント」を使用して、ファイル フラグメントを持つユーザーを検索し、すべてのフラグメントが取得されるまで、それらのユーザーからファイル フラグメントを 1 つずつダウンロードします。 興味深いのは、ユーザーをどうマッチングさせるかという点です。 BitTorrent は Kademlia と呼ばれるプロトコルを使用します。 Kademlia では、ネットワーク上の各ピアには、一意のブロック ID と同じ長さの一意の ID 番号があります。特定の ID を持つブロックは、そのブロックの ID に「最も近い」 ID を持つノードに保存されます。ネットワーク全体にわたって保存されるネットワーク ピアのブロックとランダム ID の分布は、かなり一貫している必要があります。ただし、ブロック ID をランダムに選択する必要がなく、代わりに暗号化ハッシュ (ブロック自体の内容の一意の指紋) を使用するという利点があります。これらのブロックはアドレス可能であることが保証されています。これにより、ブロックの内容の検証も容易になり(フィンガープリントを再計算して比較することにより)、ユーザーがオリジナル以外のデータをダウンロードすることが不可能になります。 もう 1 つの興味深い機能は、1 つのブロックの ID を別のブロックのコンテンツに埋め込むことで、改ざんできない方法で 2 つのブロックをリンクできることです。リンクされたブロックの内容が変更されると、その ID が変更され、リンクが切断されます。埋め込まれたリンクが変更されると、それを含むブロックの ID も変更されます。 あるブロックの ID を別のブロックに埋め込むこのメカニズムにより、ビットコインやその他の暗号通貨を動かすブロックチェーンや、さらに複雑な構造 (一般に有向非巡回グラフ、略して DAG と呼ばれる) を作成できるようになります。 (これらは、発明者である Ralph Merkle にちなんで「Merkle リンク」と呼ばれることがよくあります。そのため、誰かが Merkle DAG について話しているのを聞いた場合、おそらく何について話しているのかがわかるでしょう。) Merkle DAG の一般的な例は、Git リポジトリです。 Git はコミット履歴とすべてのディレクトリおよびファイルを巨大な Merkle DAG に保存します。 これにより、コンテンツ アドレス指定分散ストレージのもう 1 つの興味深い特性、つまり不変という特性が生まれます。内容は変更できません。代わりに、新しいリビジョンは既存のリビジョンの隣に保存されます。リビジョン間で変更されていないチャンクは、定義上、同じ ID を持つため、再利用されます。これは、同じファイルがそのようなストレージ システム内で複製できないことを意味し、効率的なストレージにつながります。したがって、この新しいネットワークでは、それぞれのユニークな面白い写真は 1 つだけ存在します (ただし、集団全体には複数のコピーがあります)。 Kademlia、Merkle チェーン、Merkle DAG などのプロトコルは、ファイル階層とリビジョン タイムラインをモデル化し、大規模な P2P ネットワーク全体で共有するためのツールを提供します。これらのテクノロジーを使用して、ニーズに合った分散ストレージを構築するプロトコルがすでにいくつか存在します。有望なのは IPFS です。 名前と共有の問題 さて、このテクノロジーをすべて活用すれば、冒頭で挙げた問題のいくつかは解決できます。つまり、ネットワークに接続されたデバイス上に分散された、冗長性の高いストレージを構築し、ファイルの履歴を記録して、必要な限りすべてのバージョンを保持できるようになります。これにより、可用性、容量、永続性、およびコンテンツ検証の問題が (ほぼ) 解決されます。また、帯域幅の問題も解決します。データがポイントツーポイントで送信されるため、サーバーが過負荷になる状況は発生しません。 スケーラブルなコンピューティング リソースも必要ですが、これは難しいことではありません。最近のラップトップやスマートフォンは、ほとんどのアプリケーション (かなり複雑な機械学習の計算を含む) が必要とする以上の性能を備えており、コンピューティングは一般的にスケーラブルです。したがって、各デバイスがユーザーに必要な作業を実行できる限り、大きな問題は発生しません。 つまり、Slack で見る面白い写真は、Slack のサーバーからではなく、隣に座っている同僚からのものになるということです (その過程で「海」を渡る必要はありません)。ただし、面白い写真を投稿するには、チャネルを更新する必要があります (つまり、チャネルはメッセージを送信する前の状態ではなく、変更されます)。これは非常に単純に聞こえますが、システム全体の中で最も難しい部分です。 最も難しい部分:リアルタイム更新 実体が時間とともに変化するという概念は、実際には、私たちの心の中に世界に秩序と安定の感覚を与える単なる人間の考えです。このようなエンティティは、時間の経過とともに一連の異なる値(静的で変更不可能)をとるアイデンティティまたは名前と考えることもできます。 (Rich Hickey 氏が講演で非常にわかりやすく説明しています。こちらでご覧ください)。コンピューター内で情報をシミュレートすることはより自然なアプローチであり、より自然な結果を生み出します。私があなたに何かを言ったら、私が言ったことを決して変えることはできませんし、あなたにそれを忘れさせることもできません。たとえば、アメリカ合衆国大統領が誰であるかは、時間の経過とともに変化しません。それは単に、同じ性質(アイデンティティと名前)の他の事実(人々)に置き換えられます。 Git の例では、ref (ブランチまたはタグ) は、異なる時点の異なるコミット (ID と値を保持) を指すことができ、コミットによって現在保持されている値が置き換えられます。 Slack チャンネルはアイデンティティも表しており、その価値は時間の経過とともに高まります。 本当の問題は、アクセスできるのは私たちだけではないということです。多くの人がメッセージを投稿したり、チャネルを変更したりしようとしており、時には同時に行われ、誰かが結果をどうするかを決定する必要があります。 現在の Web アプリケーションのほとんどは集中型システムですが、この結果を決定し、イベントをシリアル化する中央エンティティが存在します。しかし、分散システムでは誰もが平等であるため、ネットワーク上で合意に達することができるようにするためのメカニズムが必要です。 真に分散された Web が解決するのが最も難しい問題は、現在使用しているすべてのアプリケーションが抱えている問題です。これは同時更新に影響するだけでなく、「リアルタイム」で更新する必要がある他の更新にも影響します。つまり、「唯一の真実のソース」は時間の経過とともに変化します。この問題はデータベースにとって特に困難ですが、DNS などの他の重要なサービスにも影響を与える可能性があります。特定のブロック ID または ID の範囲に分散的に個人の名前を登録するということは、既存の名前が特定の意味を持つことにすべての参加者が同意する必要があることを意味します。そうしないと、2 人の異なるユーザーが同じ名前で 2 つの異なるファイルを表示できることになります。コンテンツベースのアドレス指定は、マシンの問題は解決しますが (名前は 1 つの特定の一致するコンテンツのみを参照できることを覚えておいてください)、人間にとっては解決しません。 分散コンセンサスに対処するための主な戦略はいくつかあります。問題の 1 つは、真実を決定する「リーダー」を選出するメカニズムを備えた、比較的小規模な管理者の「グループ」を選択することです (興味がある場合は、Paxos および Raft プロトコルを調べてください)。すべての変更はこれらのマネージャーを経由します。これは本質的に、中央の意思決定主体の喪失やネットワークの停止(「パーティション」)を補う集中型システムです。 もう 1 つのアプローチは、ビットコイン ブロックチェーンのようなプルーフ オブ ステーク システムです。このシステムでは、ユーザーに「パズル」を解かせて更新を書き込む (たとえば、有効なブロックを Merkle チェーンに追加する) ことでコンセンサスが達成されます。この「パズル」は解くのが難しいですが、確認するのは簡単です。それでも競合が存在する場合は、解決するために追加のルールが必要になります。他のいくつかの分散型ブロックチェーンでは、問題を解決するのに必要なエネルギー要件を削減しながら、プルーフ・オブ・ステークのコンセンサスを使用しています。ご興味があれば、この BitFury のホワイト ペーパーで関連する証拠をお読みください。 特定の問題に対する別のアプローチは、競合のない複製されたデータ型である CRDT を中心に展開され、特定のケースではコンセンサスの問題がまったく発生しません。最も単純な例は、増分カウンターです。すべての更新が単に「行を追加する」だけの場合、各更新が 1 回だけ適用されるようにすれば、順序は関係なく、結果は同じになります。 この質問に対する明確な答えは一つもないようですし、おそらく今後もないと思われますが、多くの賢い人々がこの質問に取り組んでおり、すでに多くの興味深い解決策の選択肢があります。重さを量ることしかできません。トレードオフは通常、「ターゲット」とするグループのサイズと、可用性と一貫性(または技術的にはネットワーク分割ですが、ここで議論しているような高度に分散されたシステムでは回避が難しいようです)のどちらのコンセンサス特性を放棄するかを選択することで現れます。ほとんどのアプリケーションでは、状態が妥当な時間内に一貫している限り、即時の一貫性よりも可用性を優先するようです。 パブリックファイルネットワークにおけるプライバシーの問題 対処する必要がある明らかな問題の一つはプライバシーの問題です。つまり、コンテンツを非公開にせずに分散クラスターに保存するにはどうすればよいでしょうか?何かを隠すことができる場合、コンテンツ アドレス ストレージは適切な選択です。何かを見つけるには、そのコンテンツのハッシュを知る必要があるためです。つまり、プライバシーには基本的に、公開、非表示、プライベートの 3 つのレベルがあります。 3 番目の質問に対する答えは暗号化にあるようです。つまり、保存されたコンテンツの強力な暗号化と、「外部」共有キーの必要性 (たとえば、紙での共有、NFC デバイスでの送信、QR コードのスキャンなど) です。 暗号化に頼るのは、最初は危険に思えるかもしれません (結局のところ、ハッカーは常に抜け穴を見つけます) が、実際には、今日私たちが行っていることよりも悪くはありません。実際のところ、これは実践上より良いかもしれません。企業や政府は、機密データ(データに関連する個人を含む)を一般に公開できない方法で保存することがよくあります。代わりに、データを所有する組織に雇用されている少数の従業員だけがアクセス権を持ち、少なくともパスワードに関しては保護されます。通常、このデータが保存されているシステムにアクセスできる場合は、すべてのデータを取得できます。 しかし、プライベートなデータを本質的に公開された方法で保存するようになる場合、それを保護する必要があり(強力な暗号化を使用して)、アクセスした人にとって不利になります。この考え方は、セキュリティ関連ソフトウェアの開発者がコードをオープンソース化して誰でも確認し、問題を見つけられるようにする理由と同じです。セキュリティ システムの仕組みを知っていても、それを破るのに役立つわけではありません。 このアクセス制御の興味深い特性は、あるデータへのアクセスを一度誰かに許可すると、その人はそれを永久に変更できるということです。もちろん、暗号化キーはいつでも変更できます。これは、今日私たちが直面している状況よりも悪くはありませんが、明らかではないかもしれません。つまり、一部のデータにアクセスできる人なら誰でもそれをコピーできるのです。 この分野における興味深い課題は、時間の経過とともにアイデンティティが変化する可能性のある人々のグループ間で、アイデンティティを検証し、個人データを共有するための優れたシステムを構築することです。たとえば、プライベート Git リポジトリで作業している共同作業者のグループがあるとします。これは、秘密鍵暗号化とキーのローテーションを組み合わせれば間違いなく可能ですが、ユーザーにとってスムーズなエクスペリエンスを実現するのは難しい場合があります。 雲から霧へ 解決すべき課題はいくつかありますが、クラウド コンピューティングから離れていくにつれて、将来は非常にエキサイティングなものになるでしょう。まず、技術面では、ピアツーピア ネットワークにかなりの改良が見られるはずです。コンテンツ アドレス指定可能なストレージは、信頼できる機関なしでコンテンツ自体の暗号化検証を提供し、それを永久にホストすることができます (誰かが興味を持っている限り)。また、データ センターから遠く離れた発展途上国の端 (または別の惑星) でも、速度が大幅に向上するはずです。 ある時点で、データセンターさえも歴史になるかもしれません。消費者向けデバイスは非常に強力かつ普及しており、コンピューティング能力とストレージスペースはほぼどこでも利用できます。 Web アプリケーションを実行している企業にとって、この変更は大きなコスト削減につながります。企業はダウンタイムのリスクに重点を置く必要がなくなり、顧客価値の向上に重点を置くことができるため、すべての人に利益がもたらされます。クラウド ホスティング サーバーは依然として必要ですが、それは数あるサーバーのうちの 1 つにすぎません。また、すべてのアプリが同じように作成されるのではなく、より多様なアプリケーションが登場する可能性もあります。同じアプリでも、消費者向けの部分とバックエンドの部分があり、違いはアクセス権限のみになります。
企業と顧客にとってのもう 1 つの大きなメリットは、顧客データがどうなるかということです。大量の顧客情報を一元的に保存する必要がなくなると、そのデータが失われるリスクが軽減されます。ソフトウェア エンジニアリングのリーダー (Erlang の作者 Joe Armstrong 氏など。彼の講演は見る価値があります) は、顧客がインターネット経由で企業のプログラムにデータを送信する設計は劣化であり、企業は直接共有されないプライベート データを実行できるプログラムを顧客に送信すべきであると長い間主張してきました。このモデルはより安全であるように思われ、企業が必要な有用なユーザー メトリックの収集を妨げることはありません。 さらに、現在のところ、不透明でプライベートなデータを保持するハイブリッド サービス モデルを阻止するものは何もありません。 このタイプのアプリケーション アーキテクチャは、大規模なコンピューティングおよびソフトウェア サービスを提供するより自然な方法のように思えます。また、サーバーを所有する民間組織によって制御されるのではなく、誰でも簡単にコンテンツを他の人に転送し、公開およびアクセスできるものを制御できるオープンな情報交換の考え方に近いものです。 私にとって、これはとても興奮する出来事です。そのため、私は小さなチームを編成し、数週間で上記のテクノロジーのいくつかを使用してシンプルなモバイル アプリを構築し、概念を証明し、ピアツーピア ネットワークで何ができるかを示したいと考えました。私が現在持っているアイデアの中で、比較的迅速に構築できるほど小さく、このアプローチの特性を実証できるほど興味深いものは、ピアツーピアで完全にサーバーレスな Twitter のクローンだけですが、これは特に面白いものではありません。 |
<<: Aiti Tribe ライブ クラスの第 4 回目: H5 Web サイトをアプリにすばやく変換する方法は?
>>: 従来のコールセンターはボトルネックに頻繁に直面しており、ハイブリッドクラウドソリューションが未来のソリューションです。
1. タイトルにキーワードが含まれている2. 画像にキーワードが含まれている3. サイト全体がキーワ...
最近、多くの人が私に奇妙な質問をします。たとえば、「キーワードは一般的に記事に何回出現できますか、キ...
ramnode は 2009 年に設立された VPS プロバイダーですが、すでによく知られています。...
virpus さん、今年のブラックフライデーとサイバーマンデーは完璧に逃してしまいましたが、なぜか突...
3月27日、北京でSmartisan ROMの発表会が開催され、創設者のLuo Yonghao氏が主...
この記事が公開された後、一部の読者から javaagent の「非侵入性」についてコメントがありまし...
数年にわたる実装を経て、クラウドネイティブのコンセプトはエンタープライズ市場で広く認知され、エンター...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス現在 SEO の注文を受...
Baidu の最近の動きは、歴史上最大規模のものと言えるでしょう。多くのウェブマスターが深刻な被害を...
インターサーバー(1999年~)は、米国ニューヨークのデータセンターでストレージスペースサービスを提...
今日の話題はとてもシンプルです。問題に直面したとき、私たちは最も重要なことを選ぶべきでしょうか、それ...
文化部は文化市場の知的財産権保護に注力するため、最近、地方の文化行政部門と文化市場の総合的な法執行機...
Baidu Experienceにnofollow現象が現れて以来、多くのウェブマスターはショックを...
DDOS 防御で有名な老舗ホスティング会社 Sharktech には、特別なプロモーション サーバー...
10月20日、百度が大規模なソーシャルリクルーティングを停止するという社内メールが回覧された。百度の...