Python 目線からの GAE/node.js Standard Environment 発表の解説

Google I/O 2018 で GAE/node.js Standard Environment が発表されました。

www.youtube.com

以下、「Python 3 早く来い!」の視点で注目点をピックアップしていきます。

9:00 頃から、 node.js Standard Environment が in a few weeks で登場すると発表

13:00 "idiomatic", You can use any module from the NPM registry you want. There is no API or language restriction. Go や Python みたいに特別な制限は無いようです。

13:33 GAE Standard のインフラの3つの新しい点を紹介していくよ。まずは "Faster than light" ビルド。 gcloud app deploy コマンドが差分アップロードするようになった。 サーバー側で npm install するんだけど、 package.json と package-lock.json に差分がないと npm install はスキップして前の node_modules をそのまま使うよ。

(発表内容から脱線)
さて、 pipenv のドキュメントの Community Integrations に "Mysterious upcoming Google Cloud product (Cloud Hosting)" があります。きっと GAE/Python 3 Standard は pipenv を使って、 npm と同じ "Faster than light" build をするんでしょうね。
(脱線おわり)

14:45 New runtime environment. スタックを上から見ていくと、 "Your code", "node_modules", "node.js" --- これはカスタマイズされてない, "OS packages" --- たとえば headless Chrome なんかがインストールされてる、 "Ubuntu". ってなってる。 node.js 以下は Google が勝手にアップデートする。

16:00 このスタックはサンドボックスで動いている。先週発表した gvisor だ。


今までの GAE Standard Environment は言語ランタイムとかライブラリにカスタマイズしてサンドボックスを提供していたので、言語の追加やアップデートがなかなかされないという欠点がありました。

node.js Standard から利用されている新ランタイムは、 gvisor で作ったサンドボックスのなかで、カスタマイズ無しの言語ランタイムが動くのが魅力です。利用できるライブラリもずっと増えるでしょうし、新しい言語が追加されたり新しいバージョンが利用可能になるのがずっと早くなることが期待できます。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。