サイドスリーブログ

PowerCMS X がやってきた


                PowerCMS X がやってきた

こんにちは、地面と衝突しまくってなかなかエースコンバット7が進まない系エンジニアのせんせーです。
今作ちょっと対地作戦多すぎじゃないですかね?(役員の白石も困ってました。)

さて、弊社が取り扱うCMSのなかでもMovable Type(以下「MT」)、PowerCMSはかなり比重が大きいのですが、昨年末突然PowerCMS Xがリリースされ、これはかなり大きなニュースでした。
このXはこれまでのPowerCMSの後継バージョンではなく、完全に別のCMSという立ち位置です。いろいろ今までとは違うようなので、弊社でも検証をすすめているところですが、実際の制作案件で取り扱うのが非常に楽しみです。

今回はそんな新製品についての記事ですが、文字多めでお届けします。
と思ったけどさすがに文字多すぎたので三行に要約すると、

  • 動作も軽くていろいろ融通きくし、触ってて楽しい
  • 全体プレビューなどお客さまが本当に欲しい機能がちゃんとある
  • 情報少ないけど意外と現行のナレッジでやれそうな感じする

です。

製品発表会にいってきました

というわけで早速情報収集のため、メーカー主催の製品発表会in大阪に行ってきました。
予想以上に具体的な話が聞けて、われわれのような制作会社の人間にとっては大変有意義な会でしたが、CMS利用者として来ていた企業の方は完全に置いてけぼりだったんじゃないかと思います。
普通に技術の勉強会でした。

いろいろ注目すべき点はありましたが、特に3つくらい挙げるとこんなところでしょうか。

■管理画面の動作が軽快、再構築も早い

これはMT系に限らずCMSを触っている制作会社、利用するユーザーにとってもわかりやすく切実なポイントだと思います。
基本的にCMSって載せるサーバーのスペックが高ければ早い、低ければ遅いものですが、提示されたベンチマークを見る限りでは、そこまでハイスペックマシンを用意しなくても安定した動作が期待できそうです。

参考:PowerCMS Xベンチマーク

個人的な感覚としてはEC(AWS)の2t.nanoでMT、PowerCMSを動かすのは苦行、t2.smallならなんとかという感じです。
※ベンチマークはt3なのでちょっと違うとは思いますが、まあ10倍違うってこともないでしょう。
テンプレートの作りにもよると思うんですが、記事が1000件あって全体再構築が1分前後で終わるならかなり頑張ってる実装だと思うのですが。それがXなら10秒で終わるらしいので、本当なら目が点になる速さです。

というかこのスコアならt2.nanoでも全然行けるんじゃないの……この辺は社内でも試してみる必要がありそうです。

■コンテンツの設計が自由にできる

MTでいうところの記事、ウェブページ。WordPressでいう投稿や固定ページのことですね。
もともとPowerCMSには「カスタム項目」という、コンテンツの種類を拡張できる仕組みがあり、この点で大きくMTと差別化されていました。
WordPressにはカスタム投稿がありますね、あんな感じですが、その辺りの仕組みがすごく強化されたという話。

それ、他のCMSにも似たようなのあるよねといえばそうなのですが、PowerCMS Xがすごかったのは、データベースの設計自体ができてしまうということです。MTもWordPressもそうですが、カスタムフィールドやらカスタム投稿やらゴリゴリカスタマイズしていくと、ほにゃららmeta的なテーブルが肥大化していきます。これ、カスタムフィールドにいれたデータどこに入ってるのかわからなくなっちゃうんですよね。
そうではなくて、新しいコンテンツ(PowerCMS Xではモデルといいます)を作ったら、専用の新しいテーブルができて、各カラムのデータ型やインデックスなども自分で設計できるようになっていました。

多少RDBMSの知識は必要になると思いますが、意外と初めてでもとっつきやすく直感的に操作できるUIに仕上がっています。管理画面にphpMyAdminがまるごと入ってるような感じといったらいいんでしょうか。コンソールのいわゆる黒い画面を操作するのが苦手な人にもこれは嬉しいと思います。

まあエンドクライアントにはあんまり関係ない話かもしれませんが。。

■完全なプレビューができる

これは本当にすばらしかったです。

なにか新しい記事をつくりました、あるいは更新しましたという時、必ずプレビュー確認するかと思います。
その記事を投稿したことで、一覧ページはどのように表示されるか、標準機能で確認できるCMSって意外と少ないです。

カテゴリ一覧はどうなる?日時指定で公開・非公開にする場合、何月何日のこのページはどうなってる?すでに公開している記事のこの画像をこの時間に自動で差し替えたいけど、これどうなる?そういったプレビューが全部できます。すばらしかったです。

詳細はこちら

ステージング環境をたてる理由っていくつかあると思いますが、そのうちの1つに、完全にできあがったサイトを確認してから公開したいっていうのがあるかと思います。もしサイト全体のプレビューができるならステージングいらないよということであれば、運用サーバを一個減らせるかもしれません。

他にも承認フローが多段階・直列申請可能に強化されていたり、パス変更によってゴミファイルが残ったりしない作りになっていたり、メールフォームが簡単につくれて結果集計もできたり、盛りだくさんでした。

デモ環境作ってみました

さて、では実際の構築作業はどんな感じかなということで、AWSでデモ環境をひとつ作ってみたのですが、やっぱり少し勝手は違います。
インストール自体は別に難しくないですが、やっぱりいままでの別バージョンではなく新製品という感じがします。マニュアルを読みながら手探りですね。

でもPerlモジュールの用意とかpsgi環境がどうとか考えなくていいのは楽です。たぶんapacheかnginxとPHP+MySQLくらい入れとけばなんとなく動く感じじゃないですかね?

モデルの設計はシステム全体に影響を与えるので、いわゆるカスタムフィールドをぽこぽこ追加していくのよりやや気を使う感じでした。
英語の名前をつけて、翻訳データを作ってというのも普段あんまりやらないのでちょっと面倒。。
最初の環境構築は、従来よりも手間がかかるかもしれません。

ただテンプレートの開発は、予想外に楽です。従来のMT、PowerCMSとほとんど変わらないですね。
個人的にはMT7のコンテンツタイプを使った開発より簡単だと感じました。

当然使えなくなったタグやモディファイアなどあるとは思いますが、新規開発の場合は特に不便を感じることもなさそうです。
開発にあたってこれまでの知見は十分活かせると思います。

あと製品発表会でもすごく強調されていましたが、管理画面内の遷移は早いです。
実際に自分で作った環境で体感できたのは嬉しいですね。

「記事」モデルの編集画面です。この1画面で、このコンテンツはどんな要素を持っていてどのように振る舞うのかを色々設定できます。

まとめ

触ってみた感想としては、非常に面白いツールです。開発者としても、実際に利用するユーザーにとっても、まさにこれが欲しかったという要素が沢山あります。

ただ完全に新規の製品なので、不安もあります。Google先生に聞いても基本的になにも出てきません。やっぱりユーザー数は大きな力だし、枯れるまでちょっと大変そうだなあというのが正直なところです。

とはいってもメーカーとしてもそれはわかっていて、メインの開発担当者(※社長)がBacklogに張り付くなど手厚いサポートを用意しているので、明日からこのCMSで開発してねと言われても、まあなんとかやれるんじゃないでしょうか。実際すでに進行している案件もいくつかあると聞いています。

逆にこのタイミングなら、案件ベースで「こんな機能が必要」と主張したら実装される可能性が高いので、意外と狙い目かも……?
もしCMSの選定にお悩みの案件があれば、一考の価値はあるかと思います。ぜひご相談いただければ幸いでございます。