なぽろぐ

気ままに感じたことを記事にまとめます。

Workers Tech Talks #1 参加レポ

Workers Tech Talks #1 に行ってきた

参加したイベントはこちら、前回参加したのが #edge_study(3月) で同じ edge worker 系の話だったので今はこの辺りの話に興味がある。

workers-tech.connpass.com

ぼく

事前知識こんな感じ

  • フロントエンドやってる
  • React と TypeScript が好き
  • rollup で bundle size 小さくしたり、Node.js で作られたサーバーの起動時間を早くするのが好き
  • 最近は cloudflare workers が安くてデプロイが早いので何かと使っている
    • LP サーバーにしたり HP 置いたり、api 無理やりはやしたり、cache サーバーにしたり etc...

イベント内容

@chimame_rt さんによる GraphQL Server on Edge

  • cloudflare workers に GraphQL server を置いた話
    • GraphQL Yoga が 2.0 から Web Standard api で動く!
  • cloudrun から cloudflare workers に乗り換えた
    • デプロイ速い
    • コールドスタート短くなった
    • cloudrun より圧倒的に安い(1/10)
  • Node.js が必要な場合は別途サーバーを立てたほうがいい
  • DataLoader 動かない場合があるとのこと

気になったこと・感想

  • cloudflare にロックインしてこれだけの恩恵を受けられるなら価値は十分だなと思った
    • 同時に Node.js api と Web Standard api に詳しい人がいないとつらそう
  • DurableObjects で WebSocket Server 保持してるみたいだったけど同時接続数の問題とかは起きなかったのか?
  • DataLoader 動かない場合があるのはかなりつらそう(N+1 起きたときの回避策他にあるのかな?
  • CPU 時間の制限は GraphQL やるうえで障害にならなかったのか?

@hiroshi3110 さんによる Gyazo の素朴な Workers

  • gyazo でとった画像に直リンしたときに header がつくあれの説明だった
  • cloudflare workers を 2018 年位から使っており wrangler がない時代から使っていたため、dashboardpreview で動いたら deploy という運用をしていた
    • 今もしているらしい(趣がある

Image from Gyazo

@teckl さんによる Cloudflare Workers + R2で低コストで画像配信を移行した話/cloudflare_workers_r2_migration

  • S3 から R2 に移行した話
    • かなり具体的な話 + ハマりどころまで書いてある
  • Cache の話
    • Cache api と KV の料金と挙動比較
  • cloudflare workers は javascript が欠けるので細かい差分対応などがしやすい
    • S3 から R2 に移行したことによる uri の差分修正など
  • こちらもコストが大幅に下がった

感想

  • DNS 周りの話はあまり詳しくないので 7. 切り替え(NS の委任) 周りがぱっと理解できなかった。
  • S3 -> R2 のインフラ移行したにもかかわらずクレームが1件で済んでいることが本当にすごいと思った

@mizchi さんによる Server Side JavaScript のためのバンドル最適化

  • server side bundle の話
  • wrangler は内部で esbuild --bundle されている
  • bundle size がリクエストを捌く速度にも影響する
    • bundle size が大きいとデプロイ直後は小さいものと比べると 2 倍くらい遅くなる
      • 簡易ベンチなので参考程度とのこと

感想

  • server side でも Bundlephobia | Size of npm dependencies を確認する時代が来たか....となった
  • zod でかい....なんだ 56kb って(class method chain で作ってるしそうだよね....
  • frontend だけのチューニングだと思ってたものが serverside にまで来たのは面白い
  • v8 isolate が edge worker の覇権をとっちゃった今 wasm はどうなっちゃうの~?
  • bundle size がでかいと deploy 直後遅くなるのは js スクリプトが v8 isolate に乗っかるまでが遅いからって理由なんだろうか?
    • 明確に自分の中でわかってないところ
    • v8 isolate から参照できる js の storage があってそこからの呼び出しに時間かかってる感じだろうか?

@codehex さんによる gRPC Client on Cloudflare Workers

  • NOT A HOTEL はかっこいい
  • cloudflare workers で gPRC を動かす話
    • 設定 1つ で proxy 自体は簡単にできる
  • bufbuild/protobuf-es, bufbuild/connect-es は cloudflare workers で動く!
    • 多少は内部 API を組み合わせて自前で作る部分は必要
  • gPRC-Edge-GateWay を作っている!
    • gPRC をしゃべれない client 用に json に変換してくれるやつ

感想

  • ブラウザで動く、Web Standard、fetch という単語は cloudfalre workers 使いにとってライブラリを見る上で重要単語になりそう
  • gPRC 個人的にマイクロサービス同士がしゃべるイメージが強くあって client まで露出しないものというのがあったので gPRC-Edge-GateWay が本当に楽しみ

まとめ

  • めちゃくちゃ面白かった
  • #2 待ってます
  • 主催してくださった @yusukebe さん、会場提供してくれた @classmethod さんに感謝.... :pray: