microCMS

GitベースのCMSとAPIベースのCMSの比較

エンジニアリング
2019/12/11 柴田 和祈

JAMstack Advent Calendar 2019の11日目の記事です。

また、本記事は Git-based CMS vs. API-first CMS: Which Headless CMS Should You Choose? を翻訳したものです。
(提供元には事前に許可を得て掲載しています)

==========

世界中がクラウドにシフトしている中、CMSはおよそ20年間、古い技術・アーキテクチャのままでした。
しかもそれらは今でも動作しており、WordPressは全Webサイト中で34%のシェアがあります。

イノベーションとより良いデジタル体験の需要の高まりにより、モダンなフロンエンドツールは、より軽くて速くてセキュアなサイトを構築できるようになりました。
でもあなたのウェブサイトのコンテンツは依然として前のままですよね?

是非ヘッドレスCMSの世界に足を踏み入れてみましょう。
ヘッドレスCMSとそのエコシステムを踏まえつつ、GitベースのCMSとAPIベースのCMSについてこれらの違いや利点、課題を解説します。

GitベースのCMS


GitベースのCMSでは変更があるとまずGitリポジトリにpushされます。
何もしなくても自動的にGitリポジトリ内でファイルの管理をしてくれます。
長所・短所を見ていきましょう。

長所

  • 全てのコンテンツのバージョン管理ができる
  • 全てのコンテンツはフラットなファイルとして提供されるため、エンジニアは普段使っているツールを使用できる
  • ロールバックが容易である
  • 既存のGitベースのワークフローなため、多くのWeb開発者にとって馴染みのアプローチである
  • ベンダーロックインがない
  • 容易に構築できる

短所

  • コンテンツを複数のアプリ・Webサイトで使うのには向いていない
  • 大量のコンテンツがあるならデータベースを使いたくなるかもしれない
  • 毎分単位でコンテンツの更新が必要な場合は向いていない
  • オプションが限られていて、コンテンツのモデルや形式を越えるような操作はやりづらい


APIベースのCMS


APIファーストなCMSでは、コンテンツを取得できるAPI(一般的にはREST APIまたはGraphQL)にアクセスすることができます。
よって、あなたは構造化されたデータを取得できる上に、どんな言語、フレームワークを使おうとも自由です。

長所

  • 複数のアプリやウェブサイトでコンテンツを一括管理するのに向いている
  • 複数のフロントエンドでコンテンツを扱うのが簡単
  • たくさんのオプションがあるので、好きなようにCMSをカスタマイズすることができる
  • 膨大なデータを扱うことができる

短所

  • Gitによるバージョン管理がされない
  • Gitベースのワークフローがない
  • たいてい、ストレージやAPIリクエスト数のリミットがある
  • 大きな変更を伴う開発にも依存してしまう


次にこれらのシステムの利点と課題を見ていきましょう。

GitベースのCMSの利点

複数オブジェクトのバージョン管理が可能

Drupal、Kirby、WordpressといったCMSは限定的なバージョン管理機能を持っています。
それは単体オブジェクト、もしくは不完全なデータ構造の管理を意味します。
ブログやシンプルなサイトなど、通常のコンテンツ管理においては特に問題はありません。
しかし、現代においてほとんどのブランドに必要なマルチアセットなデジタル体験を提供することはできません。

多くの場合、コンテンツとソースコード(CSSやJavaScript)の間には関連があり、これを考慮する必要があります。
あるタイミングにおける編集内容をトラッキングするだけでは不十分です。

ファイルを以前のバージョンにフォールバックする機能は、基本的なコンテンツの編集には適していますが、法的監査、会社のブランド変更といったより高度なCMSを必要とする現実のシナリオには適していません。
そのため、プログラミング空間のような複数オブジェクトのバージョン管理が必要です。
またGitはソースコード管理において最も人気のあるバージョン管理システムであり、今日のデジタル体験にはコンテンツと技術コンポーネント両方の管理が必要なのです。

分散型のリポジトリ

従来のCMSモデルとは異なり、Gitを使用すると開発者は独自のローカルリポジトリを所有でき、それらはすべてリモートリポジトリから生成されます。
バージョン管理とワークフローの共有は迅速かつ簡単です。
GItベースのシステムを使用すると、開発者ローカル環境で作業でき、かつそれがCMSの一部となります。
開発者は日常的に利用している好みのツールを制限なしに使うことができます。

ブランチ機能

ブランチ機能のおかげで、プレビューとほぼ無制限のステージング環境を作成でき、開発が容易になります。
開発者も編集者も主要な機能追加やサイトの改良を実験しつつ作業できます。

APIベースのCMSの利点

マルチデバイスでコンテンツを顧客に届けられる

多くの人がAmazon EchoやGoogle Homeといった音声支援デバイスを使用してニュースを聞いたり、オンラインで買い物をしたり、タスクを設定したり、ウェブを検索したりしています。
従来のCMSプラットフォームではこのような体験を提供できませんが、APIベースのCMSであれば可能です。
必要なのはそのデバイス用のAPIを開発し、つなぎ込みをすることだけです。
デバイスに制限は全くありません。

より良いマーケティングインテグレーション

API駆動の環境のおかげでマーケティングオートメーション、CRM、分析などの最も人気のあるマーケティングツールを自由に統合できます。
また、いつでも削除できます。
これによりデジタル体験プラットフォームを適切な方法で迅速に変更することができます。

コンテンツ再利用の高速化

APIベースのCMSを使用すると、すべてのコンテンツが一元的に保存されるため、コンテンツを任意のチャネルに配信できます。
コンテンツの作成者はコンテンツを1度作成するだけで任意のデバイスに再利用できることを意味します。
昨今のオムニチャネルな世の中においては、各チャネルごとにコンテンツを個別に作成する必要がなくなることで、多くの時間を節約できるのは大きなメリットとなります。

GitベースのCMSの課題

SEOのための特別な措置が必要

GitはSEOを改善するための特定のサポートがありません。
検索順位を上げるには、サイトマップの生成、metaタグとOGPの使用、モバイルフレンドリーなテーマの作成など、いくつかの手順を実行する必要があります。

GitHubはプラグインを実行しない

GitHubはプラグインを走らせてくれません。
何らかをカスタマイズする必要がある場合、ローカルで生成されたコンテンツをプッシュすることで簡単に軽減できます。

APIベースのCMSの課題

Web開発者に依存しすぎる

カスタムなフロントエンドを作成する必要があると、チームの作業量が増えます。
また変更が必要な場合は、マーケティングチームとWeb開発チームの間でコミュニケーションが必要です。

コンテンツプレビューが問題(一部のCMS)

APIベースのCMSソリューションには、コンテンツ作成者がコンテンツを入力できるエディターが付属しています。
ただしプレビューを実現するには、事前にプレビュー用の実装を自分で設定しておく必要があります。
また、中にはプレビュー機能がまったくないCMSもあります。
ユーザー側からページがどのように表示されるのかを確認できないのはかなりの不利です。

コストがかかる

APIファーストのCMSを使用する際には、インフラのコスト(ホスティングサーバーやCDN等)に加えて、開発、メンテナンス、セキュリティのコストも必要です。

結局、どのヘッドレスCMSを選ぶべき?

この答えは簡単ではありません。
例えば、数百の記事を作成し、数秒ごとにWebサイトを再構築する必要がない場合、GitベースのCMSの方が優れているでしょう。
もちろん、プロジェクトのニーズ次第です。
プロジェクト開発者・マーケティング担当者は、プロジェクトの規模、予算、開発期間を理解するだけでなく、その背後にある技術も理解して判断しなくてはなりません。

Gitベースのリスト


APIベースのCMSリスト


==========

おわりに

弊社が開発しているmicroCMSはAPIベースの日本製ヘッドレスCMSです。
日々改善を進めていますのでご興味ある方はぜひ触ってみてください。

ご意見・ご要望は管理画面右下のチャット、公式Twitterメールからお気軽にご連絡ください。

ABOUT ME

柴田 和祈
microCMSのデザイン、フロントエンド担当 / ex Yahoo / 2児の父 / 著書「React入門 React・Reduxの導入からサーバサイドレンダリングによるUXの向上まで 」 / JAMstack