新規投稿のお知らせを受信されたい方は、サブスクリプションをご登録ください:

コードの記述に専念:Cloudflare Workersの開発者エクスペリエンスの向上

2019-06-02

4分で読了
この投稿はEnglishFrançaisDeutschEspañol简体中文でも表示されます。

本日、Cloudflare Workers®で、CLI、新しく改良されたドキュメント、すべての人が使える複数のスクリプト、ならびにご自身のドメインを使用せずにworkers.dev上でアプリケーションを実行可能な無料利用枠の提供が開始し、過去になかったほどに実験が容易になりましたことを発表します。弊社で構築を進めている未来のサーバーレスプラットフォーム上で、皆様にも今日、アプリケーションの構築を行っていただけます。この記事では、未来のサーバーレスプラットフォームの概要について、また、今日のパラダイムがいかに変わるのか、そしてこのプラットフォーム上で素晴らしい体験を構築するための弊社の取り組みについて説明します。

3年前、私はソリューションエンジニアリングの役割に応募し、Cloudflareの面接を受けました。面接には、Cloudflareに自分のドメインをセットアップする課題も含まれていました。週末を使って課題に取り組みましたが、あせったり設定で迷ったり、EC2のインスタンスのセットアップに悩み、IPv6経由での接続、Ubuntu 16.4へのNGINXのインストール方法などを考えながら進め、最後に_自分のネコの写真を置いた静的サイトを仕上げました_。私はコンピュータサイエンスを専攻し、それまでソフトウェアエンジニアとして働いてきましたが、このシンプルなアプリの構築はひどい経験でした。サーバーのことを考えずに週末をコーディングに費やしたら、もっと内容の濃いアプリケーションが出来上がったと思います。

ですが、このことはまだ、梯子の一段目にすぎなかったのです。プリミティブを上のスタックに移動するなか、実際、アプリケーションの開発や、それをインターネットに載せること、そしてMVPから拡張性ある高性能な製品に育てるには、まだまだ開発プロセスには明らかに手順が残っていました。

これが、「サーバーレス」によって必ず解決できる部分です。プロセスのすべての段階でサーバーを抽象化し、開発者が最も得意な部分つまり開発を、インフラストラクチャに対する不安なく行えるようにすることです。

ですが、現在の多くのサーバーレス製品では、開発者はまず、自身の担当ではないサーバーの心配をしなければならないのです。「あなたはどの地域が好きですか?」(私の頭の中に最初に浮かんだ質問:なぜ、東海岸と西海岸のどちらの顧客を最も心配しているのかについて考えざるを得なくさせるのですか。私の代わりに解決してくれないのですか?)あるいは、「どのくらいのメモリが必要だと思いますか?(再度:どうしてこれが私の問題になるのですか?!あなたが解決してください!)

このようなことになってはならないと思います。

私は、3年前に自身が直面していた問題、そして世界中の開発者が直面している問題を、よく思い出します。開発者は、コードに集中できる状態でなければなりません。インフラストラクチャのセットアップから、そのインフラストラクチャを高速に動作させ拡張性を持たせるまでの部分は、すべて誰か他の人が対処するべきです。私たちはWorkersの構築において、このような、より良いアーキテクチャを作るためのいくつかの決定にも関わりましたが、今日は、その説明をする機会ではありません(この部分について、詳しくはここに良く書かれた投稿がありますのでご覧ください)。今日は、Workersの機能を開発者向けに向上させていくことについてお話します。

私たちは、Workersを、開発者がコードのバグだけに集中できるようなサーバーレス、という夢を実現する製品にしたいと考えています。今日は、Workersで開発者に素晴らしい体験を実現するという目標達成のためのCloudflareにとってのスタートの日です。今日も素晴らしい発表がいくつかありますが、これはまだ始まりに過ぎません。

Wrangler:Workersの公式CLI

Wranglerは、もともとWorkers用のオープンソースのRust CLIだったものを正式なWokers CLIに格上げし、現在Workersの展開に関わるすべてのニーズに対応しています。

Wranglerをインストールして開始

npm install -g @cloudflare/wrangler

npm install -g @cloudflare/wrangler

`wrangler generate <name> <template> --type=["webpack", "javascript", "rust"]`

テンプレートギャラリーから、最初のプロジェクトを生成します

wrangler generate <name> <template> --type=["webpack", "javascript", "rust"]

Wranglerは、プロジェクトのウェブパック、WebAssemblyへのコンパイル、プロジェクトのWorkersへのアップロードを、1つのシンプルな手順で行います。

Wranglerの公開

Wranglerを使用する嬉しいその他のメリット:

  • Rust、C、およびC++を、WebAssemblyにコンパイルする

  • 単一ファイルまたは複数ファイルのJavaScriptアプリケーションを作成する

  • NPM依存関係をインストールする(webpackは弊社で行います)

  • KV名前空間とバインディングを追加する

  • あらかじめ作成済みのテンプレートで開始する

新しいドキュメントと改良されたドキュメント

ドキュメントを更新し(Wranglerを使用)、Workersでの最初のアプリケーションの展開開始がこれまでになく容易になりました。

新しいチュートリアルをご確認ください。

誰でも使えるマルチスクリプト

皆様から寄せられる質問にも耳を傾けました。Workers導入時、なるべくシンプルなものを作ろうと考えました。開発者は、コードを論理的なコンポーネントに分割したいのです。モノリシックなスクリプトを1つ用意するのではなく、使う方にとって意味ある方法でコードを配置できるようにしたいと考えています。

no-domain-required.workers.dev

ソフトウェアを書くことはクリエイティブなプロセスです。新しいプロジェクトとは、ゼロからなにかを創造することです。何が出来上がるか、どのような名前を付けるかもまったくわからないこともあります。

Workersでは、(お客様のサブドメイン).workers.dev上での展開を可能にすることで、このスタートの部分を変えます。

2月にご覧になられたでしょうか、この発表を、ついに提供できることになりました。事前登録された皆様は、用意されているサブドメインにサインアップしてWorkersをクリックすることで、これをご利用いただくことができます。

実験に使える無料利用枠

素晴らしい製品が常に素晴らしいアイデアから生まれるとは限らず、いろいろやってみる自由があるために生まれることも多くあります。私たちは、ちょっとした作業にでも値段が付けば、たとえ5ドルでも、皆さんの実験の自由を制限してしまうことに気がついたのです。

そこで本日より、Workersに無料利用枠を設定することを発表します。

無料利用枠では、ご自身のドメインでもworkers.devでも、1日あたり最大100,000リクエストまで使用することができます。詳しい制限については、こちらからご覧ください。

新たに機能向上したUI

Workersへのサインアップから展開までが2分以内の、クリーンで使いやすいパッケージを作りました。

Cloudflareのコミットメント

まだまだこの先には長い道のりがあります。開発者にとっての使いやすさについては、現段階に留まることなく、さらに私たちの使命を果たしていきたいと考えています。共同創業者であるMichelleがよく言うように、「私たちはまだ始まったばかり」です。

目の前にはすることがたくさんあるし、この先ももっと色々なことが待っています。workers.cloudflare.comにアクセスすると詳細情報をご覧いただけるほか、実際に使用される場合には同じページからサインアップすることができます。

皆様の積極的なご利用をお待ちしています。

Cloudflareは企業ネットワーク全体を保護し、お客様がインターネット規模のアプリケーションを効率的に構築し、あらゆるWebサイトやインターネットアプリケーションを高速化し、DDoS攻撃を退けハッカーの侵入を防ぎゼロトラスト導入を推進できるようお手伝いしています。

ご使用のデバイスから1.1.1.1 にアクセスし、インターネットを高速化し安全性を高めるCloudflareの無料アプリをご利用ください。

より良いインターネットの構築支援という当社の使命について、詳しくはこちらをご覧ください。新たなキャリアの方向性を模索中の方は、当社の求人情報をご覧ください。
ServerlessCloudflare WorkersJavaScript製品ニュース開発者Developer Platform

Xでフォロー

Rita Kozlov|@ritakozlov_
Cloudflare|@cloudflare

関連ブログ投稿