p-t-a-p-1

🎃

Jamstackについて

2022/03/31

Jamstackとは以下の技術を持った設計の考え方のようなものです。

  • クライアントサイドはJavaScript
  • API(再利用可能なもの)
  • Pre-Rendered Markup(事前にビルド)

基本的な情報はHTMLとして埋め込み、
必要な部分はその都度JSを使ってバックエンドとやりとりします。

メリット

パフォーマンス

HTML化したコンテンツ(静的ファイル)をCDNに直接配置することができるため、
サーバ環境に依存せず安定して高速にページを表示することができる

👍 サーバーサイドで動的処理を行う必要がない
👍 CDNに配置するので障害が少なく大量アクセスに耐えられる

セキュリティ

コンテンツ管理のDBやサーバーのセキュリティは
サードパーティのサービスが処理してくれます。

👍 サーバーサイドは基本的にAPIとして提供されるため、攻撃範囲が限定的

開発体験

WPなどのサイト構築では、
レンタルサーバーにFTPでファイルアップロードする事が多いと思います。

FTPアップロードは以下の特徴があります。

  • 基本人力
    → 手動アップロード
    → GitHub Actionsで自動FTPアップロードもできるが設定が少し手間
  • 複数人で作業するときは毎回確認しないといけない( 先祖返り が発生する恐れ )

Jamstackの場合、
CI(継続的インテグレーション)でCDNに一気にデプロイします。

→ 上記をまとめてやってくれるサービスとして今回はNetlifyを使います
→ 他にはAmplify, Vercelなど...

基本的にGitHubやBitbucketなどのソース管理と連携することで、
あとは自動でデプロイされるようになります。

👍  複数人で開発しても先祖返って公開されることなく、
開発者はソースコードをpushするだけで安定したものを公開

👍  万が一ソースコードにエラーがあったとしても、デプロイ作業が途中で止まり、
前回のデプロイ成功されたものが公開され続けるので安心

BLOG一覧へ