2013年7月4日木曜日

経理の異常な赤字 または私は如何にして心配するのをやめてMovableTypeを愛するようになったか

もうすでにさんざん語られてきた気がしないでもない

さて、私のデビュー記事は非難囂々なことになっている(予定)なので、少しはまともなこと書いてみたいと思います。
うーん、ブログで一人の記者が記事を連投するという罰当たりな。

さて、今回の話題はブログツールの代表であるWordPressとMovable Type(Open Source)です。二つともブログを始めようとする人にはよく知られたCMSだと思いますので、この二つについての説明は省きます。知らない人はWikipediaへGO、興味ない人は読んでも時間の無駄なのでさっさとタブを閉じませう
WordPress Movable Type

この二つのCMSの最大の違いは出力方法にあります。WordPressは動的出力、MovableTypeは静的出力です。ここら辺は分からない人が居ると思いますので、少し説明いたします。

静的出力とは、要するにHTMLファイルのことです。静的出力をするMovableTypeは、記事が投稿されると、記事内容をデータベースに格納したのち、テーマに沿ってHTMLファイルを生成します。
一方、動的生成とは、記事内容をデータベースに格納し、アクセスがあるたびに、データベースから記事コンテンツを引き出してきてデータを出力します。
自分でもわかるくらいひどい説明なので、料理にたとえて話すと、静的出力は注文があると作り置きの冷凍を暖めて出す方法、動的出力は材料を料理して出す方法と思えば少しはわかりやすくなると思います。

インターネットを見ているとほとんどのサイトがWordPressで、Movable Typeなんてほとんど見ませんし、プラグインやテーマもWordPressの方が圧倒的に多く、もうとりあえずWordPressで作ればいいという風潮ですが、この二つ、ちゃんと考えて選ばないと痛い目に遭うことがあります。え?Livedoor Blog? Blogger? fc2 Blog?棲まない、最近目が悪いんだ。

動的出力は、いちいちデータベースから記事を取り出すわけですから、遅い上にアクセス数が多くなるとデータベースが悲鳴を上げます。(=いちいち料理しないといけないので出すのが遅い、注文が殺到すると厨房がパンクする)

一方静的出力だと、HTMLファイルをダウンロードするだけですから、軽いですしサーバーの負担も少ないです。(=冷凍したのを解凍するだけなので早い、注文が多くなってもパンクしにくい)

要するに、WordPressはサーバーへの負荷が割とすぐに上がってしまいます。プラグインを入れているとなおさらです。キャッシングプラグインはそのあたりを若干ましにはしてくれますが、完全な解決策にはなりません。旧ロブ速が一度落ちたのもこの辺にあります。DoS攻撃によってデータベースへのトランザクションが多すぎ、サーバーに過剰な負荷がかかってしまったわけですね。

しかし残念ながら静的出力にも弱点はあります。静的、というのは文字通り静的で、ファイルを生成し直さないと内容が変更できないのです(全部冷凍しているので、替えがきかない)。従って、実を言うと静的生成はブログが苦手です。「最新記事一覧」をブログのサイドバーに入れることが多いですが、静的出力なのでその内容が更新されません。無理矢理入れようとすると今度は突然サーバー負荷が上がって死にます。その反面、動的生成はアクセスごとにデータを出力するのでそういったことはありません(注文の都度料理するので雑感の材料の変更がきく)。

そこでMovableTypeが考えたのが、「ファイルの一部だけを動的に生成しよう」というやり方です(材料ごとに冷凍しておいて、必要なものをまとめて解凍して盛りつければいんじゃね?)。たとえば、最新記事一覧などをSSIやPHPでインクルードし、動的に生成します。それだけではWordPressと同じなので、内容を一時的に保存(キャッシュ)し、定期的にそれを最新のものに変えてやる。そうすることで、純粋な静的出力より若干負荷が高くなりますが、いちいちデータベースに読みに行くよりも早いし、負荷も低いです。

しかしこれらをちゃんと設定するには、若干の知識を必要とします。それに、実を言うとMovableTypeの初期設定ではこの機能が有効になっていませんし、記事を公開するたびに全ファイルを作り直してしまうので、効率が悪くなっています。効率のいい設定方法は検索してくださいな。

結論

なんやかんやで、WordPressが無難。でもたまにはMovable Typeも思い出してやってください。

3 件のコメント:

  1. うん、昔は負荷を気にしてMovableTypeだったけど生成のコストが大きすぎる
    デザイン変えたら全ページ再生成だったもんな
    で、よくよく考えたら自分のページ見てる人間の数って多くないしMovableTypeのバージョンが上がって更新とかでsqlite使えなくなったりとかでWordPressにしてみるかって使ってみたら使いやすいんでやんの。
    sqliteがダメになった時点でMovableTypeに価値はなくなったよ。
    今はどうなんだろうね?

    返信削除
  2. 一番最初のブログブームの立役者だったよねMovable Type

    返信削除
  3. MTって同鯖に静的ファイルを書き出すのがいた時は重かったな

    返信削除