DrupalかWordPressか?- 最適なWebプラットフォームを選択する方法

code
Table of content

CMS機能比較 DrupalかWordPressか?

仕事において適したツールを選択することは重要なことです。ウェブの世界においてもこれは例外ではありません。ウェブ上において、CMSやWebフレームワークはリリース後もコンテンツ編集者、訪問者、その他ユーザーに重要な機能を提供し続けるため、比較的長期間にわたり利用される傾向があります。

※この記事は2013年のもので、最新の情報ではない場合があります。

SthlmConnectionでは、お客様のニーズを調査し、Web上における存在感を高めるための適切な方法を検討します。その後、それらを技術的に実現するための最適なツールを選定します。

私たちのお気に入りのツールはDrupalです。Drupalは数年にわたり、私たちに恩恵を与え続けるパワフルなオープンソースのCMSフレームワークです。 プラットフォームを選択する際には、良く知られているという理由だけでプラットフォームを選ぶべきではありませ ん。より広い視野を持つべきです。

使い古された表現かもしれませんが、

「もしあなたがハンマーしか持っていなければ、全ての物が釘に見える」

というのは本当です。

手段が目的になるのを避けるため、プロジェクトをスタートする際にはまず、目標とコンセプトを確実に定義し、その後にそれらを実現するために必要な技術的な検討することが必要です。

クライアントはある特定のCMSの使用を要求してくる場合もあります。それがDrupalの場合もありますし、WordPressの場合もあります。私たちはWordPressを指定してくるクライアントに対しては、WordPressで実現しようとすることは、すべてDrupalで実現可能で、Drupalを利用する方がよりメリットがあると説明します。

決して、WordPressを使用の使用をオススメできないと言いたいわけではありません。WordPressは非常に人気のある優れたプラットフォームであることは間違いありません。

ここでは、以下の事柄について考えていきます。
 

  • DrupalとWordPressの違いは?
  • それぞれのプラットフォームのメリットは何か?
  • どのようなプロジェクトにどちらのプラットフォームを利用すべきか?


DrupalとWordPressも、多くの選択肢のほんの2つに過ぎません。プロジェクトによっては、この2つより良い選択肢が存在する場合もあります。

よりシンプルなプロジェクトには、JekyllやTumblr(ちょっと意外かもしれませんが)という2つのプラットフォームが適している場合もありますし、非常に特殊なニーズや、より複雑な機能を持つプロジェクトの場合、はRuby on Railsが最適な場合もあります。

DrupalとWordPress の基礎知識

DrupalとWordPressには、いくつかの基本的な共通点があります。それらは、PHPで構築された人気のある、成熟したオープンソースのCMSです。どちらも、コミュニティによる強力なサポート体制と、コミュニティにより寄与されたアドオン機能が利用可能です。

WordPressの方が規模は圧倒的に大きいですが、Drupalも世界で最も一般的に使用されているプラットフォームの1つです。

Drupalは2001年に掲示板システムとして生まれましたが、WordPressは2003年にブログツールとして最初にリリースされました。そのため、Drupalはコミュニティサイトを構築するための機能を背景にしています。

一方、WordPressは記事の公開に最適化されています。その後、どちらのシステムも活用の場を広げてきました。特に、Drupalは長年にわたって汎用CMSとして利用されてきました。

プロジェクトの複雑さと最適なプラットフォーム

1


CMSを選択する際に考慮すべき最も重要な側面として、プロジェクトの範囲と複雑さが挙げられます。上に、各プラットフォームとそれらが適しているプロジェクトの範囲を概略図として示しました。

この図はあくまでプロジェクトを一般化して単純化したものであり、プロジェクトはさまざまなレベルで複雑になる可能性があります。例えば、メディアサイトはコミュニティサイトより複雑になる場合もあります。
 

各プロジェクトタイプ毎の具体例を以下に示します。

プロジェクトタイプ 適した事例
Brochure site デザイン重視の静的なパンフレット用サイト
Blog 簡単な投稿を表示するブログ
News / Media site 記事、セクション、作家、ブログなど様々なコンテンツがあるメディアサイト
Organizaion website プレゼンテーションページ、ニュース、メンバーページ、外部システムとの連携、多言語対応、が必要な組織のウェブサイト
Community Platform

ユーザー作成、ユーザーグループ、個別にカスタマイズされたコンテンツ、SNS統合が必要なコミュニティサイト

Web service

独自にカスタマイズされた機能、高度に個別化したコンテンツ、電子メール/ SMS /カレンダー/デバイス統合、プロジェクト固有のAPI、サービス指向アーキテクチャー、モバイルアプリなどの複数のプラットフォームへの対応


上の図においてなぜDrupalはWordPressより右側に位置しているのでしょうか? 一般的に、DrupalはWordPressに比べ、柔軟性が必要とされる複雑なプロジェクトを扱うのに優れています。

これには、いくつかの理由がありますが端的に言えば、Drupalは様々な機能やコンテンツタイプを統一されたデータとして扱う、より抽象化されたアーキテクチャーを持つからです。これにより、各要素をほぼ無限に用途にカスタマイズ、結合、統合する事ができます。

WordPressでは、コアの上に独自の機能をカスタマイズしてビルドすることができますが、それらの機能はDrupalほど統一されていません。そのため、Drupalのように異なるアドオンが提供する機能同士を組み合わせて、開発を行うことは、特別な開発を行わない限り困難です。

以下のような領域において、DrupalはWordPressより力を発揮します。

  • 強力なコンテンツモデリングシステム
  • Viewsモジュールで提供される柔軟な表示機能
  • ユーザー関連の機能(役割、権限、グループ)
  • 多言語対応、国際化対応


パンフレットサイトやブログのような単純なプロジェクトに、WordPressは非常に良く利用されています。WordPressはこの分野においては、優れたツールであるという事に疑いようはありません。

もちろん、これらのケースにDrupalを利用する事は可能ですが、もしあなたがまだDrupalについてあまり知らない場合は、Drupalを使うのは少々大がかり過ぎるかもしれません。

DrupalやWordPress以外の代替案

シンプルなプロジェクトでは私たちはJekyllがお気に入りです(Jekyllのプロジェクトも複雑かもしれませんが…)。これはしばしばWordPressの代替と見なすことができます。

JekyllはRubyで書かれたオープンソースの静的サイト生成プログラムです。静的であるということは、ライブサイトが常に速く、安全で、安定しており、保守メンテナンスのコストが少ないというメリットがあります。

デメリットとしては、コンテンツ編集者のためのオンラインインタフェースを提供していないことです。また、ログイン機能、コメント機能などのサーバーサイドが提供するWebアプリケーションとしての機能はありません。
しかし、最近はクライアントサイドのツールでも、かなりの事ができるようになってきました。

Tumblrは厳密に言えば、自分でサーバーにダウンロードしてインストールできる類のCMSではありません。これは、ページ投稿や、メディア作成に非常に優れたコンテンツ機能を提供する無料のブログサービスです。

Tumblrはブログの外観を自由にカスタマイズできます。つまり、コンテンツの構造があなたの求めるニーズに合ってさえいれば、独自ドメインを利用してサイトを構築できます。インストール不要、開発コストなし、保守メンテナンス不要、無料ホスティング、などのメリットはとても魅力的です。

ただ、プラットフォームの所有権は諦めなければなりません。理論上、Tumblrは一晩のうちに規約を変更したり、サービスを停止する事も可能です。しかし、Tumblrが十分に信頼に値するサービスであり、別のプラットフォームへ移行する必要がないと判断するのであれば、Tumblr素晴らしい選択肢になります。

Ruby on Railsは、WordPressやDrupalとは異なり、すぐに使用できるCMSソリューションではありません。 Railsは、強力で合理的なプログラミングAPIを使用してカスタムWebアプリケーションを開発できるアプリケーションフレームワークです。

CMSと比べて、すぐに使用できるとは言えませんが、アプリケーションについての制限が少なくなり、必要な機能をすばやく構築するのに役立ちます。これは、他のプラットフォームとは異なる、独自の機能を実装する場合などには良い選択肢になります。また、他のプラットフォームと統合する必要のあるモバイルアプリ、ソーシャルメディアアプリ、サードパーティなどのバックエンドとしても最適です。

リリースにかかる予算と時間の比較

2


WordPressと比較した場合、Drupalはその柔軟性と複雑さのため、インストールしてサイトを立ち上げるまでに時間がかかります。 一方、WordPressは非常に早くサイトを立ち上げる事ができます。特に、すでに必要な機能がすでに含まれているテーマを利用する場合にはカスタマイズは一切必要ありません。

Drupalの場合はすぐに使用できるという訳にはいきません。通常、簡単なサイトであっても多数の拡張モジュールをインストールし、テーマを独自に作成する必要があります。 Ruby on Railsのようなフレームワークでは、通常は開発時間が長くなります。

なぜなら、それは毎回、まっさらなキャンバスから始めるようなものだからです。これはDrupalやRuby on Railsの欠陥ではありません。開発を行う上で仕方ない事と言えます。

WordPressの簡単さは、WordPressの持つ機能があなたのニーズと完全に一致しているという状況下に限って言えば利点と言えます。カスタムのJavaScriptを追加するなど、フロントエンド開発においてデザインを作成するという面に関しては全く問題はないでしょう。追加のバックエンド機能を実装する事も可能です。しかし、先に述べたようにこれは完全に真実とは言い切れません。

アプリケーションの拡張に伴い、開発者はWordPressのコアシステムから離れたカスタマイズを行うことなります。そうなると、管理がますます困難になる危険があります。

簡単な解決策の選択が長期的に見た場合に、結局はコストの増大を招く

という事にもなりかねません。

予算がタイトな場合、最初に行うべきことはプロジェクトの範囲を限定し、最も重要な部分に焦点を当てる事です。(新しいサイトを制作するより、SNS上での積極的な宣伝活動の方が重要かもしれません。)限られた予算でできるだけ多くの機能を製品に組み込もうとするよりも、基本を正しく理解することが重要です。

また、それとは別に、今後どのようにプロジェクトを進化させるかを検討する必要があります。もし、あなたのニーズがかなり単純で、将来的に目指すものが明確であるならば、WordPressは正しい選択かもしれません。

Tumblrも同様に非常に効率的なソリューションかもしれません。Jekyllでは、通常は手作業でウェブサイトを作るので、最初はそれほど簡単かつ迅速とは言えないかもしれませんが、一度サイトを作成後にはメンテナンスやホスティングの費用はほとんどかかりません。

ユーザビリティの比較

コンテンツ制作者の使いやすさの観点でWordPressは称賛されます。一般的によく言われるのが、これがWordPressの強みであり、Drupalの弱点であるということです。コンテンツ制作者は通常、WordPressのような簡単で使い慣れたコンテンツ編集インターフェースを好みます。

この理由としては、多くのユーザーがWordPressサイトによるコンテンツの管理方法を一度学んでいるからです。WordPressには iOSとAndroidで利用できるモバイルアプリもあり、編集者は外出先でWordPressサイトのコンテンツを投稿することができます。

Drupalのコンテンツ編集の機能もそう悪くはないのですが、それほど素晴らしいものではありません。 (Drupal 8ではこの点が大きく改善されました。)WordPressと比較した場合、大きな違いとしては、Drupalではコンテンツ編集の操作が各ウェブサイトの構造に非常に依存していることです。 Drupalのコンテンツ編集画面は、ある特定の種類のコンテンツのへの特化を少なくしているため、コンテンツ管理インターフェイスはより一般化されています。

コンテンツエディタをインストールしたり、コンテンツを一覧表示するカスタマイズされた管理ページを作成するなど、これらを改善するのは開発者側の仕事です。幸いにも、これはさほど難しいことではありません。

Tumblrには素晴らしいUIがあり、コンテンツを投稿するための非常に滑らかなに動く、モバイルアプリもあります。 JekyllにはUIはありません。基本的には、コンテンツを単なるテキストファイルとして編集するだけですが、Proseというウェブインターフェースを利用し、Github上のコンテンツを管理するための、プロジェクトもあります。

Railsでは、UIは完全に開発者の範疇です。実際、この点に関しては、自動的にサイト管理者に基本的な拡張可能なコンテンツ編集UIを提供するRailsAdminなどのパッケージを利用することで通常は簡単に実装可能です。

開発プロセスの比較

3


CMSとによる開発をする上で結局はプログラミングが必要になります。さまざまなプログラミング言語でソースコードを書いて、プロジェクトの構造と機能を定義します。

一般的にソフトウェア開発者と同様にWeb開発者はコードを構造化し、コラボレーションを可能にし、長期間にわたり、継続的に変化するプロジェクトを扱うための優れたツールを持っています。たとえば、Gitのようなバージョン管理システムでは、チームはファイルのバージョン間の違いを比較し、同じファイルを同時に独立して編集し、異なる環境(開発環境、テスト環境、本番環境)に変更をプッシュできます。

JekyllとRuby on Railsはどちらも完全にコードドリブンであるため、Gitなどの開発ツールの使用が自然に行われます。しかし、WordPressやDrupalはコードを書くことなく、主に管理者用のインターフェースを通じてサイト構造を設定できるサイト構築ツールです。

作成されたサイト構造は、すべてのコンテンツ、ユーザー情報、およびその他のデータと共にデータベースに格納されます。これはソフトウェア開発において一般的に利用されている、持続可能なワークフローのかなり大きな部分を利用できない事を意味します。

データベースドリブンのアプローチは、開発者が一人で最初から新しいウェブサイトを構築する場合には最も効果的です。しかし、複数のメンバーで開発を行う場合を考えてみてください。もし、チームでサイトを構築する場合には、チームメンバー全員が最新の更新が完全に適用された状態のサイト上で作業を行う必要があり、お互いの作業がバッティングしないように注意する必要があります。

もう1つの問題としては、既に稼働しているサイトに対をオフラインにすることなく、大がかりな変更する加える必要がある場合です。このような大きな変更を本番環境に適用する前には、まず別の環境で開発し、テストする必要があり、これらは困難な作業です。

この状況を改善するために、DrupalにはDBに保存されたサイトの設定を、自動的にコードとしてエクスポートする機能があります。(Drupal 8ではこの問題に特化したコア・イニシアチブがあります。)スクラッチで作成したコードと一緒、これらのコードをバージョン管理することで、チームのコラボレーションや新機能の迅速なデプロイが可能となります。これはDrupalをWordPressと比べた場合のとても大きな利点です。

実際、大規模で複雑なウェブサイトをこれらを利用することなく、開発することは本当に難しいでしょう。 (一方で、WordPressは、サイトビルダーに利用可能な管理画面UIが少ないため、データベースドリブンによるのアプローチの影響をあまり受けません)。

しかしこれは、必ずしもDrupalが開発者にやさしいプラットフォームという意味ではありません。Ruby on Railsなどのシステムは、合理化された開発を基本目標として構築されていますが、Drupalは他のCMSと同様に、主に強力なWeb UIを提供することを重視しています。

これらは、エンドユーザーやサイトの所有者はあまり意識する事のない問題ですが、プロジェクトが持続可能な優れたワークフローで運用されており、継続的な開発が可能かどうかは重要です。

ホスティングと保守メンテナンス性の比較

DrupalとWordPressは一般的なLAMPスタック上で稼働します。一般的に、Drupalはより多くのサーバーリソースを必要としますが、実際にどの程度必要なのかは、Webサイトに依存します。Drupalを稼働させることができる、手ごろな価格のホスティング会社を見つけることは簡単です。

Jekyllは単に静的ファイルを扱うことができるWebサーバーが必要なだけなので、非常に安価で簡単です。 Tumblrは無料ホスティングが利用可能です。 Ruby on Railsは一般的にホスティングプラットフォームに対する要求がやや高いですが、Railsのサポートに特化したホスティングソリューションも数多くあります。

Webサイトのメンテナンスにはさまざまなものがありますが、最も一般的な作業はパフォーマンスの監視と最適化、コアシステムとアドオンモジュールのセキュリティ更新です。DrupalとWordPressのメンテナンスプロセスは非常によく似ています。

1つの違いは、WordPressはよりセキュリティ上の脅威にさらされていることです。そのため、常に最新のセキュリティ更新プログラムを適用し、システムを最新の状態に保つための注意が必要です。 Ruby on RailsはDrupalやWordPressと同様のメンテナンス上の課題を抱えています。

JekyllとTumblrは基本的に静的ファイルとしてホストされ、後者はTumblrサービスで処理されるため、メンテナンスは必要ありません。

結論

Webプロジェクトに最適なプラットフォームを選定する際の検討項目は、この記事中で説明したように以下の事を考慮する必要があります。

  • プロジェクトの要件と複雑さ
  • 予算とリリース時間
  • 開発プロセスとプロジェクトの持続可能性
  • ホスティングとメンテナンス


これらの項目とは別に、あなたのチームがすでに持っているスキルと知識を考慮する必要もあります。 新しいプラットフォームの学習は楽しく、大切な事です。しかし、予算や時間の制約がある場合には、すでに知っているツールを使用するしてプロジェクトの要求を満たす事ができるのであれば、それを利用する方が効率的です。

この比較が役立ち、次のプロジェクトに適したプラットフォームを選択するのに役立つことを願っています。

終わりに

主に開発者目線での記述ですが誇張のない、非常にまとまった内容です。データベースドリブンならではのメリット・デメリットは確実に存在しますが、ANNAIではDrupalの開発をコードベースドリブンで行う試みを始めています。

また、NTT Communications様との取り組みでは、コードベースからWeb管理画面UIを逆生成することにもチャレンジしてDrupalのメリットを最大限活かす実装も実現しています。「NTTコミュニケーションズ IoTプラットフォーム」「NTTコミュニケーションズ APIデベロッパーポータル」の事例を参考にご覧ください。

(Photo by Glenn Carstens-Peters on Unsplash)

 
フッターの採用情報