JAMStackとは。
最近関心をもって進めているものがJAMStackと名付けられているのが分かったので、ちょっと調べる。興味のきっかけはGatsbyJSという静的Webサイトのジェネレータ。描画がとても早いので面白いなと思ってちょっと自分でもチュートリアルを見ながら調べたりした。
JAMStackとは、LAMPやMEANと同じように、構成する要素の頭文字を取った、アーキテクチャパターンの一つ。それぞれJavascript、API、Markupを表す。この名前はNetlifyの人が考えたが、名前は後付け。今はこんな感じの定義らしい。
Fast and secure sites and apps delivered by pre-rendering files and serving them directly from a CDN, removing the requirement to manage or run web servers.
Jamstack | JavaScript, APIs, and Markup
そもそもの動機としてはWordpressがその脆弱性で攻撃されたり、レスポンスをより早くしたいというニーズがあった。また、クライアントでゴリゴリ描画するSPAが、レスポンス面で遅い、Googleの検索エンジンに上手く引っ掛からないという課題があり、サーバー側での描画を行うSSRが解決策として提起されていた。
Gitでリソースを全部管理できて、GitHubとかにコミットしたら、HTMLの生成処理が始まって、ホスティングサービス上に生成済みのHTMLが展開される。このホスティングサービスや、連携したCDNサービスを通じてレスポンスの早い、堅ろうなWebサイトを提供するものというイメージ。
同様のフレームワークにはNext.js、Nuxt.js、Hugoなどがある。こういった形式でのホスティングを提供しているのが、Netlify、GitLab Pages、GitHub Pagesあたり。Webサイトの内容のみを管理するコンテントフルなどのサービスもあり、より柔軟な管理ができるようになっている。
Microsoft Buildでも同様の取り組みとして、Static Web Appsが紹介されてにわかに勢いがついているように感じる。Microsoftのサービスも試してみたい。