0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Fastly Compute (旧 Compute@Edge) 一人Advent Calendar 2023

Day 2

Fastly Compute (旧 Compute@Edge) 2018~2023年までの主な出来事

Last updated at Posted at 2023-12-02

この記事は Fastly Compute (旧 Compute@Edge) 一人アドベントカレンダー 2 日目の記事です。

本稿では Fastly Compute (旧 Compute@Edge) がリリースされてから今日に至るまでの出来事について、Fastly の公式ブログを眺めながら理解を進めていきます。今年 6 月に入社した身として Compute の歴史について知らないことも多いので、記事を執筆することで自身の学びを深めることも一つの目的です。

TL;DR

  • 2018年 11月 Terrarium が利用可能に (対応言語は Rust)
  • 2019年 11月 Compute@Edge がプライベート β 版で登場 (Rust のみのサポート)
  • 2020年 10月 Compute@Edge 正式ローンチ (AssemblyScript が β 版でサポート追加)
  • 2021年 7月 JavaScript が β 版としてサポート追加
  • 2022年 4月 JavaScript が正式ローンチ / KVStore が β 版として提供開始
  • 2022年 8月 Go のサポートが追加 (※TinyGo)
  • 2023年 2月 ConfigStore が GA で提供開始
  • 2023年 4月 KVStore が GA で提供開始
  • 2023年 9月 Standard Go のサポートが追加

注1: 公式ブログの情報をおおまかにまとめると上記の通りですが、ここには記載されていない話も多い(例:Cache API が利用可能になっている)ので、それらは別途後日の記事で触れていきたいと思います。

注2: 2022 年に JavaScript が正式ローンチを迎えたことを受けて、AssemblyScript は今年 5 月に deprecated となり 7 月でサポートが終了しています

2018年

過去のブログを遡ると、2018年の年末から Terrarium や Rust での WebAssembly に言及した記事が登場し始めます。

この時点では Compute@Edge というプロダクト名は登場せず、あくまで Terrarium を使って Rust で WebAssembly を実行する環境が使える話が中心に紹介されています。

2019年

2019年前半には、WebAssembly が実際にどのようなプロセスでネイティブコードに変換されて実行されるかの解説や、当時の Wasm ランタイムである Lucet についての紹介記事などが投稿されています。

その後 2019 年 11 月に Compute@Edge が private beta として登場します。記事の中で既に Wasmtime や Cranelift といった現在も使われているソフトウェアが登場しており、内容的に古さを感じずに読むことができます。1

2020年

2020 年前半、ブログ記事の量が少し増えてきます。Rust 以外の言語対応の話が多めに記事になっている印象です。ローンチ後のフィードバックを受けた反応でしょうか。その他 Wasmtime や WASI, .witx フォーマットについての話なども解説されており勉強になります。

下期は 10/28 のブログで Compute@Edge が beta から正式ローンチに変わる点が一番大きなニュースです。正式ローンチに合わせて AssemblyScript 2 も beta としてローンチされています。Terraform 対応の強化などもこの時期から謳われてた模様。

2021年

2021 年上期も色々な記事が投稿されますが、個人的にダントツで面白いのが "How we vetted Cranelift for secure sandboxing in Compute@Edge" です。特に、以下で解説されている Compute@Edge がどのように Cranelift を使ってセキュリティを担保しつつ高速にネイティブコードを動作させているかを解説している一節は、V8 Isolates で動く場合のエッジでのサーバレスのプロダクトとは仕組みが異なってくる部分なので、読んでみると面白いかもしれません。

This approach allows Compute@Edge to execute services efficiently with very fast startup times. This is possible because instead of relying on operating system processes (like modern browsers or some shared hosting platforms), containers (like many serverless cloud offerings), or entire virtual machines (like traditional unmanaged cloud hosting) to separate the different services and requests, we use lightweight inline sandboxing checks in native code. By doing so, native code from several services can safely coexist in a single OS process.

下期は 7 月に JavaScript 対応が Beta 版として発表されるニュースが注目に値します。一時期話題になった Cloudflare Workers と比較した速度に関してのブログはこの時期に書かれていますね。

2022年

4月に JavaScript が Production 利用が可能になったと発表され、KVStore(Beta) も同時期にリリースされています。Compute に関するブログの量も過去最大に増えてます。この時期に Fanout や Glitch などのチームが Fastly にジョインしたことも大きなニュースです。他に、Compute の技術記事としては個人的には The Guardian: Our day hacking with Compute@Edge が Rust で Compute やってみた系の記事になっていて読みやすく、かつ興味深く読みました。

下期は 8 月の Go のサポート開始が Compute の大きなニュースです。また、JavaScript 周りの記事が非常に多くなっていますね。

2023年

今年に入って Config Store や KVStore が GA でリリースされます。他に今年の大きなアナウンスとしては、昨年発表された Go が TinyGo での提供だったのに対して、今年 9 月からは Standard Go のサポートが開始されたことも大きなニュースでした。

なお、昨年よりもブログの記事数が減少していますが、これは恐らく公式ブログ以外にもブログや YouTube での情報配信を開始または活動強化しているためと思われます。公式ブログ外の内容について、もしご興味あればこちらもご覧ください。

まとめ

どの言語や機能がいつ利用可能になったのか、大体は把握していましたが月レベルの正確さでは把握できていませんでしたし、興味深い技術記事も豊富だったので、個人的には得るものが多い執筆でした。一方で 2018 年から現在までの過去ブログの記事のタイトルだけで 400 件ほどあったので読み込むのに時間がかかり、予定執筆時間は大幅にオーバーしてしまいました。二日目からこの調子なので、記事投稿を継続できるか心配です。

明日は Fastly Compute (旧 Compute@Edge) に関する国内外の関連記事・情報についてのまとめ記事を執筆予定です。

  1. 特に、"Guide for C and Rust programmers" は Wasm がどのようにネイティブコードとしてコンパイルされ実行されるかについて分かりやすく解説されています。

  2. 2022 年に JavaScript が正式ローンチを迎えたことを受けて、AssemblyScript は今年 5 月に deprecated となり 7 月でサポートが終了しています

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?