Cloudflare、Vite向けのオープンソース開発・デプロイ基盤「Void」を公開
出典: developers.cloudflare.com

Cloudflareは、Viteを使ったフルスタックアプリの開発からデプロイまでを一つの流れにまとめる「Void」をオープンソース化しました。チームがCloudflare上の共有環境へアプリを公開できる「Void Platform」、開発用の「Void SDK」、リソースの準備とデプロイを担う「Void CLI」で構成されます。

Voidを構成する3つの製品

Void SDKは、Viteを使ってサーバー側とクライアント側を一緒に開発し、データベースから画面まで型情報を引き継ぐためのJavaScript SDKです。Void CLIは、SDKで構築したアプリに必要なCloudflareのリソースを用意し、Void Platformへデプロイします。

Void Platformは、チームや顧客がアプリを公開するための共有基盤です。利用者ごとにCloudflareアカウントを用意する代わりに、チームのCloudflareアカウント上でWorkers for Platformsを使って環境を提供します。

3製品は単一のJavaScriptパッケージとViteプラグインとして公開されており、npmでvoidをインストールして利用できます。プラットフォームもオープンソースで、既存の形のまま使えるほか、会社のシステムとの連携、デプロイ手順の変更、別のデプロイ先への対応を加えるためにフォークできます。

管理者が共有環境に設ける制御

Void Platformの管理者は、利用者のアクセスやリソース上限を設定できます。また、Void CLIまたは管理者ダッシュボードでデプロイと利用状況を確認し、チーム内でアプリを公開する際のガードレールを設けられます。

Workers for Platformsでは、顧客やAIが作成したコードを、利用者ごとに分離されたWorker上で実行できます。各Workerは独立した環境となり、KV、D1、R2などのリソースへのバインディングもプラットフォームから提供できます。

同サービスには、顧客ごとのCPU時間やサブリクエスト数の上限、利用者Worker全体のログとメトリクスの収集、タグによる検索・分類機能があります。アプリごとのサブドメインや顧客独自ドメインを使う構成にも対応します。

Cloudflareの権限設定との関係

CloudflareのDeveloper Platformでは、権限の範囲をアカウント全体、製品単位、個別リソース単位に設定できます。役割には、メタデータの閲覧、コードなどの内容の閲覧、既存リソースの編集、作成・削除を含む管理者権限があります。

Workersに限ると、全Workerに適用する製品単位の権限と、選択したWorkerだけに適用する権限を使い分けられます。たとえば、アカウント内のWorkerのログやメトリクスは広く閲覧できるようにし、デプロイ権限は担当するWorkerに絞る設定が可能です。

人にはメンバーやユーザーグループを通じて権限を与え、CI/CDや自動化にはAPIトークンを使えます。トークンには選んだ製品やリソースの権限だけが付与されるため、デプロイ処理に必要な範囲でアクセスを設定できます。

オープンソース化の背景と利用形態

Cloudflareは当初、利用者がアプリをデプロイするための単一の非公開プラットフォームを構想していました。その後、VoidZeroがCloudflareに加わったことを受け、誰でもインストールできるオープンソースの基盤へ方針を変えました。

Cloudflareは、社内アプリの試作を促したい企業には、全従業員へクラウドへのアクセス権を渡すことへの懸念があると説明しています。Void Platformでは管理者が共有環境を運営し、利用者のアクセスやリソースを管理できます。

チームは既存のVoid Platformを利用するほか、必要な機能を加えた独自版を構築できます。Workers for Platformsが提供する利用者ごとの実行環境や制限、Cloudflareの細かな権限設定と組み合わせることで、共有デプロイ環境を自社の構成に合わせて運用できます。