今年もこの一週間がやってきて終わりました。Cloudflareを使って開発をする開発者大歓喜のDeveloper Weekです。 新製品、新機能の発表や、既存製品のアップデート、技術的解説などをブログで行うというものです。 4月1日(月)〜4月5日(金)に行われました。
すごい。数えてみたら21個のブログ記事がありました。各記事について雑な箇条書きをしてみます。
4/1 (月)
1. Welcome to Developer Week 2024
- https://blog.cloudflare.com/welcome-to-developer-week-2024
- まずはプロダクトディレクターのRitaから開始宣言
- Cloudflareのプラットフォームは200万人が使っている
- 5つの「Cloud」を提案する
- Full-stack Cloud、Connectivity Cloud、Experimentation Cloud、Demo to Production Cloud、Demo to Production Cloud - AI編
2. Making state easy with D1 GA, Hyperdrive, Queues and Workers Analytics Engine updates
- https://blog.cloudflare.com/making-full-stack-easier-d1-ga-hyperdrive-queues
- 1日目はデータベース周りのGA祭り
- D1、Hyperdrive、Workers Analytics EngineがGA!
- これでデータベース(D1、Hyperdrive)、オブジェクトストレージ(R2)、キュー(Queues)、Key-Value Store(KV)がプロダクションレディになりCloudflareの製品でフルスタックアプリが作れるようになった
3. Why Workers environment variables contain live objects
- https://blog.cloudflare.com/workers-environment-live-object-bindings
- Workersの中を作ってるKentonによるいわゆる「Bindings」についての超テクニカル記事
4. Building D1: a Global Database
- https://blog.cloudflare.com/building-d1-a-global-database
- D1のGAについての記事
- グローバルでパフォーマンスを発揮するためのリードレプリカ機能の提供
- 10GBのデータベース、バルクデータのインポート・エクスポート
4/2 (火)
5. Bringing Python to Workers using Pyodide and WebAssembly
- https://blog.cloudflare.com/python-workers
- 2日目はAI Day
- AIと相性のいいPythonでWorkersを書ける「Python Worker」の登場!
- これまでも自分でWASMを作ればよかったが、first-classでPythonをサポート。すべてのBindings、変数、Secretsを使える
- Fast APIやLangchain、httpxなども動く
つまりこのPythonコードが本当にWorkersで動きます!
from js import Response
async def on_fetch(request, env):
# MY_KVというKVに値をput
await env.MY_KV.put("bar", "baz")
# 値をget
bar = await env.MY_KV.get("bar")
# Responseのボディに入れて返却
return Response.new(bar)
6. Running fine-tuned models on Workers AI with LoRAs
- https://blog.cloudflare.com/fine-tuned-inference-with-loras
- Workers AI上でLoRAによるファインチューニング済みの推論が可能に
- LLlama2、Mistral、Gemmaのモデルが使える
- Hugging Faceのコレクションから互換性のあるLoRAアダプタを使うか、自分でアダプタを作る
7. Leveling up Workers AI: general availability and more new capabilities
- https://blog.cloudflare.com/workers-ai-ga-huggingface-loras-python-support
- Workers AIがGA!
- 各データセンターでGPUを導入しており、現在150都市以上に。今後も増える
- Hugging Faceと提携。Hugging FaceのWebサイトのモデルページから「Deploy to Cloudflare Workers AI」からコードをコピペできる
- LoRAを持ち込むことでファインチューンが可能に
- Python Worker!
- AI GatewayがAnthropic、Azure、AWS Bedrock、Google Vertex、Perplexityなどに対応
4/3 (水)
8. How Picsart leverages Cloudflare’s Developer Platform to build globally performant services
- https://blog.cloudflare.com/picsart-move-to-workers-huge-performance-gains
- オンライン写真エディタ「Picsart」がCloudflare WorkersとKVを使ってスケールした話
9. Data Anywhere with Pipelines, Event Notifications, and Workflows
- https://blog.cloudflare.com/data-anywhere-events-pipelines-durable-execution-workflows
- イベント・ドリブンのワークフローをWorkersで実現可能にしていく
- Pipelines - Apache BeamやFlinkなどのような大規模データをストリーミングで扱う。R2に書き込む。2024年の後半にオープンベータを提供する予定
- Workflows - Workers上で実行される耐久性のある(Durable Execution)ワークフロー。2024年第2四半期にはにオープンパブリックベータで提供したい
10. Improving Cloudflare Workers and D1 developer experience with Prisma ORM
- https://blog.cloudflare.com/prisma-orm-and-d1
- PrismaのDeveloper Advocateの人による寄稿記事
- PrismaがD1に対応!
11. R2 adds event notifications, support for migrations from Google Cloud Storage, and an infrequent access storage tier
- https://blog.cloudflare.com/r2-events-gcs-migration-infrequent-access
- R2の新しい3つの機能について紹介
- Event Notifications - R2のバケットの変更を自動的にWorkersにQueuesのキューで通知する
- Super Slurper for Google Cloud Storage - Google Cloud StorageからR2へ簡単に移行する
- Infrequent Access Private Beta - アクセスの少ないデータの支払いを少なくする
4/4 (木)
12. Cloudflare Calls: millions of cascading trees all the way down
- https://blog.cloudflare.com/cloudflare-calls-anycast-webrtc
- Cloudflare Callsがオープンベータ
- WebRTCを使って、リアルタイムのオーディオ・ビデオアプリケーションを構築可能になった
- Cloudflareネットワークを単一のSFU(複数のメディアを受信してどのストリームを転送するかを決定する)にすることで、複雑さを抽象化する
- これを使ったGoogle MeetsみたいなOrange Meetsというデモ
13. Announcing Pages support for monorepos, wrangler.toml, database integrations and more!
- https://blog.cloudflare.com/pages-workers-integrations-monorepos-nextjs-wrangler
- Pagesがモノリポをサポート!
wrangler.toml
でPagesを設定できるようになった!これは地味に嬉しい- Next on Pagesの改善
14. What’s new with Cloudflare Media: updates for Calls, Stream, and Images
- https://blog.cloudflare.com/whats-next-for-cloudflare-media
- Cloudflare Calls、Stream、Imagesのアップデートの紹介
- Cloudflare Calls - オープンベータ
- Cloudflare Stream - ビデオを再エンコードすることなくストリームからクリップをして共有できる「Live Clipping API」のオープンベータ
- Cloudflare Images - 少しのコードだけであなたのアプリと統合できるアップロードウィジェット。人の顔の画像を拡大縮小してトリミングし、リサイズすることができる「Face Cropping」。どちらもクローズドベータ
15. New tools for production safety — Gradual deployments, Source maps, Rate Limiting, and new SDKs
- https://blog.cloudflare.com/workers-production-safety
- Cloudflare Workersの運用のための新しいツールの紹介
- Gradual Deployments - いわゆるローリングデプロイメントがWorkersでも利用可能なった!オープンベータ
- ソースマップスタックトレース - Tail Workersでのトレースがソースマップに対応。
wrangler.toml
でupload_source_maps = true
にする - Rate Limiting API - Workersから直接レートリミットが可能に。
ratelimit
というBindingsになる。オープンベータ - TypeScript、Python、Goの3つの言語でCloudflare API向けのSDKを提供
- WebSocketハイバネーションのGA
Rate LimitingをHonoのミドルウェアで使うにはこのように書ける。
app.use(async (c, next) => {
const { success } = await c.env.MY_RATE_LIMITER.limit({ key: c.req.path });
if (!success) {
return c.body(`429 Failure - rate limit exceeded for ${c.req.path}`, 429);
}
await next();
});
ちゃんと動いて感動〜。
4/5 (金)
16. Community Update: empowering startups building on Cloudflare and creating an inclusive community
- https://blog.cloudflare.com/2024-community-update
- Workers Launchpadプログラム、Cohort #3の紹介。Cohort #4の募集
- Dev.toがWorkers AIを利用したアプリケーションを対象としたAI developer challengeを開始
- Discord、コミュニティフォーラムで利用されるCode of Contactの作成
17. We’ve added JavaScript-native RPC to Cloudflare Workers
- https://blog.cloudflare.com/javascript-native-rpc
- WorkerとWorker、WorkerとDurable Objectを通信するための新しいビルドインのRPCの紹介
- いわゆる「Bindings」のようにもう一つのWorkerを扱える
- Classを作って定義し、利用する側に型が提供される
このコード例だと右側がCalc
っていうサービスで、左側がそれを利用する側。Calc
は特化したの処理を行うWorkerになっている。
適切に設定してあげるとそれをenv.CALC
といった他のBindingsと同じ方法でアクセスできる。
しかも、工夫次第でadd
にTypeScriptの型が付く。
18. Blazing fast development with full-stack frameworks and Cloudflare
- https://blog.cloudflare.com/blazing-fast-development-with-full-stack-frameworks-and-cloudflare
- 各種フレームワークを使ってCloudflare Pages、及び周辺プロダクトでフルスタックアプリケーションをつろう
- これまでBindingsや変数をとることが難しかったがWranglerの新しいAPIのおかげでできるようになった
19. Cloudflare acquires PartyKit to allow developers to build real-time multi-user applications
- https://blog.cloudflare.com/cloudflare-acquires-partykit
- Cloudflareがリアルタイムマルチユーザーアプリを作るプラットフォーム「PartyKit」を買収!
- 個人的に胸熱
- PartyKitは元Cloudflareで以前のWranglerをバリバリ書いてたSunilが立ち上げてる会社。当時無名だったHonoのことを取り上げてくれてそれが励みになった。そんな彼らがCloudflareにジョインする!
20. Browser Rendering API GA, rolling out Cloudflare Snippets, SWR, and bringing Workers for Platforms to all users
- https://blog.cloudflare.com/browser-rendering-api-ga-rolling-out-cloudflare-snippets-swr-and-bringing-workers-for-platforms-to-our-paygo-plans
- Workersでヘッドレスブラウザが使える「Browser Rendering API」がすべてのWorkersのPaidカスタマーに開放!
- JavaScriptのショートピースでCDNの挙動を書けるCloudflare Snippetsが徐々に利用可能に
- Stale-While-RevalidateのComing soon
21. Cloudflare acquires Baselime to expand serverless application observability capabilities
- https://blog.cloudflare.com/cloudflare-acquires-baselime-expands-observability-capabilities
- ワンモアシング
- Cloudflareがオブザーバビリティプラットフォーム「Baselime」を買収!
- プライシングが「Completely Free」