書いた人:たなべ
0041を読まれた方はご存知のとおり、Ruby のメジャーバージョンが 2.0 へと上がり、Rubyist Magazine ではリリース特集記事を掲載しました。
このめでたい記事の裏で、実はこんな感想も聞かれてました。
「Ruby 2.0.0 のリリース特集をしているるびまの Hiki が Ruby 1.8.7-p302 で動いているというのはなにかの冗談なの?」
この件は指摘を受けるまでもなく実は編集部では周知の事実で、これまで何度か開催された編集者による会議でもバージョンアップや Hiki の機能強化、もしくは Hiki ではない新たな仕組みへの移行というのは繰り返し課題として挙ってきました。しかし、残念ながらるびまのリリースを行いつつ、並行してこの移行を進める余力のある人はおらず、変えたいなーと言いつつもここ二年ほど何も変えられなかったのが実情です。
さて、ここでこの記事の右下を見てほしいのですが、(何ごともなければ) 「Powered by Ruby 2.0.0-p195 (2013-05-14).」の文字が燦然と輝いているはずです。Ruby のバージョンがあがっただけでなく、実はサーバも Sqale 上で動くように引越しをしています。Hiki のバージョンも 0.9dev から 1.0.0 へと上がり、中身はこれまで通りですが足回りはごっそり入れ替わった新生るびまとなっています。
この記事では、あまりふだん皆さんの目に触れることのないるびまの裏側を紹介しつつ、この積年の課題だった Hiki の移行を実現させてくれた hsbt さんと znz さんに御礼を言いたいと思います。
「Ruby のバージョンが古いなら Ruby だけバージョンアップすればいいんじゃない?」と思った方もいるかもしれません。それができればかんたんだったのですが、歴史的経緯によりるびまはそれがなかなかむずかしい環境で提供されていました。
今回の移行を機に http://jp.rubyist.net/magazine/ から http://magazine.rubyist.net/ へとドメインも移ったわけですが、この旧環境のサーバはいろいろなものが相乗りするサーバでした。jp.rubyist.net を dig & whois するとわかるのですが、旧るびまサーバは NaCl さんのもの1へ間借りをして運営しており、たとえば Matz にっきも同じサーバで動いていたりしたのでした。
サーバ管理をしてもらえるというありがたさがある反面、相乗りゆえの不都合もあり、「気楽にログインユーザーを増やせない」「障害対応ができない」「共有コンポーネントを更新すると影響がわからないのでけっきょく変更できない」というあたりは数年来の悩みごとでした。
2013 年の 3 月 17 日に編集会議が開催され、そこでも何度目かの移行の必要性が議論されました。当初はるびま編集部内の有志で面倒をみて移行をしていこうかという流れだったと記憶しているのですが、「るびま用に sqale を借りてもらえないか日本 Ruby の会に問いあわせる」のあたりを皮切りに一気に hsbt さん主導の移行へと動いていきます。
ここから急激に移行の作業が進んでいきます。その勢いのほどは “enhancement” ラベルや “magazine.rubyist.net” ラベルの issue たちが物語っていますが、一日を終えてふとメールボックスを見ると 20 通くらいるびまの移行関連のメールが流れているといった状況でした。
作業自体は、構成も過去の経緯もよくわからないシステムをひたすら現行動作から読み解いて、あるべき動作を定義して移行していくというどこに出しても恥ずかしくない立派なレガシーマイグレーション案件となっており、仕事でやるにしても好んでやる人は少ないような作業を怒濤の勢いで消化していく hsbt さんの様子を irc で眺めていると、ふだんの仕事の様子まで目に浮かぶようで、個人的にも貴重な体験でした。
途中からるびまでは著者としてそして編集者としてもおなじみの znz さんも本格的に参戦し、Hiki 本体も巻き込んでの新生るびまづくりが進んでいきました。三年近くもわかっていながら手が付けられなかった課題が一ヶ月半ほどでほぼ主要な問題はつぶれていたと書けば、そのスピードのすごさを感じてもらえるでしょうか。
そういうわけで、皆さんがご覧になっているこのるびまは、足回りが新しくなった新生るびまとなっています。今後、読み手にうれしい機能追加もあったりするかもしれませんが、もしそういったものを見かけたら、その裏には hsbt さんと znz さんの活躍があったことを思い出してもらえればと思います。
旧るびまでのアクセスも当面は可能にしておきます。ただし、旧るびまのほうは 0041 号を最後に新号が更新されることはありません。新るびまが安定して動作していることが確認できたところで、旧るびまから新るびまへリダイレクトをかけるようにする予定です。
二周目の Rubyist Magazine をこれからもよろしくお願いします。
これまで本当にどうもありがとうございました! ↩