ORCAのアーキテクチャ(Debian)

また間が空いてしまったのだが^^;

今回は前回書けなかったDebianを使っていることについて。

Debianはマイナーなdistroである。なんでそんなマイナーなものを好んで使っているかについて否定的な声はよく聞く。

Debianを採用したのは、

  • ネットワークアップグレード
  • コミュニティベース
  • 程々にマイナー

という理由からだ。

ネットワークアップグレード

今はたいていのdistroはわりと簡単高機能なコマンドで楽にアップグレードが出来る。それも、配布媒体の類は不要で、ネットワークで出来る。しかし、このプロジェクトが始まった当時、それが可能なのは事実上Debianだけだった。ほとんどこの一点だけで、他のdistroは採用の余地がなかったのだ。

ソフトウェアにバグはつきものだ。いわゆるセキュリティアップグレードの類も、ちょいちょい行う必要がある。また、我々が作るシステムだって虫は当然いる。また、バグの類がなくても、レセプトシステムには「改正」という問題がつきまとう。半年に1度はマスターやプログラムの更新が必要になる。とにかくそのような時、一々アップグレード用の媒体を配布して… とやる体力は我々にはない。また、ユーザ数がどんどん増えて行った場合、仮に頑張って媒体を作っていても、末端のサポートはどこかで破綻することになる。物理的な媒体のハンドリングも厄介なら、人が直接動くような「作業」があるのも厄介だ。

もちろんある程度規模の大きな変更があった場合、無人で作業をするのは危険なこともある。そういった場合はしょうがないが、普段使っていないソフトウェアの軽微なセキュリティアップグレードの類までそれをやるのは、気乗りしないエンジニアだっているだろう。ところがそういったところに限って穴をつつかれて… ということがあるのは、それなりの経験を積んだエンジニアなら経験的にわかっているはず。だから、どんなに軽微に見えるセキュリティアップグレードであっても、やらないわけには行かない。そういった時には「リモートから作業」というようなことをしたいだろう。

当時、それが確実に可能なdistroはDebianだけだったのだ。我々がDebianを選択した直後くらいから、いろいろなdistroでも可能になったのだが、それからしばらく後も安心して使えるという程のものではなかった。今だったら「あれも、これも」なのでDebianでなければならないという強い理由もないのだが、当時はそうするしかなかったのだ。

コミュニティーベース

当時、distroは群雄割拠の時代だったと言っても過言ではない。また、ちょうど「Linuxバブル」の頃でもあったから、様々なdistroが商用化されていた頃でもある。ちょっと前にはRed Hatの日本法人がどうだこうだとガタガタしていたし、Turboがどうだこうだとか

——— (検閲により削除) ———–

まぁそんなわけで、distroを選択する時には細心の注意が必要だった。特に商用distroはいろいろ浮沈が激しいと共に、技術者が渡り歩いていたりして、「これなら絶対安心」という類のものはなかった。このしばらく後にRed Hatがdistroの扱いについてコロコロ方針転換をしたのだが、そういったことは「起こりうること」だと認識していた。何しろdistroについてはまだ確実なビジネスモデルは存在していなかったから、商用なものは何が起きてもおかしくなかったのだ。

そういったわけで、コミュニティーベースのものを選択するのが無難だろうという結論になった。その時、そこそこ実績があって、安定もしていて、コミュニティがしっかりしているのは、結局Debianだけと言っても過言ではなかった。個人ベースのdistroは論外でもあったわけだし。

程々にマイナー

これはいわゆる「ヲタク避け」だ。

当時でもRed Hat系の情報はネットでも書籍でも、それこそ大量にあった。ところが悪いもので、大量にあるということは玉石混交ということでもある。今だってRed Hat系(rpm系)distroの入門書には、平気で嘘が書いてあるものや、説明を省き過ぎなものが少なくない。そうなると困るのは、ちょっといじってわかったつもりになってしまう人を大量に作ってしまうことだ。なまじRed Hat系のdistroは出来が良かった(と言うか初期設定項目が少ない)せいで、全くの初心者が本の解説(それも間違いを含んでいたりする)を読んでもインストール出来てそこそこ使えたりする。ここで勘違いの余地が出来てしまう。

確かに、自力でレセプトシステムの導入が出来て、それで安定確実に使えるのであれば、敷居は低ければ低い程良いだろう。しかし、日レセのシステム自体がそれ程信頼性が高くない上に、あやふやな知識でいじり回されてしまったら、安定とか確実なんてことは不可能だ。これからしばらく後になって、「インストールマニュアルの通りにキーを打ったら入った」という程度の品質になったのだが、初期はそんなに甘いことはなかった。だから、トラブルは当然起きるわけなのだが、そのトラブルシュートが出来ない人には使って欲しくなかった。Debianはdistro自体が敷居が高いお陰で、日レセインストール以前で挫折する人も少なくなかったので、それが初期にはフィルターとなってくれた。

そんなわけで、程々にマイナーなdistroであるDebianは、「ヲタク避け」として役立ってくれた。まぁ正直なところ、これは意図したことではないし、結局「やる人はやる」ということがあって、Debian Users MLでは随分と迷惑をかけてしまっていた(る)ようだが。

まぁそんなわけで、基盤となるdistroはDebianということになった。

技術的には、特にミドルウェア的には、ソースから入れることを考えれば、何もDebianでなくても問題なく動く。開発環境だって、私のところはunstableの上で開発して、stableの上でテストしてからリリースに回す。MONTSUQI自体はMac OSXの上でも*BSDの上でも動くし、64bit環境でも動く。その程度にはポータブルに作ってある。「じゃあその上で動く版も出せ」という声はあると思うのだが、これだけの規模のソフトウェアを「リリースする」というのは容易ならざる作業だ。

本当はUbuntuの方がバージョンの安定は上のような気もするし、Macで動かして欲しい人は少なくないだろう。とは言え、我々にはそこまでのマンパワー、あるいはそれを確保する資金がない。「動かせる」と「提供出来る」の間には、非常に厚い壁があるのだ。せめて、末端の「技術者」が普通にオープンソースなものを扱える程度のスキルを持っていてくれれば、リリースする側もいろいろと楽になると思うのだが。