TOPマネジメント > 動的サイトと静的サイトをいいとこ取り、Jamstackとは(...

マネジメント

動的サイトと静的サイトをいいとこ取り、Jamstackとは(上)

2020/07/13

Josh Fruhlinger InfoWorld

 Jamstackは、近年広がりつつあるWeb開発の流儀である。Web開発で長年主流だったのは、Webブラウザーからリクエストを受けた時点でWebサーバーがコードを実行して、インタラクティブなWebページを動的に生成する手法だったが、Jamstackはいわばその対極にあり、事前に生成した静的なページの中で、JavaScriptを使って外部サービスのAPIを呼び出す。DevOpsのムーブメントや、CI/CD(継続的インテグレーション/継続的デリバリー)の手法とも親和性が高く、Web開発のプロセスとWebページのダウンロード時間の両方を高速化することを目指している。

Credit: Tero Vesalainen

 JamstackのJamとは、JavaScript、API、マークアップのことで、Jamstackはこの3つを柱とするWebアプリケーションのモデルである。Jamstackサイトのページは、標準的なマークアップ言語で構成されており、アプリケーションサーバーやNode.jsのようなサーバーサイド技術への依存関係がないため、構築やテストをどこでも行うことができる。インタラクティブな機能の実現には、ブラウザー上で動く標準のJavaScriptのコードを使い、再利用可能なAPIをHTTPS経由で呼び出すことで、外部のデータや、ページ自体に組み込めない機能にアクセスする。

 Jamstackの流儀のどこが斬新なのかを理解するために、まずはLAMPスタックについて振り返ってみよう。これまで15年ほどの間、Web開発といえばLAMPベースの構成が典型的だった。LAMPとは、Linux(Webサーバーの動作の基盤となるOS)、Apache(Linux上で動くサーバーソフトウエア)、MySQL(Webアプリケーションに必要なデータを保存するデータベース)、PHP/Perl/Python(サーバーサイドのコードを記述する言語)の略だ。LAMPベースのサイトにWebブラウザーからアクセスがあると、Webサーバーはサーバーサイドのコードを実行し、必要なデータをMySQLから取得して、Webページをその場で生成する。

 LAMPのアーキテクチャーでは、動的でインタラクティブなWebサイトを構築できるが、Webサーバーには高い処理能力が求められる。そのうえ、トラフィックが増えてきたら、必要な処理能力はさらに高まる。フル装備のサーバーといえども、動的なWebページの生成や読み込みには時間がかかる。現代人はスマホでWebを閲覧し、注意力の持続時間も短くなっているだけに、こうした遅さは次第に看過できなくなりつつある。

 2010年代半ばには、こうした動的なモデルで動くWebサイトへの反動として、静的なWebのムーブメントが起こり、Jamstackの流儀もその中で生まれた。Jamstackを理解するには、静的なサイトを支える現代のテクノロジーについて理解する必要がある。

↑ページ先頭へ