« ^ »

地獄からの帰りの分の切符を先に買っておく

所要時間: 約 3分

従来型のRDBMSから異なるスタイルのDBMSへの移行のための調査をしているんだけれど、Webフレームワークに付随しているデータベースマイグレーションが上手く通らない。こんな初歩的なことでこんなに苦しむのかと思う。そんな中でふっと新しい技術要素への乗り換えについて考えたことを書くことにする。

今回はデータベースという重要な技術的要素の移行について考えていた。移行先として候補に挙がっていたもの、それ自体はとても整備されていて良い製品だと思う。ただ、稼働中のサービスに投入することについては、心のどこかで引っかかるものがある。たいていこういう引っかかりというのは、未知の問題に遭遇し、その問題が回避困難な問題で、いわゆる「詰んだ」という状況に陥いることへの恐怖感だったりする。

ある程度成長したサービスは詰んだ状態になる手を打ってはいけない。そのような手を打つと、いろんなもののスピードが落ちたり、メンテナンス性が悪化したりする。最悪の場合はサービス終了にまで追い込まれるかもしれない。

しかし、このような手は引っかけ問題のように様々な所に存在している。ぱっと見で見ぬけるような腐った臭いのするものもあれば、一見とても素晴しく見えたり、軽微なものに見えたりする。これを見抜くのは簡単ではない。そのために調査をするのだが、調査にもコストがかかるために、無限に調査できるわではないし、調査をしても正しい選択ができるとは限らない。常に間違える可能性がある。というか間違えることのほうが多いかもしれない。

そういった状況では、選択を間違えた事に気が付いた時、過去の状態に巻き戻す、または過去と同じような状態に更に変更できるようにしておくということがとても大切だと思える。その状況を作りだすためにコストを投入している。

何かを変更するという状況は、いわば地獄かもしれないところへの切符だ。到着した先は地獄かもしないし、そうじゃないかもしれない。そういう例え方をするなら、詰んだ状態になる手というのは地獄への片道切符だ。もう帰ってこれない。そして地獄への片道切符はありとあらゆる所に売られていて、高かったり安かったり綺麗だったり汚かったりと、その状態は様々だ。もし行き着いた先が地獄だったなら、元いた場所に帰ってきたい。だから、先に代金を支払って帰りの分の切符を買っておく。地獄でこの切符が買えるかどうかは分からないからだ。行き着いた先が良い感じだったら、この切符は使わないわけだから、その分の代金は当然無駄になる。しかし基本的に過去というのは戻ることができないものだから、この帰り分の切符には価値がある。当然高く付くし、常に完璧なものを確保できるわけではないが、できるかぎり帰り分の切符を買う努力をしようと思う。