19 ポイント 投稿者 xguru 2022-05-10 | 2件のコメント | WhatsAppで共有
  • DockerはLinuxコンテナを大衆化した: OSレベルの仮想化によってソフトウェアのデプロイを容易にした
  • Cloudflare Workers や Deno Deploy は、JavaScriptコンテナという概念を実装したもの(それぞれ異なる環境で)
  • JavaScriptコンテナは今後数年間でどのように発展していくのか?

Universal Scripting Language

  • ますます多くのものがWebを基盤に連携している: The web is eating the world
  • Webは人類の情報の基本的な媒体であり、JSはWebインフラに深く組み込まれているため、他の言語とは異なる
  • スクリプト言語は多くのサーバー側の問題を解決し、ビジネスロジックをより速く安く記述できる
  • スクリプト言語は有用で、互いによく似ており、JavaScriptが最も広く使われていて今後も使われ続けるだろう
  • つまりJavaScriptはユニバーサルなスクリプト言語だと考えられる

Shell : Executables :: JavaScript : WebAssembly

  • サーバー向けの新しい高水準コンテナとして、JavaScript Sandboxが登場

  • Linuxコンテナが対象としている問題を解決するためのものではない

  • 単純化の結果として現れたもの
    → Webサービスのビジネスロジックにおけるボイラープレートを最小化
    → ブラウザと概念を共有し、プログラマが知るべき概念を最小限にする

  • すべてのWebエンジニアはすでにJavaScriptのブラウザAPIを知っている
    → JSコンテナの抽象化は同じブラウザAPIを基盤に作られているため、学ぶべき内容が減る
    → JSの普遍性が複雑さを減らす

  • ShellはUnixプログラムを実行するためのインタプリタ型スクリプト言語
    → 条件式、ループ、変数はあるが制限が多く、プログラミングには向かない。実際の機能は実行ファイルが担う

  • この新しいサーバー抽象化レイヤでは、JSがShellの位置を占める
    → Bash/Zshよりスクリプティングに適しているが、Shellが実行ファイルを呼び出すように、JS SandboxはWASMを呼び出す
    → 画像リサイズのような複雑な作業が必要なら、JSで書くよりWASMを使うほうがよい
    → bashで画像リサイズをせずImagemagickを呼び出すのと同じように

The North Star

  • スクリプトの未来はブラウザJavaScriptである
  • Node.jsの最も根本的な誤りは、新しいAPIが標準化される中で、ブラウザから離れてあまりに多くのものを発明してしまったこと
    → 2010年当時、私たちにはESモジュールすらなかったが、標準化された後でNodeに取り込まなければならなかった
    → Promise、Async/Await、Fetch、Streamsなど、多くのものがそうだった
    → 非標準のCommonJS require、package.json、node_modules、npm、グローバルなprocessオブジェクトは、最終的には標準化されてブラウザに追加されるか、Webベースの別のものに置き換えられる
  • 高水準コンテナはまだ標準化されておらず、これらすべてがどう展開するのかはまだよく分からない
  • 現在Cloudflare Workers と Deno DeployはFetchEvent APIを使っているが、より良いインターフェースが見つかるかもしれない

結論

  • JavaScriptは汎用スクリプト言語である
  • JavaScriptの普遍性によって、サーバーを単純化する新しいコンテナ的な抽象化が登場している
  • Linuxコンテナが消えるという話ではない。そのレベルの抽象化は今後も有用だろう
    → 人々が書く多くの「ビジネスロジック」にとっては、やや低レベルな抽象化だということ
    → Webサイトを構築する際のsystemd設定のようなものはボイラープレートである
  • おそらく多くの「Webサービス」は、LinuxコンテナではなくJavaScriptコンテナという観点で考えると単純化できる
  • 私たちはDenoでこのアイデアを探求している
    → サーバー抽象化を根本的に単純化しようと取り組んでいる

2件のコメント

 
xguru 2022-05-20

翻訳文が出ましたね

https://medium.com/@yujso66/…

 
xguru 2022-05-10

自分なりに要約すると

  1. 最近はWASMを利用したサンドボックス技術が数多く登場している
  2. JavaScriptはWASMを動かすスクリプトのように使われる
  3. WASMサンドボックスは、OSからコンテナやフレームワークまで、あらゆるものを載せることができる
  4. そうなると、このようなJS Containerによって、ビジネスロジックだけに集中する新しい高水準コンテナ標準が登場する可能性がある
    という整理になるのではないかと思います。

理解を助けるための別リンク