🎃
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するだけで安定したものを公開
👍 万が一ソースコードにエラーがあったとしても、デプロイ作業が途中で止まり、
前回のデプロイ成功されたものが公開され続けるので安心