Vercelは、常駐バックグラウンドワーカーを実行する新サービス「Daemons」を発表した。これは、フロントエンドやリクエストに関連する関数をホスティングするプラットフォームの役割を、アプリケーションのバックエンド基盤のより多くの部分を実行するものへと拡張する動きだ。同サービスは現在パブリックベータ版で提供されており、開発者はコンテナを実行し、各リージョンで必要なレプリカ数を指定できる。Vercelはプロセスの稼働を維持し、停止またはクラッシュした場合には再起動する。
Daemonsは、インターネットからの受信リクエストを待つのではなく、キューやデータベースからタスクを取得する負荷を対象とする。これには、非同期処理、メディア変換タスク、CPUを継続的に必要とする処理などが含まれる。Vercelの最高技術責任者であるMalte Ublによると、このサービスは、リクエストに関連する処理と常駐バックグラウンドタスクの間にあった欠けていた部分に相当する。
Daemonsは開発者に何をもたらすのか?
ワーカーはGitまたはVercel CLIを使ってデプロイできる。VercelはコンテナイメージをビルドしてContainer Registryに保存し、その後、各リージョンで指定されたレプリカを管理する。同社によると、実用的な構成として、Next.jsで構築したフロントエンド、PythonのAPI、コンテナ内で動作する動画処理ツールを組み合わせ、処理ツールがVercel Queuesからタスクを取得して再生用ファイルやサムネイルを生成することができる。
Daemonsは一時的な実行を目的とするSandboxesとは異なる。Sandboxesが一時的な実行向けであるのに対し、Daemonsは稼働し続け、インターネットから直接リクエストを受け付けるのではなく、作業元に接続してタスクが利用可能になると実行する。Vercel自身もこのサービスを利用して非同期負荷の一部を移行している。同社によると、同社のコントロールパネルは月間約10億件のリクエストを処理している。
コンテナとマネージドランタイムの比較
VercelはDaemonsを、コンテナサポートの拡張の一環として位置付けている。同社によると、コンテナサポートがパブリックベータに入って以来、5,000チームが150,000回のコンテナデプロイを実行した。コンテナにより、開発者は独自のランタイム環境やシステムライブラリを組み込む自由を得られるが、コンテナイメージのセキュリティ更新と再デプロイは引き続き顧客の責任となる。
これに対してVercelは、Node、Bun、Python向けのマネージドランタイム環境におけるセキュリティ更新を、顧客が再デプロイする必要なく実施する。つまり、コンテナを選択することは柔軟性だけに関わるものではなく、チームが考慮すべき追加の運用負担も伴う。
Pythonのサポートとエージェント向けの永続ストレージ
Pythonのサポートは、FastAPI、Flask、Djangoなどのフレームワークで一般提供となった。アプリケーションは標準のCPython上でPyPIの依存関係を利用して動作し、Vercelがフレームワークの検出、ビルド、スケーリングを担う。同社によると、すでに150,000チームが同プラットフォーム上でPythonバックエンドを実行しており、その中にはOpenAI、Polymarket、Exaのエンジニアも含まれる。
Vercelはまた、永続ストレージであるDrivesを一般提供した。これは、AIエージェントのファイルをコードを実行するSandbox環境から分離するものだ。エージェントは新しいSandboxにDriveをマウントしたり、ランタイム環境を変更したりしながら、同じファイル上で作業を継続できる。Vercelによると、このサービスはEBSに似たネットワークドライブの特性とオブジェクトストレージを組み合わせている。
この拡張が重要な理由
Drivesは、エージェントにとって重要なファイルを実行環境から独立させるモデルを推進する。複数のエージェントがデータセットの読み取り専用コピーを使用したり、異なる手法をテストするために書き込み可能な分岐コピーを作成したりでき、各ブランチは元のデータから分離された状態を保てる。同サービスはデフォルトで1テラバイト、またはHobbyプランでは1ギガバイトの容量を提供し、最大16テラバイトまで設定できる。
実際には、これらの追加機能により、フロントエンドをVercelでホスティングしているチームは、Pythonサービス、バックグラウンドワーカー、永続ストレージを、別々のデプロイシステムを管理する代わりに、同じプラットフォーム内に置く選択肢を得られる。ただし、トレードオフがなくなるわけではない。コンテナでは顧客がセキュリティ更新を追跡する必要があり、Daemonsも、作業元からの取得を基盤とする継続的な負荷には適しているが、あらゆる種類のバックエンドサービスやあらゆる処理パターンに適しているわけではない。
ニュースの出典
The New Stack - Software Development
原文を開く ↗