0.はじめに
ヘッドレスCMSとは、既存のCMSとは違い、フロントサイド(ビュー側)が存在しない、またはフロントサイドを別システムに依存して運用する事が出来るコンテンツ管理システムの事。
詳しくはこちらのmicroCMSの記事が分かりやすいです
▶ https://blog.microcms.io/what-is-headlesscms/
1.SaaS上でのヘッドレスCMSのメリット
ヘッドレスCMSでシステムを構築するメリットは、まずマイクロサービスに通ずるものもありますが、フロントとサーバーを切り分けて開発する事が出来る点です。
よくある既存のシステムがサーバーで処理したデータをフロントに渡し、ビューを表示させるのに対して
ヘッドレスCMSでは、システムが用意するのは、サーバーサイドでデータを処理して公開するAPIで、
フロントは、別システムとして切り出して用意する、またはエンドが自身でカスタマイズしたビューを作成する事が出来ます。
これによるメリットは
①フロントのカスタマイズ性が向上する事
依存関係が少なくなり、サーバー側はデータの全てをAPIで公開するため、フロントのデザインはもとより、どのような形でデータを表示させるかまで、フロントのみでカスタマイズする事ができ、
また、場合によってはサーバーサイドは、APIとしてのみCMSを提供し、残りのフロントはエンドに用意させることができます。
またSaaSに関してのみでいえば、既存のフロントビューはそのまま提供し、一定度以上のカスタマイズが必要であれば、独立したフロントビューを構築する事で、既存のシステムへの影響を極力小さくしたうえでエンドにシステムの提供をすることができます。
②フロントとサーバーの開発の切り分けがしやすくなる
①に通ずるものもありますが、フロントとサーバー間での依存関係は、APIによるものだけなので、
サーバーサイドは、あくまでデータを処理、出力するAPIを提供するだけで、
そのデータの整形や表示は、完全にフロントで行う事になります。
それによって、サーバー側はこのデータを返すもの、という想定さえあれば、フロントとサーバーを完全に切り分けた開発が可能になります。
また全ての処理をAPI化する事によって、ドキュメント化の敷居が下がる事にもつながります。
③静的なホスティングを可能とする
これは、構築によりますが全ての動的処理がAPIを通してJS等で処理できるのであれば、
フロントサイドは静的サイトとしての要件を満たすため、ひいてはCDNでの配信も可能になります。
S3とLambdaとDynamoDBを連携させた静的ホスティングなども、これの一つだと考えられます。
完全に静的なホスティングをS3で行い、データの取得、処理、書き込みは全てLambdaを経由したAPIで行うため、
CloudFrontでのCDN配信も可能であり、またフロント(S3上の静的サイト)と、サーバーサイド(Lambda+DynamoDB 実質サーバーレスだが?)での処理は、分けて考える事が出来る。
2.おわりに
既存システムを全てAPIで連携させることは、マイクロアーキテクチャの構築の基本だと思われるが、
それに加えて大規模なシステムではCDNで静的な配信が可能な領域を増やす事も、また1つの課題であるため、
それを一挙に可能とするヘッドレスCMSは、今後数年に渡って、Webアプリケーションの基本となっていく(ような気がする)
他の記事も是非どうぞ