本日、PagesとWorkersの単一の製品体験への統合を発表!
誰しもが経験することです。創造力が急に沸き起こり、サーバー側でレンダーされるフロントエンドやバックエンドでのSQLiteデータベースなど、すべてのピースがうまく組み合わされ、作りたいアプリケーションが頭の中で鮮明にイメージが浮かぶ-掻き立てられる創造力のまま、パソコンに向かう。創れるとの確信があり、必要なのは道具だけ。Cloudflareのダッシュボードにログイン-そして、ここで非常に難しい決断に迫られます:
使うべきはCloudflare Workers、それともPages?
どちらも一見似て見えるものの、細部は異なります。アイデアを実現できそうなのは、どちらでしょうか?選び方を間違えてしまったら?両者の間でのトレードオフは?このような疑問は、当社のユーザーが考えるべきもではないはずであるものの、現実にはよくあることです。当社の幅広いユーザーやお客様との会話の中で、当社自身がこうしたお声を聞いています。どちらの製品もサーバーレスアプリケーションを構築するためのものであり、PagesとWorkersからいずれかを選択する際、非常に難しい決断を迫られます。端的に言って、当社はユーザーがこうしたジレンマに直面することを望んではいません。特に、素晴らしい、さらには革新的なアイデアが生み出されそうな場面であれば、なおさらです。だからこそ、WorkersとPagesという2つの製品の長所の1つの強力な開発プラットフォームへの統合に向けた初となるマイルストーンを提示できることを誇りに思っているのです。2つの製品間で運命を共有するための旅の始まりであり、この機会に、その目的、現在すでにご利用いただけるもの、そして今後の予定をお伝えしたいと思います。
目指す目標についての詳細はこちら
PagesとWorkersの関係は、常に絡み合っています。これまで、私たちはこの2つを兄弟として見てきました。それぞれが異なる特徴を持ちながらも、それぞれリッチでパワフルなアプリケーションを構築できるように支えています。各製品は、それぞれ異なるユースケースを想定しています。
Workersは当初、当社のCDNを拡張し、その後、高度にコンフィグ可能な汎用コンピューティングプラットフォームへと拡大する目的でリリースしました。Pagesは最初、静的なウェブホスティングとして始まり、Jamstackの領域へと拡大しました。時間の経過とともに、PagesはWorkersの強力な計算機能をさらに搭載し始め、WorkersはPagesが導入した豊富な開発者機能を採用し始めた。この2つの製品の境界線は曖昧となり、ユーザーが違いを理解し、アプリケーションのニーズに合った製品を選択することが難しくなりました。
当社は、こうした意思決定の判断の難しさを取り払い、お客様が開発期間中、迅速な行動を実現できるよう、より優れた方法があると考えています。
確かにその通りですが、これが意味するところはどういったものでしょうか?
これら2つの製品の間でトレードオフをするのではなく、2つの製品両方の持つ最大限の力をお届けしたいと考えています。つまり、R2、Queues、D1などのストレージ製品とシームレスに統合され、CI/CD、GitOpsワークフロー、ライブプレビュー、柔軟な環境設定などの豊富なツールを提供する、強力なコンピューティングと超高速での静的資産ホスティングの両方を備えた単一の開発プラットフォームを目指しているのです。
すべてのディテールを1か所に
現在、多くの開発者がPagesとWorkersの両方を利用し、アプリケーションを構築しています。しかし、それではCloudflareダッシュボードの別々の部分で作業していることになり、一方から他方への移植が常に行われてはいないため、これらを組み合わせアプリのスタックをトラッキングするのが難しくなっています。まだ、使用感などの詳細は検討中であるものの、ユーザーがすべてのアプリケーションを一元的に管理できるような世界の構築を考えています。
ダッシュボードのあちこちでアプリケーションの断片を探し回る必要はなく、プロジェクトに必要なすべての情報を1か所で確認できるようにしていきます。
プリミティブ
PagesとWorkersが融合することで、「プロジェクト」の概念も再定義し、プラグ・アンド・プレイに新たにまっさらな可能性のキャンバスを導入していきます。プロジェクト内には、(1)静的アセット、(2)サーバーレス機能(Workers)、(3)リソース、(4)またはそれぞれの組み合わせを追加できるようになります。
アプリケーションの可能性を最大限に引き出すために、KV、Durable Objects、R2、D1などのリソースを自動プロビジョニングして直接統合することができるプロジェクト機能を模索しています。これらのプリミティブをすべてプロジェクトで利用できるようになることで、あらゆるデプロイにおいてアセット、機能、リソースのバージョンがシンクされた状態に保つため、ロールバックやプレビューを安全に実行できるようになることが要点となります。移行のデプロイにおいて、これらのいずれもが古くなることを心配する必要はありません。
デプロイメント
Pagesの最も顕著な特質の1つは、GitOpsを中心としたデプロイメントとなります。この統合された世界では、静的アセット、サーバーレス機能、リソースへのバインディングを自由に組み合わせたgitレポジトリをオプションで接続、構築、デプロイできるようになり、さらに今日のPagesでご利用いただいているのと同じ高性能CIシステムも活用できるようになります。
Pagesのように、Cloudflare Accessで保護されたユニークなURLでプロジェクトのデプロイメントをプレビューすることができ、PRやWranglerコマンドで利用できるようになります。素晴らしいアイデアは、大きなリリースの前に何度も検証する必要があるため、さまざまなセットアップでテストできるよう、一流の環境コンセプトも用意しています。
ローカルデプロイ
考慮すべき最も重要な項目の1つには間違いなく、合体後の世界ににおいて当社がローカル開発の道筋を持っているか、ということでしょう。この開発の過程は、製品を合体させる過程とまったく同じ姿勢であるべきです。将来的には、Wrangler CLIを使用することで、例えばシンプルなWrangler開発やWranglerデプロイなど、プロジェクトで使用する統一され予測可能な一連のコマンドの実現を期待いただけます。プロジェクト全体とその構成要素すべてに適用される設定ファイルを使用することで、コマンドがプロジェクトの一部だけでなくその全体で作用するとの確信を持つことができるのです。
メリットは?
WorkersとPagesの融合は、それぞれの製品が持つ開発者向けの見事な機能を単一の開発プラットフォームで実現するだけではありません。性能、コスト、負荷のメリットもすべて合体させることになります。これには、次のものが含まれます:
超低遅延がグローバルに分散された静的アセットにより実現し、インターネットに接続された世界人口の95%からわずか50msの距離にある当社のネットワーク上の計算を活用できます。
エグレス料金無料かつ、無料の静的資産ホスティングもご利用いただけます。標準ベースのJavaScriptランタイムが、すでに慣れ親しんでいるパッケージやライブラリの間でシームレスな互換性で実現します。
すべての人にシームレスなマイグレーションを
すでにPagesやWorkersをご利用になっており、これが貴社の既存プロジェクトにどういう影響を及ぼすのか不安に感じる場合、心配は無用です。このアーキテクチャの合体において、シームレスなマイグレーションは当社の掲げる最優先事項であり、統一された開発プラットフォームへの道のりのすべてのステップで動かざる目標となります。PagesとWorkersの両方での既存のプロジェクトは、ユーザー側でのアクションを必要とせず、稼働し続けることになります。何かにご対応いただくのではなく、すでにご利用いただいている製品に関わらず、既存のプロジェクトやワークフローをより豊かにするためのより多彩な機能をご利用いただけるようになります。
今日の最新情報
今後1年間、PagesとWorkersの1つの体験への統合を目指し、製品だけでなく、裏方の製品、エンジニアリング、デザインチームも合体させていく予定です。
新しく合体された世界にお客様をお迎えするのが待ち遠しい一方、この変化は残念ながら一朝一夕に起こるものではありません。コンバージェンスへのスムーズな移行を実現するため、今後数四半期にわたり、大規模ながらも漸進的なマイルストーンを達成していく予定であり、このDeveloper Weekでコンバージェンスへの第一歩を踏み出せることを期待を込めてお話しさせていただきます。ダッシュボードでは、違いを感じていただけるに違いないでしょう。
共に新たに始める
PagesとWorkersのオンボーディング体験を1つのフローに統合したことで、プロジェクトを作成する際のダッシュボードにいくつかの変化が見られます。PagesのプロジェクトとWorkerを1つの画面で作成できるようにその作成フローを統合することで、徐々に2つの製品を近づけています。
テンプレートでより速く
当社は、「すぐに手を動かして、大きなビジョンを実現しはじめたい」という開発者の気持ちをしっかりと理解しています。当社は、アイデアからCloudflareネットワーク上でライブになるアプリケーションの実現までの過程を、これまで以上に簡単にたどれるようにしています。シンプルなHello World WorkerからChatGPTプラグインまで、数回のクリックでスターターテンプレートをデプロイすることができます。将来的には、ダッシュボードのPagesテンプレートに取り組み、わずかなボタンで自動的に新しいレポジトリを作成し、スターターフルスタックアプリをデプロイできるようにする予定です。
お気に入りのフルスタックフレームワークを指先で操作可能に
また、静的なテンプレートやダッシュボードにもとどまることはありません。好みのフレームワークを導入することは、これまで慣れ親しんできたツールを置き去りにすることにはなりません。「お気に入りのフルスタックフレームワークでデプロイする」、「Workersのパワーを実感する」という言葉の意味が実際何であるかは、実行するだけでお判りいただけます:
これをターミナルから実行すれば、すぐに体感できます!Angular、Next、Qwik、Remixといった、ファーストクラスでしっかりサポートされているフルスタックフレームワークのCLIと統合するこのhttps://blog.cloudflare.com/making-cloudflare-for-web新たなCLI体験では、新しいプロジェクトの作成の在り方を完全にコントロールすることができます。また、このツールから、ウィザードのような操作で、強力なスターターテンプレートを用い様々なWorkersをデプロイできます。
アプリケーションに必要なものすべてが1か所でみつかる
npm create cloudflare@latest
PagesとWorkersのプロジェクトリストダッシュボードを統合したことで、体験の統合に一歩近づきました。アプリケーションをデプロイ後、すべてのPagesとWorkersが1つのページに表示され、ダッシュボードの中をこまごまと移動する必要がなくなります。Workers / Pages Functionsの利用状況を1か所で把握できます。将来的には、これらのカードは「Pages」や「Workers」ではなく、アセットや機能、リソースを組み合わせた「プロジェクト」として識別できるようになるでしょう。
今後の展開は?
Workersのgit統合やPagesプロジェクトの設定ファイルなど、各プラットフォームの機能を1つにできるまで対応していくため、実行を始めるにつれ、各製品が徐々に似てくるのがわかるはずです。
当社Twitterをフォローしていただき、最新の能力改善や、マイルストーンごとに登場する最新情報をご覧ください。
ご意見・ご感想をお聞かせください
当社はもちろん、まずコミュニティの声に耳を傾けなければ、優れたプラットフォームの構築は実現できません。実際、ユーザーに関する情報を収集し、お客様の希望についてご意見をいただくため、当社はアンケートを用意しました。お時間の許す限り、このアンケートにぜひお答えください。もしくは、Discord:Cloudflare DevelopersまたはTwitter:@CloudflareDevよりご連絡ください。