Magento2がリリースされて5ヶ月ほど経ちました。

4月には2016年のImagine Conferenceが開催される予定となっており、英文のブログや海外のイベントではMagento2でもちきりです。
弊社にも「Magento2で〜」というお話を多くいただくようになってきており、Magento1.xの初期と比べると日本国内のマーケットの感度も高いように感じます。

さて、そんなMagento2ですが実際のところはどうなのかというお話をしたいと思います。

今、選ぶならどっち?

これからMagentoでサイトを構築しようという方は、非常に難しい選択を迫られます。
Magento1.xとMagento2の比較を表にまとめてみました。 

 Magento1.xMagento2
PHP PHP5.4 / 5.5
(非公式で5.6 / 7)
PHP5.5 / 5.6 / 7
HHVM
Webサーバー Apache2.x / Nginx Apache2.2以降 / Nginx1.8以降
MySQL 5.5 / 5.6 5.6
パッケージ管理 PEARチャンネル composer
主なJavaScript
ライブラリ
prototype.js
script.aclo.us
ext.js
など
jQuery
knockout.js
require.js
など
総ファイル数
(ライブラリ含む)
約14,000 約40,000
メンテナンス期限 2018/11/18 未定
エクステンションの数 非常に多い 少ない
ケーススタディの数 非常に多い 少ない

どうしてもMagento2はリリースされてまだ日が浅いこともあり、エクステンションやケーススタディの数で劣ります。
これはどのアプリケーションでも同じことで、アーキテクチャが抜本的に見なおされた後というのは、旧世代との差が一時的に目立って見えてしまいます。

Magento1.xはその点で様々なエクステンションやナレッジがあるため、調べればある程度どうにかなるといえばなります。
そういう意味では

  • すぐにでもサイトを立ち上げてビジネスがしたい
  • 2018年末までにMagento2(あるいは別プラットフォーム)に移行することを想定している

という方にはMagento1.xをおすすめしています。
ビジネスを立ち上げて、そこで得られた利益を元手にして2年後に備えるという考え方です。

そうではなく、もっと長い時間軸で考えられる方にはMagento2をおすすめします。
対応しているPHPのバージョンや、アプリケーション自体のメンテナンス期限を考えると、2018年末はとても短い期限に見えます。
2年と少しの間にデータ移行も含めたサイト構築の総費用を捻出できないのであれば、Magento2で最初から構築したほうが総合的には安心かもしれません。

Magento2はMagento1.xより軽い?

Magento1.xがリリースされた2008年当時、PHPやサーバーの性能は今よりも低く、物理的なハードウエアを調達することが一般的でした。
当時のMagentoが要求していたサーバースペックは同世代のアプリケーションと比べてもやや高価な部類に入っていたため、開発費以外の初期投資がかかる印象でした。
その後、サーバー性能の向上に伴い、VPSやパブリッククラウドといったサービスが安価に利用できるようになり、Magentoを利用するために要する初期投資が格段に下がりました。

Magento1.xは例えば弊社の「」でもそれなりに快適にご利用いただけます。
Magento自体の性能が向上したこともありますが、チューニングをすることで、低スペックのサーバーでもかなり使えるようになりました。

では、Magento2はどうでしょう?
Magento2はCommunity Editionでもフルページキャッシュが搭載されるようになり、一見快速に動作するように思えます。
MageCore Inc.のブログ記事「Magento CE 1.9 vs Magento CE 2.0 Performance Comparison」でまとめられていますが、Magento2はMagento1.xよりも高スペックなサーバーが要求され、環境によってはMagento1.xより低いパフォーマンスになることがありえます。
Magento1.xが快速だったサーバーで、Magento2を動作させると、大幅にパフォーマンスが落ちる恐れがあるといえるでしょう。

どうしてMagento2のほうが遅いのか?

Magento2はより高度なアプリケーション設計を追求した結果、アプリケーション構造がMagento1.xよりも複雑になっています。
そのためにフルページキャッシュなどの高速化機構がないと、Magento1.xよりも遅くなってしまいます。

また、JavaScriptを多用する設計になったため、1ページを表示するために必要なHTTPリクエスト数が増えています。
HTTP2.0時代を想定しての設計であるといえばそれまでですが、より多くのHTTPリクエストを処理しなければならないということを念頭に置いたサーバーの選定や、ネットワーク構成の検討が必要になるでしょう。
要はそれだけの負荷を処理できる環境でないと、Magento2は重い・遅いアプリケーションに見えてしまう可能性がある、ということです。

それでもMagento2を選ぶ理由

Magento1.xが出た当時、「遅い」「重い」という声をほんとうによく聞きました。
それと同じことが再び起きている、といえます。
徐々にMagento2も改良され、より速く・快適なアプリケーションへと磨かれていくことでしょう。
それを待ってから使うというのも手です。
あるいは成熟しきったMagento1.xを使うというのも手です。もちろん今すぐMagento2を使うのもアリです。

ただひとつ言えることは、「Magento2はMagento1.xと同じ名前・思想で作られた異なる世代のアプリケーションである」ということです。
PCやスマートフォンのOSがバージョンアップした際に、旧世代のハードウエアでは快適に動作しなくなることがあるのと同じです。

開発側としてみると、

  • サポート期間の長さ
  • モダンなアプリケーション設計
  • 技術的な好奇心

という点が、どうしても先に立ってしまいます。
ECサイトの運営者としてみた場合は、それ以外に安定性やセキュリティ性、導入に関するコストなども重要な要素になってきます。
Magento2が話題だから、というだけで導入するのは、少々早いように感じます。