Cloudflareが、Web画面からサーバーやデータベースへの接続、デプロイまでをつなぐ開発ツール群を公開した。社内アプリを作るチームは、従業員ごとにクラウドへのアクセス権を与える代わりに、管理者が制御する共有環境にアプリを配置する方法を選べる。

1. 開発ツールとデプロイ環境を同時に公開

Voidは、アプリを作る開発ツールのSDK、リソース準備とデプロイを担うコマンドラインツールのCLI、チームで共有するデプロイ環境のPlatformで構成される。原文では、3製品を1つのJavaScriptパッケージとViteプラグインとして公開したと説明している。インストールコマンドはnpm install voidだ。

当初はユーザーがアプリを配置する単一の非公開プラットフォームを構想していたが、VoidZeroがCloudflareに加わった後、誰でもインストールできるオープンソースへと方針を変えた。社内アプリ開発を奨励しつつ、従業員ごとのクラウド権限の拡大には慎重な企業の需要を狙った。

2. 共有デプロイ環境の運用条件

Void Platformは、企業のCloudflareアカウント内で複数のアプリをホスティングするサービス、Workers for Platforms上にインストールされる。管理者はアクセス権とリソースの上限を定め、コマンドラインツールや管理者ダッシュボードでデプロイ履歴と使用量を確認する。承認されたユーザーはこの環境に接続してアプリをデプロイする。

自ら運用するには、Workers for PlatformsとR2を有効にしたアカウントが必要だ。加えて、PostgreSQLデータベース、選択したログインプロバイダーのアカウント、アプリに使うドメインも準備する必要がある。

プラットフォームのコードを複製して社内システムと連携させたり、デプロイ手順を変更したりできる。別のデプロイプラットフォーム向けに修正することも、原文が示す活用法だ。ただし、これはコードを変更して適用する方法であり、他の環境へそのままデプロイできるという説明ではない。

3. コードが使うリソースをデプロイ時に準備

Void SDKは、ViteアプリをCloudflare Workersベースのフルスタックアプリにする。アプリのコードから必要なリソース接続を推論し、デプロイ時にデータベースやキューなどのリソースを自動で準備する。開発者がコードとクラウドリソースを個別につなぐ作業をツールが担う仕組みだ。

使い始める際は、Viteの設定にプラグインを追加する。以下は原文に掲載された例だ。

import { defineConfig } from "vite";
import { voidPlugin } from "void";
import { voidReact } from "@void/react/plugin";

export default defineConfig({
  plugins: [voidPlugin(), voidReact()],
});

例えばvoid/dbをインポートすると、開発中はローカルデータベースが提供され、本番デプロイではD1が自動で準備される。データベースから画面までデータの型情報をつなぐ機能も提供する。

SDKの機能は選んで組み合わせられる。既存のフレームワークにルーティングと画面生成を任せ、SDKにはリソースへのアクセスや認証などを任せる形だ。したがって、既存アプリの構造全体を置き換える必要があるツールと捉える必要はない。

4. デプロイコマンドと2つのデプロイ先

Void CLIは、cfコマンドラインツールを基に作られた。コーディングエージェントとともに失敗したリクエストを調査したり、デプロイログを読んだり、完成したアプリのデプロイを任せたりする用途を示している。

void deployを初めて実行すると、Cloudflareアカウントへのログインを求められる。その後、アプリをビルドし、データベースの構造変更を適用してから、必要なリソースを準備してデプロイする。チーム管理機能が不要なら、共有プラットフォームをインストールせず、自分のアカウントへ直接デプロイすることもできる。

5. 減るデプロイ作業と残る管理責任

共有環境の利点は、プロジェクトごとに別のアカウントやリソースを準備する作業を減らせる点にある。一方、アクセスポリシーやリソースの上限を設計し、プラットフォームの運用に必要な構成要素をそろえる仕事は管理者に残る。アプリ作成者のデプロイ負担は軽減するが、チーム全体の運用責任までなくすわけではないと解釈できる。

Voidは、アプリ開発とデプロイをつなぐツールであると同時に、従業員ごとのクラウド権限の代わりにチーム単位の運用を選べるデプロイ環境だ。