※この記事は The Internet Computer: A blockchain that offers stateful decentralized serverless computing の内容を引用しています
ブロックチェーン プラットフォーム上でサーバーレス コンピューティングは可能でしょうか? 以下では、インターネット コンピューター(ICP)が既存のクラウド プロバイダーに匹敵するサーバーレス コンピューティングを提供し、さらに分散化とステートフルネスの利点も備えていることが示されています。
サーバーレスはクラウド コンピューティングの世界に旋風を巻き起こし、過去数年間で大きな成長を遂げ、将来的には非常に明るい見通しが立てられています。最近の予測によると、市場は 2028 年までに年平均 20% 以上の成長率で成長すると予想されています。基本的に、サーバーレス アーキテクチャは、IT 自動化ソフトウェアを通じてクラウドベースのテクノロジーの可能性を最大限に引き出し、企業が IT インフラストラクチャ管理に時間とリソースを費やすのではなく、成長を促進できるようにします。
これは非常に有望に思えますが、サーバーレス クラウド プラットフォームは依然としてステートレスで集中化されています。したがって、アプリケーションは、状態を保存し、ベンダー ロックインの対象にならないようにするために、この欠点を回避する必要があります。インターネット コンピューターは、分散化によって、セキュリティ、制御、および信頼の別のレイヤーを提供します。分散化により、ハードウェアまたはソフトウェアを 1 つの当事者が制御することはありません。さらに、インターネット コンピューターは、設計上、ステートフルに動作します。
この記事では、インターネット コンピュータ ブロックチェーンが、分散化とステートフルネスという 2 つの重要な追加の利点を備えたサーバーレス コンピューティング機能をどのように提供するかについて説明します。
サーバーレスとは何ですか?
---
サーバーレスは、基盤となるインフラストラクチャを気にすることなく、迅速かつ機敏な開発サイクルを可能にする新しいクラウド コンピューティング パラダイムです。適切な仮想マシンのプロビジョニングとスケーリング、ソフトウェアとフレームワークのインストールと保守により、全体的な運用コストを削減します。サーバーレスにはいくつかの形態がありますが、私たちのケースで最も関連しているのは、大規模なコードベースが小さな関数に分割され、非常に短い時間 (数ミリ秒から数分) 実行される Function-as-a-Service (FaaS) です。関数は使用ごとに課金され (つまり、実行時間に基づいて)、さらに呼び出しごとに固定料金が加算されます。最後に挙げる重要な機能は、優れたスケーリング機能です。これにより、短時間で同じ関数のインスタンスを最大数千個起動できます。
サーバーレスプラットフォームとしてのインターネットコンピュータ
---
Internet Computer のアーキテクチャをざっと見てみると、サーバーレス機能に加えてさらに多くの利点があることにすぐに気付くでしょう。現在、FaaS 関数はコンテナーとして、または単純にコード (Python、Javascript、Java、Rust など) としてパッケージ化されており、外部ユーザーまたは他の関数から直接呼び出すことができる単一のエンドポイントを提供しています。Internet Computer 上のキャニスター スマート コントラクトは、Rust、Motoko、JavaScript、Python など、いくつかの言語でプログラムすることもでき、キャニスターごとに異なる機能を提供できる複数のエンドポイントを公開できます。以下の表は、主要なサーバーレス機能とそれらの Internet Computer 対応、およびブロックチェーンがクラウドベースのサーバーレスに対して持つ利点をまとめたものです。
表からわかるように、インターネット コンピュータはサーバーレス環境のすべての要件を満たしています。開発者は知らないかもしれませんが、彼らはすでにサーバーレス コードを実行しており、当社の調査によると、従来のクラウド ベンダーが提供するのとほぼ同じ効率で実行しています。また、特定のディメンション (メモリなど) では、インターネット コンピュータは従来のクラウド ベンダーが提供するパワーを上回っています。ただし、開発者向けの最も重要な機能は、ステートフル性と分散化であり、どちらも従来のサーバーレス クラウドでは提供されていません。
表 2 ~ 3 では、技術に詳しい読者の皆様に、インターネット コンピュータを競争力のあるサーバーレス プラットフォームにするための技術的な側面についてさらに詳しくご紹介しています。ここで注目すべき重要な点は、インターネット コンピュータには、更新モードとクエリモードという 2 種類のスマート コントラクト実行モードがあることです。前者はステートフル呼び出しを表し、後者は一般的なサーバーレス コンピューティングと同様にステートレスです。
関数実行後の状態保持は、サーバーレス/FaaS の世界で長い間求められてきた機能です。これは、現在のクラウドで提供されているシームレスなファンアウト型のスケーラビリティと一般的に競合するため、実装が非常に困難です。幸いなことに、インターネット コンピュータは最初からステートフル性を念頭に置いて設計されており、外部のストレージ層やデータベースにデータを保存するなどの手動介入なしに開発者にこの機能を提供します。したがって、すべての変数またはデータは、インターネット コンピュータでのスマート コントラクトの呼び出し後に自動的に保持されます。
分散化は、見落とされがちなもう 1 つの重要な機能です。最新のサーバーレス サービスは現在、いくつかの大規模な集中型クラウドによって提供されており、ベンダー ロックインにつながっています。この場合、開発者のコードとデータはプロバイダーのセキュリティと同程度に保護され、地理的な停止やベンダー ポリシーの変更の影響を受けます。インターネット コンピューターは完全に分散化されており、ノード マシンはさまざまな地域で動作し、強力なコンセンサス保証の下で実行され、ビザンチン (悪意のある) 障害さえも許容します。
インターネットコンピュータと従来のサーバーレスプラットフォーム
---
インターネット コンピュータ ブロックチェーンがサーバーレス クラウドと比べてどうなのかを評価するために、インターネット コンピュータと上位 3 つのサーバーレス プラットフォームの 1 つで素数を計算する CPU 集中型ベンチマークを実行しました。入力が小さい場合、インターネット コンピュータは従来のサーバーレスよりも高速ですが、入力が大きい場合は半分の速度です (下の図の結果を参照)。これは非常に心強い結果です。これは、まだ道のりは長いものの、従来の集中型クラウドと比較した場合、インターネット コンピュータがパフォーマンスの面で勢いを増していることを示しています。詳細については、権威あるUSENIX ATCカンファレンスで発表された最近の査読済み記事をご覧ください。
パフォーマンスの向上
---
分散化やステートフルネスなどの追加の組み込み機能は、大規模なワークロードに対するインターネット コンピューターのパフォーマンスを低下させる原因となります (図 2 を参照)。これらの機能は非常に強力で重要ですが、実際のパフォーマンスも低下させます。
DFINITY のエンジニアと研究者は、インターネット コンピュータのパフォーマンスを向上および改善する方法を引き続き模索していきます。改善できる領域としては、並列処理を増やすことや、現在のストレージ層をログ構造のマージ ツリー アプローチに置き換えてチェックポイント作成時間を改善することが挙げられます。
複合クエリのパワーを最大限に引き出して、より複雑なアプリケーションを実現すると、パフォーマンスにもプラスの影響がもたらされます。複合クエリの作業はすでに開始されており、dapp の水平スケーリングを可能にし、クライアント側のコードを簡素化しています。サブネット間のクエリ呼び出しと複製実行を可能にするためのさらなるエンジニアリングが進行中です。
参考:
Comments